summaryrefslogtreecommitdiff
path: root/src/db/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/db/plugins')
-rw-r--r--src/db/plugins/simple/Directory.hxx8
-rw-r--r--src/db/plugins/simple/Song.cxx8
-rw-r--r--src/db/plugins/simple/Song.hxx10
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