diff options
Diffstat (limited to 'src/db/plugins')
-rw-r--r-- | src/db/plugins/simple/Directory.hxx | 8 | ||||
-rw-r--r-- | src/db/plugins/simple/Song.cxx | 8 | ||||
-rw-r--r-- | src/db/plugins/simple/Song.hxx | 10 |
3 files changed, 26 insertions, 0 deletions
diff --git a/src/db/plugins/simple/Directory.hxx b/src/db/plugins/simple/Directory.hxx index 7062e609c..1479b578a 100644 --- a/src/db/plugins/simple/Directory.hxx +++ b/src/db/plugins/simple/Directory.hxx @@ -133,6 +133,14 @@ public: } /** + * Checks whether this is a "special" directory + * (e.g. #DEVICE_PLAYLIST) and whether the underlying plugin + * is available. + */ + gcc_pure + bool IsPluginAvailable() const noexcept; + + /** * Remove this #Directory object from its parent and free it. This * must not be called with the root Directory. * diff --git a/src/db/plugins/simple/Song.cxx b/src/db/plugins/simple/Song.cxx index 3da13b9ea..eecf00277 100644 --- a/src/db/plugins/simple/Song.cxx +++ b/src/db/plugins/simple/Song.cxx @@ -34,6 +34,14 @@ Song::Song(DetachedSong &&other, Directory &_parent) noexcept { } +const char * +Song::GetFilenameSuffix() const noexcept +{ + return target.empty() + ? PathTraitsUTF8::GetFilenameSuffix(filename.c_str()) + : PathTraitsUTF8::GetPathSuffix(target.c_str()); +} + std::string Song::GetURI() const noexcept { diff --git a/src/db/plugins/simple/Song.hxx b/src/db/plugins/simple/Song.hxx index 04be80845..90334b031 100644 --- a/src/db/plugins/simple/Song.hxx +++ b/src/db/plugins/simple/Song.hxx @@ -108,6 +108,16 @@ struct Song { Song(DetachedSong &&other, Directory &_parent) noexcept; + gcc_pure + const char *GetFilenameSuffix() const noexcept; + + /** + * Checks whether the decoder plugin for this song is + * available. + */ + gcc_pure + bool IsPluginAvailable() const noexcept; + /** * allocate a new song structure with a local file name and attempt to * load its metadata. If all decoder plugin fail to read its meta |