47 void path (std::string p);
48 std::string
path()
const;
61 void path (std::string p);
62 std::string
path()
const;
79 void path (std::string p);
80 std::string
path()
const;
106 time_t last_scan = 0;
107 bool links_warned =
false;
108 bool permissions_warned =
false;
109 time_t next_validity_check = 0;
135 const bool persistence,
136 const std::string directory,
138 inline const std::string &
path() {
142 bool checkValidity();
145 bool scanDirectory (
const std::string &
path);
146 void indexFile (
const std::string &
path);
163 virtual const char *kind (
void)
const override;
166 virtual bool canExpandToAllSongs (
void)
const override;
169 virtual bool flush (
void)
override;
170 virtual float periodic (
void)
override;
189 virtual void playbackProblem (
void)
override;
195 void rescan (
bool reset);
Class to abstract away details of audio output system is in use.
Album customization for filesystem library & source.
Definition: filesystem.h:54
virtual void makeCompilation(MusicLibrary::Artist *compilation_artist) override
Mark an album as a compilation.
Definition: filesystemtypes.cpp:124
friend Song
Definition: filesystem.h:55
virtual void restore(const Parsnip::Data &data) override
Definition: filesystemtypes.cpp:138
virtual Parsnip::Data persist() const override
Definition: filesystemtypes.cpp:133
std::string path() const
Retrieve the path to the album.
Definition: filesystemtypes.cpp:117
std::string _path
If starting with /, path from library root; otherwise appends to artist path.
Definition: filesystem.h:58
Artist customization for filesystem library & source.
Definition: filesystem.h:39
std::string path() const
Retrieve the path to the artist by combining the library and artist-specific path.
Definition: filesystemtypes.cpp:63
friend Song
Definition: filesystem.h:41
virtual void restore(const Parsnip::Data &data) override
Definition: filesystemtypes.cpp:73
virtual Parsnip::Data persist() const override
Definition: filesystemtypes.cpp:67
friend Album
Definition: filesystem.h:40
std::string _path
Path from library root to this artist. Always starts with '/'.
Definition: filesystem.h:44
Filesystem-specific media library.
Definition: filesystem.h:98
ScanFrequency scan_behavior
Definition: filesystem.h:111
const std::string & path()
Definition: filesystem.h:138
ScanItemType
Types of items to scan when indexing media on a filesystem.
Definition: filesystem.h:114
friend Source
Definition: filesystem.h:99
std::list< ScanWorkItem > SearchList
Pending files to be scanned. Items are processed in LIFO (stack) order.
Definition: filesystem.h:125
SearchList searches
Definition: filesystem.h:126
std::string _path
Definition: filesystem.h:105
friend Song
Definition: filesystem.h:100
Song customization for filesystem library & source.
Definition: filesystem.h:69
virtual PianodConnection & transmitPrivate(PianodConnection &recipient) const override final
Transmit the thingie's user-specific data on a connection.
Definition: filesystemtypes.cpp:196
virtual void serializePrivate(Parsnip::Data &, const User *user) const override final
Add the thingie's user-specific data for JSON transmission.
Definition: filesystemtypes.cpp:204
friend Player
Definition: filesystem.h:71
bool present
Set to false at start of a scan, true when found.
Definition: filesystem.h:76
std::string _path
If starting with /, path from library root; otherwise appends to album path.
Definition: filesystem.h:75
std::string path() const
Retrieve the path to the song.
Definition: filesystemtypes.cpp:178
friend Source
Definition: filesystem.h:70
virtual Parsnip::Data persist() const override final
Definition: filesystemtypes.cpp:186
friend Library
Definition: filesystem.h:72
virtual void restore(const Parsnip::Data &data) override final
Definition: filesystemtypes.cpp:191
Source for filesystem media.
Definition: filesystem.h:150
Library library
Definition: filesystem.h:154
Track data filter.
Definition: filter.h:38
static const Filter All
Selects all tracks.
Definition: filter.h:220
A PianodAlbum that contains a vector of songs.
Definition: musiclibrary.h:172
Album(Artist *const parent, const std::string &id, const std::string &name)
Create a new album, and register itself with its parent.
Definition: musiclibrarytypes.cpp:355
A PianodArtist that contains a vector of albums.
Definition: musiclibrary.h:144
Artist(Foundation *const library, const std::string &id, const std::string &name)
Create a new artist.
Definition: musiclibrarytypes.cpp:303
Definition: musiclibrary.h:339
A PianodSong made of inbred data structures.
Definition: musiclibrary.h:217
virtual PianodPlaylist * playlist(void) const override final
Get a playlist instance.
Definition: musiclibrarytypes.cpp:191
friend class Playlist
Definition: musiclibrary.h:218
Song(Album *const parent, const std::string &id, const std::string &name)
Add a song, and register itself with its parent album.
Definition: musiclibrarytypes.cpp:482
Base class for songs, albums, artists, playlists, genres, etc.
Definition: musictypes.h:77
Type
Definition: musictypes.h:86
Type
Access levels for an object.
Definition: fundamentals.h:355
Generic data type.
Definition: parsnip.h:81
Connection to a pianod client, along with context and state of that connection.
Definition: connection.h:54
Base class for playlists, but still a MusicThingie.
Definition: musictypes.h:416
Base class for songs, these are also MusicThingies, artists and albums.
Definition: musictypes.h:339
virtual Type type(void) const override
Return the type letter for a thingie.
Definition: musictypes.h:349
virtual const std::string & name(void) const override final
Return the most specific name of this, whatever type it is.
Definition: musictypes.h:348
A container for lists of playlists.
Definition: retainedlist.h:324
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
Store key-value pairs of string keys & mixed types using Parsnip::Data.
Definition: datastore.h:76
Data about each user.
Definition: user.h:53
User data storage mechanism.
Essential data structures and support.
std::vector< const class User * > UserList
Definition: fundamentals.h:348
SearchRange
Definition: fundamentals.h:35
PlayList / Artist / Album / Song types that are interbred to form a library.
Source parameters for sources based on music library.
Classes for playing local media files stored within a directory hierarchy.
Definition: filesystem.cpp:31
static const char * Data
Definition: responsejson.cpp:42
const char * Song
Definition: musickeys.cpp:69
const char * Album
Definition: musickeys.cpp:68
Memory-based index/database of music library contents.
Definition: musiclibrary.cpp:37
ScanFrequency
Definition: musiclibraryparameters.h:21
Serialization and parsing library.
Definition: mediaunit.h:26
Audio output device & driver parameters.
Definition: fundamentals.h:52
Structure for storing lists of pending file scanning.
Definition: filesystem.h:117
std::string path
Definition: filesystem.h:119
ScanWorkItem(const std::string &newpath)
Definition: filesystem.h:120
Source parameters for filesystem source.
Definition: filesystem.h:88
std::string path
Definition: filesystem.h:89