InputPlugin is the API which is implemented by a decoder plugin.  This
belongs to the public API/ABI, so move it to decoder_api.h.  It will
later be renamed to something like "decoder_plugin".
---

 src/decoder_api.h               |   61 ++++++++++++++++++++++++++++++++++++++-
 src/inputPlugin.h               |   57 +-----------------------------------
 src/inputPlugins/_flac_common.c |    2 +
 src/inputPlugins/_ogg_common.c  |    2 -
 src/inputPlugins/_ogg_common.h  |    2 +
 src/inputPlugins/flac_plugin.c  |    1 +
 6 files changed, 64 insertions(+), 61 deletions(-)

diff --git a/src/decoder_api.h b/src/decoder_api.h
index ba61af5..6595b86 100644
--- a/src/decoder_api.h
+++ b/src/decoder_api.h
@@ -26,9 +26,67 @@
  *
  */
 
-#include "inputPlugin.h"
 #include "inputStream.h"
 #include "replayGain.h"
+#include "tag.h"
+#include "playerData.h"
+
+
+/* valid values for streamTypes in the InputPlugin struct: */
+#define INPUT_PLUGIN_STREAM_FILE       0x01
+#define INPUT_PLUGIN_STREAM_URL                0x02
+
+
+struct decoder;
+
+
+/* optional, set this to NULL if the InputPlugin doesn't have/need one
+ * this must return < 0 if there is an error and >= 0 otherwise */
+typedef int (*InputPlugin_initFunc) (void);
+
+/* optional, set this to NULL if the InputPlugin doesn't have/need one */
+typedef void (*InputPlugin_finishFunc) (void);
+
+/* boolean return value, returns 1 if the InputStream is decodable by
+ * the InputPlugin, 0 if not */
+typedef unsigned int (*InputPlugin_tryDecodeFunc) (InputStream *);
+
+/* this will be used to decode InputStreams, and is recommended for files
+ * and networked (HTTP) connections.
+ *
+ * returns -1 on error, 0 on success */
+typedef int (*InputPlugin_streamDecodeFunc) (struct decoder *,
+                                            InputStream *);
+
+/* use this if and only if your InputPlugin can only be passed a filename or
+ * handle as input, and will not allow callbacks to be set (like Ogg-Vorbis
+ * and FLAC libraries allow)
+ *
+ * returns -1 on error, 0 on success */
+typedef int (*InputPlugin_fileDecodeFunc) (struct decoder *,
+                                          char *path);
+
+/* file should be the full path!  Returns NULL if a tag cannot be found
+ * or read */
+typedef MpdTag *(*InputPlugin_tagDupFunc) (char *file);
+
+typedef struct _InputPlugin {
+       const char *name;
+       InputPlugin_initFunc initFunc;
+       InputPlugin_finishFunc finishFunc;
+       InputPlugin_tryDecodeFunc tryDecodeFunc;
+       InputPlugin_streamDecodeFunc streamDecodeFunc;
+       InputPlugin_fileDecodeFunc fileDecodeFunc;
+       InputPlugin_tagDupFunc tagDupFunc;
+
+       /* one or more of the INPUT_PLUGIN_STREAM_* values OR'd together */
+       unsigned char streamTypes;
+
+       /* last element in these arrays must always be a NULL: */
+       const char *const*suffixes;
+       const char *const*mimeTypes;
+} InputPlugin;
+
 
 /**
  * Opaque handle which the decoder plugin passes to the functions in
@@ -36,6 +94,7 @@
  */
 struct decoder;
 
+
 /**
  * Notify the player thread that it has finished initialization and
  * that it has read the song's meta data.
diff --git a/src/inputPlugin.h b/src/inputPlugin.h
index 2b0e504..f5418ef 100644
--- a/src/inputPlugin.h
+++ b/src/inputPlugin.h
@@ -19,62 +19,7 @@
 #ifndef INPUT_PLUGIN_H
 #define INPUT_PLUGIN_H
 
-#include "inputStream.h"
-#include "outputBuffer.h"
-#include "playerData.h"
-
-/* valid values for streamTypes in the InputPlugin struct: */
-#define INPUT_PLUGIN_STREAM_FILE       0x01
-#define INPUT_PLUGIN_STREAM_URL                0x02
-
-struct decoder;
-
-/* optional, set this to NULL if the InputPlugin doesn't have/need one
- * this must return < 0 if there is an error and >= 0 otherwise */
-typedef int (*InputPlugin_initFunc) (void);
-
-/* optional, set this to NULL if the InputPlugin doesn't have/need one */
-typedef void (*InputPlugin_finishFunc) (void);
-
-/* boolean return value, returns 1 if the InputStream is decodable by
- * the InputPlugin, 0 if not */
-typedef unsigned int (*InputPlugin_tryDecodeFunc) (InputStream *);
-
-/* this will be used to decode InputStreams, and is recommended for files
- * and networked (HTTP) connections.
- *
- * returns -1 on error, 0 on success */
-typedef int (*InputPlugin_streamDecodeFunc) (struct decoder *,
-                                            InputStream *);
-
-/* use this if and only if your InputPlugin can only be passed a filename or
- * handle as input, and will not allow callbacks to be set (like Ogg-Vorbis
- * and FLAC libraries allow)
- *
- * returns -1 on error, 0 on success */
-typedef int (*InputPlugin_fileDecodeFunc) (struct decoder *,
-                                          char *path);
-
-/* file should be the full path!  Returns NULL if a tag cannot be found
- * or read */
-typedef MpdTag *(*InputPlugin_tagDupFunc) (char *file);
-
-typedef struct _InputPlugin {
-       const char *name;
-       InputPlugin_initFunc initFunc;
-       InputPlugin_finishFunc finishFunc;
-       InputPlugin_tryDecodeFunc tryDecodeFunc;
-       InputPlugin_streamDecodeFunc streamDecodeFunc;
-       InputPlugin_fileDecodeFunc fileDecodeFunc;
-       InputPlugin_tagDupFunc tagDupFunc;
-
-       /* one or more of the INPUT_PLUGIN_STREAM_* values OR'd together */
-       unsigned char streamTypes;
-
-       /* last element in these arrays must always be a NULL: */
-       const char *const*suffixes;
-       const char *const*mimeTypes;
-} InputPlugin;
+#include "decoder_api.h"
 
 /* individual functions to load/unload plugins */
 void loadInputPlugin(InputPlugin * inputPlugin);
diff --git a/src/inputPlugins/_flac_common.c b/src/inputPlugins/_flac_common.c
index e658d77..1cf0946 100644
--- a/src/inputPlugins/_flac_common.c
+++ b/src/inputPlugins/_flac_common.c
@@ -19,7 +19,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include "../inputPlugin.h"
+#include "../decoder_api.h"
 
 #if defined(HAVE_FLAC) || defined(HAVE_OGGFLAC)
 
diff --git a/src/inputPlugins/_ogg_common.c b/src/inputPlugins/_ogg_common.c
index a7525c2..73facdd 100644
--- a/src/inputPlugins/_ogg_common.c
+++ b/src/inputPlugins/_ogg_common.c
@@ -19,8 +19,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include "../inputPlugin.h"
-
 #include "_flac_common.h"
 #include "_ogg_common.h"
 
diff --git a/src/inputPlugins/_ogg_common.h b/src/inputPlugins/_ogg_common.h
index 3e997e9..3382e28 100644
--- a/src/inputPlugins/_ogg_common.h
+++ b/src/inputPlugins/_ogg_common.h
@@ -22,7 +22,7 @@
 #ifndef _OGG_COMMON_H
 #define _OGG_COMMON_H
 
-#include "../inputPlugin.h"
+#include "../decoder_api.h"
 
 #if defined(HAVE_OGGFLAC) || defined(HAVE_OGGVORBIS) || \
   (defined(FLAC_API_VERSION_CURRENT) && FLAC_API_VERSION_CURRENT > 7)
diff --git a/src/inputPlugins/flac_plugin.c b/src/inputPlugins/flac_plugin.c
index f94e39d..890c78f 100644
--- a/src/inputPlugins/flac_plugin.c
+++ b/src/inputPlugins/flac_plugin.c
@@ -22,6 +22,7 @@
 
 #include "../utils.h"
 #include "../log.h"
+#include "../inputPlugin.h"
 
 /* this code was based on flac123, from flac-tools */
 


-------------------------------------------------------------------------
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