With the functions decoder_plugin_register() and
decoder_plugin_unregister(), decoder plugins can register a
"secondary" plugin, like the flac input plugin does this for
"oggflac".
---

 src/decoder_api.c              |   11 +++++++++++
 src/decoder_api.h              |    4 ++++
 src/inputPlugins/flac_plugin.c |    3 +--
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/src/decoder_api.c b/src/decoder_api.c
index d933f6c..ffc3aa7 100644
--- a/src/decoder_api.c
+++ b/src/decoder_api.c
@@ -18,6 +18,7 @@
  */
 
 #include "decoder_internal.h"
+#include "decoder_list.h"
 #include "audio.h"
 
 #include "utils.h"
@@ -25,6 +26,16 @@
 #include "playerData.h"
 #include "gcc.h"
 
+void decoder_plugin_register(struct decoder_plugin *plugin)
+{
+       decoder_plugin_load(plugin);
+}
+
+void decoder_plugin_unregister(struct decoder_plugin *plugin)
+{
+       decoder_plugin_unload(plugin);
+}
+
 void decoder_initialized(struct decoder * decoder,
                         const AudioFormat * audio_format,
                         float total_time)
diff --git a/src/decoder_api.h b/src/decoder_api.h
index becaaad..5afa06e 100644
--- a/src/decoder_api.h
+++ b/src/decoder_api.h
@@ -87,6 +87,10 @@ struct decoder_plugin {
 };
 
 
+void decoder_plugin_register(struct decoder_plugin *plugin);
+
+void decoder_plugin_unregister(struct decoder_plugin *plugin);
+
 /**
  * Opaque handle which the decoder plugin passes to the functions in
  * this header.
diff --git a/src/inputPlugins/flac_plugin.c b/src/inputPlugins/flac_plugin.c
index c045679..9b1c8d8 100644
--- a/src/inputPlugins/flac_plugin.c
+++ b/src/inputPlugins/flac_plugin.c
@@ -22,7 +22,6 @@
 
 #include "../utils.h"
 #include "../log.h"
-#include "../decoder_list.h"
 
 /* this code was based on flac123, from flac-tools */
 
@@ -533,7 +532,7 @@ static int flac_plugin_init(void)
                                    INPUT_PLUGIN_STREAM_FILE;
        oggflacPlugin.suffixes = oggflac_suffixes;
        oggflacPlugin.mime_types = oggflac_mime_types;
-       decoder_plugin_load(&oggflacPlugin);
+       decoder_plugin_register(&oggflacPlugin);
        return 1;
 }
 


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Musicpd-dev-team mailing list
Musicpd-dev-team@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/musicpd-dev-team

Reply via email to