20 #ifndef MPD_DECODER_PLUGIN_HXX
21 #define MPD_DECODER_PLUGIN_HXX
25 #include <forward_list>
96 std::forward_list<DetachedSong> (*container_scan)(
Path path_fs);
110 return init !=
nullptr
143 const TagHandler &handler,
void *handler_ctx)
const {
145 ?
scan_file(path_fs, handler, handler_ctx)
153 const TagHandler &handler,
void *handler_ctx)
const {
void Finish() const
Deinitialize a decoder plugin which was initialized successfully.
An interface between the decoder plugin and the MPD core.
bool ScanStream(InputStream &is, const TagHandler &handler, void *handler_ctx) const
Read the tag of a stream.
gcc_pure gcc_nonnull_all bool SupportsSuffix(const char *suffix) const noexcept
Does the plugin announce the specified file name suffix?
void(* stream_decode)(DecoderClient &client, InputStream &is)
Decode a stream (data read from an InputStream object).
std::forward_list< DetachedSong >(* container_scan)(Path path_fs)
Return a "virtual" filename for subtracks in container formats like flac.
A callback table for receiving metadata of a song.
void FileDecode(DecoderClient &client, P path_fs) const
Decode a file.
const char *const * mime_types
bool Init(const ConfigBlock &block) const
Initialize a decoder plugin.
void StreamDecode(DecoderClient &client, InputStream &is) const
Decode a stream.
A path name in the native file system character set.
gcc_pure gcc_nonnull_all bool SupportsMimeType(const char *mime_type) const noexcept
Does the plugin announce the specified MIME type?
bool(* scan_stream)(InputStream &is, const TagHandler &handler, void *handler_ctx)
Scan metadata of a file.
bool(* scan_file)(Path path_fs, const TagHandler &handler, void *handler_ctx)
Scan metadata of a file.
void(* finish)()
Deinitialize a decoder plugin which was initialized successfully.
bool ScanFile(P path_fs, const TagHandler &handler, void *handler_ctx) const
Read the tag of a file.
void(* file_decode)(DecoderClient &client, Path path_fs)
Decode a local file.
bool(* init)(const ConfigBlock &block)
Initialize the decoder plugin.
const char *const * suffixes
char * ContainerScan(P path, const unsigned int tnum) const
return "virtual" tracks in a container