16 #include <unordered_map>
72 virtual const char *
kind (
void)
const override;
78 virtual bool flush (
void)
override;
79 virtual float periodic (
void)
override;
Track data filter.
Definition: filter.h:38
static const Filter All
Selects all tracks.
Definition: filter.h:220
Base class for songs, albums, artists, playlists, genres, etc.
Definition: musictypes.h:77
Type
Definition: musictypes.h:86
Pandora communication class.
Definition: pandoracomm.h:73
Status execute(Request &request, bool retry_if_auth_required=true)
Execute an HTTP request.
Definition: pandoracomm.cpp:309
const UserFeatures & getFeatures() const
Definition: pandoracomm.h:122
Source * pandora()
Definition: pandora.h:38
virtual MusicThingie * reconstruct(MusicThingie::Type type, const Parsnip::Data &data) override
Reconstructs a cached record.
Definition: pandoralibrary.cpp:19
Pandora request class.
Definition: pandoramessages.h:39
A class to manage Pandora skips.
Definition: pandorastation.h:33
SearchResults prior_searches
Search results saved for reuse;.
Definition: pandora.h:61
Retainer< Station * > everything_playlist
The everything meta-playlist.
Definition: pandora.h:55
std::string genre_stations_checksum
Checksum from last genre station list received.
Definition: pandora.h:52
bool persist() const
Definition: pandorasource.cpp:476
std::string station_list_checksum
Checksum from last station list received.
Definition: pandora.h:50
time_t station_list_expiration
When cached station list expires.
Definition: pandora.h:49
void updateGenreStations()
Get initial or refresh genre station list.
Definition: pandorasource.cpp:364
virtual PianodPlaylist * getMixPlaylist(void) override
Retrieve the mix playlist.
Definition: pandorastation.cpp:168
PlaylistList genre_stations
The genre stations.
Definition: pandora.h:53
Retainer< Station * > mix_playlist
The mix/shuffle meta-playlist.
Definition: pandora.h:54
virtual const char * kind(void) const override
A unique string identifying the type of source.
Definition: pandorasource.cpp:83
bool updateStationList(PianodPlaylist::PlaylistType mixSetting=PianodPlaylist::SINGLE)
Get initial or refresh station list.
Definition: pandorasource.cpp:277
Communication comm
Pandora server communicator.
Definition: pandora.h:56
virtual Media::Player * getPlayer(const AudioSettings &audio, PianodSong *song) override
Definition: pandoraplayer.cpp:25
Status executeRequest(Request &request)
Definition: pandora.h:102
virtual bool flush(void) override
Persist data for a source.
Definition: pandorasource.cpp:499
virtual MusicThingie * getSuggestion(MusicThingie *thing, MusicThingie::Type type, SearchRange where) override
Retrieve an equivalent or related album, artist, or song from a source.
Definition: pandorasource.cpp:190
virtual bool requireNameForCreatePlaylist(void) const override
Indicate if a name is required when creating a playlist.
Definition: pandorasource.cpp:91
void pushMixToServers(bool mix_all=false)
Update the quickmix/station shuffle by sending a list of desired stations to Pandora.
Definition: pandorastation.cpp:152
std::unordered_map< std::string, ThingieList > SearchResults
Definition: pandora.h:45
const ConnectionParameters * connectionParams() const
Definition: pandora.h:64
virtual PianodPlaylist * getEverythingPlaylist(void) override
Retrieve the everything playlist.
Definition: pandorastation.cpp:173
~Source()
Destroy a source.
Definition: pandorasource.cpp:56
std::unique_ptr< Parsnip::Data > recovery
Data from persistence file.
Definition: pandora.h:57
StationLookup stations
A collection of stations, indexed by station ID.
Definition: pandora.h:48
virtual MusicThingie * getAnythingById(const Media::SplitId &id) override
Definition: pandorasource.cpp:108
void removeStationByStationId(const std::string &station_id)
Definition: pandorasource.cpp:73
virtual ThingieList getSuggestions(const Filter &filter, SearchRange where) override
Definition: pandorasource.cpp:124
virtual float periodic(void) override
Do intermittent or background tasks.
Definition: pandorasource.cpp:406
virtual SongList getRandomSongs(PianodPlaylist *playlist, const UserList &, Media::SelectionMethod) override
Definition: pandorasource.cpp:232
SkipTracker skips
Skip counts for limiting.
Definition: pandora.h:62
const UserFeatures & userFeatures() const
Definition: pandora.h:105
Source(const ConnectionParameters ¶ms)
Definition: pandorasource.cpp:36
bool restore()
Definition: pandorasource.cpp:448
Station * getStationByStationId(const std::string &station_id)
Definition: pandorasource.cpp:66
time_t genre_stations_expiration
When genre stations list expires.
Definition: pandora.h:51
virtual PianodPlaylist * createPlaylist(const char *name, MusicThingie::Type type, MusicThingie *from) override
Create a playlist using a thingie as an initial seed.
Definition: pandorasource.cpp:203
Library library
Lookup table of things we gave out.
Definition: pandora.h:60
virtual PlaylistList getPlaylists(const Filter &filter=Filter::All) override
Retrieve the source's playlists.
Definition: pandorasource.cpp:98
void setMixAllOnServers()
Definition: pandora.h:115
Definition: pandorastation.h:77
Station lookup.
Definition: pandorastation.h:143
Definition: pandoracomm.h:57
Generic data type.
Definition: parsnip.h:81
A ThingiePool that can persist & restore its data.
Definition: musiccache.h:67
PersistentPool(Media::Source *const src)
Initialize the cache/pool.
Definition: musiccache.cpp:207
Media::Source *const source
The source to which records will belong.
Definition: musiccache.h:69
Base class for playlists, but still a MusicThingie.
Definition: musictypes.h:416
PlaylistType
Definition: musictypes.h:418
@ SINGLE
Definition: musictypes.h:419
Base class for songs, these are also MusicThingies, artists and albums.
Definition: musictypes.h:339
A container for lists of playlists.
Definition: retainedlist.h:324
Smart containers to help manage reference counting the MusicThingies.
Definition: retainer.h:13
A container for holding songs.
Definition: retainedlist.h:328
Base class for storing lists of thingies, which need to be reference counted accurately.
Definition: retainedlist.h:20
Essential data structures and support.
std::vector< const class User * > UserList
Definition: fundamentals.h:348
SearchRange
Definition: fundamentals.h:35
Caches for music thingie types.
Playlist / Artist / Album / Song data types.
Pandora source, player and related datatype specializations.
Definition: pandora.h:32
Status
Communication completion statuses.
Definition: pandoracomm.h:27
Pandora connection parameters.
Pandora Playlist (station) support.
Pandora communication library.
Audio output device & driver parameters.
Definition: fundamentals.h:52
Pandora connection and source settings.
Definition: pandoraparameters.h:33