aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--configure.ac17
-rw-r--r--src/Makefile.am3
-rw-r--r--src/inputPlugin.c6
-rw-r--r--src/inputPlugin.h6
-rw-r--r--src/inputPlugins/aac_plugin.c4
-rw-r--r--src/inputPlugins/flac_plugin.c4
-rw-r--r--src/inputPlugins/mp3_plugin.c4
-rw-r--r--src/inputPlugins/mp4_plugin.c4
-rw-r--r--src/inputPlugins/ogg_plugin.c4
9 files changed, 49 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac
index adf35559a..e79cc5c49 100644
--- a/configure.ac
+++ b/configure.ac
@@ -40,8 +40,9 @@ AC_ARG_ENABLE(flac,[ --disable-flac disable flac support],,enable_flac=yes)
AC_ARG_ENABLE(mp3,[ --disable-mp3 disable mp3 support],,enable_mp3=yes)
AC_ARG_ENABLE(aac,[ --disable-aac disable AAC support],,enable_aac=yes)
AC_ARG_ENABLE(audiofile,[ --disable-audiofile disable audiofile support, disables wave support],,enable_audiofile=yes)
-AC_ARG_ENABLE(mpd_mad,[ --enable-mpd-mad use mpd libmad],use_mpd_mad=yes,)
+AC_ARG_ENABLE(mod,[ --disable-mod disable MOD support],,enable_mod=yes)
AC_ARG_ENABLE(id3,[ --disable-id3 disable id3 support],,enable_id3=yes)
+AC_ARG_ENABLE(mpd_mad,[ --enable-mpd-mad use mpd libmad],use_mpd_mad=yes,)
AC_ARG_ENABLE(mpd_id3tag,[ --enable-mpd-id3tag use mpd libid3tag],use_mpd_id3tag=yes,)
AC_ARG_WITH(iconv,[ --with-iconv=PFX Prefix where iconv is installed (optional)], iconv_prefix="$withval", iconv_prefix="")
@@ -473,6 +474,14 @@ if test x$enable_audiofile = xyes; then
AC_DEFINE(HAVE_AUDIOFILE,1,[Define for audiofile support])
fi
+if test x$enable_mod = xyes; then
+ AM_PATH_LIBMIKMOD(3.1.7, MPD_CFLAGS="$MPD_CFLAGS $LIBMIKMOD_CFLAGS"
+ MPD_LIBS="$MPD_LIBS $LIBMIKMOD_LIBS", enable_mod=no)
+ if test x$enable_mod = xyes; then
+ AC_DEFINE(HAVE_MIKMOD, 1, [Define for mikmod support])
+ fi
+fi
+
AC_OUTPUT(src/mp4ff/Makefile doc/Makefile src/Makefile Makefile )
echo ""
@@ -565,6 +574,12 @@ else
echo "MP4/AAC support ...............disabled"
fi
+if test x$enable_mod = xyes; then
+ echo "MOD support ...................enabled"
+else
+ echo "MOD support ...................disabled"
+fi
+
echo ""
echo "##########################################"
echo ""
diff --git a/src/Makefile.am b/src/Makefile.am
index ad1544e35..de55f202a 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -3,7 +3,8 @@ SUBDIRS = $(ID3_SUBDIR) $(MAD_SUBDIR) $(MP4FF_SUBDIR)
mpd_inputPlugins = inputPlugins/mp3_plugin.c inputPlugins/ogg_plugin.c \
inputPlugins/flac_plugin.c inputPlugins/audiofile_plugin.c \
- inputPlugins/mp4_plugin.c inputPlugins/aac_plugin.c
+ inputPlugins/mp4_plugin.c inputPlugins/aac_plugin.c \
+ inputPlugins/mod_plugin.c
mpd_headers = buffer2array.h interface.h command.h playlist.h ls.h \
song.h list.h directory.h tables.h utils.h path.h \
diff --git a/src/inputPlugin.c b/src/inputPlugin.c
index bd317964f..72286d3f6 100644
--- a/src/inputPlugin.c
+++ b/src/inputPlugin.c
@@ -11,10 +11,13 @@ void loadInputPlugin(InputPlugin * inputPlugin) {
if(!inputPlugin) return;
if(!inputPlugin->name) return;
+ if(inputPlugin->initFunc && inputPlugin->initFunc() < 0) return;
+
insertInList(inputPlugin_list, inputPlugin->name, (void *)inputPlugin);
}
void unloadInputPlugin(InputPlugin * inputPlugin) {
+ if(inputPlugin->finishFunc) inputPlugin->finishFunc();
deleteFromList(inputPlugin_list, inputPlugin->name);
}
@@ -73,6 +76,7 @@ extern InputPlugin flacPlugin;
extern InputPlugin audiofilePlugin;
extern InputPlugin mp4Plugin;
extern InputPlugin aacPlugin;
+extern InputPlugin modPlugin;
void initInputPlugins() {
inputPlugin_list = makeList(NULL);
@@ -83,7 +87,7 @@ void initInputPlugins() {
loadInputPlugin(&flacPlugin);
loadInputPlugin(&audiofilePlugin);
loadInputPlugin(&mp4Plugin);
- loadInputPlugin(&aacPlugin);
+ loadInputPlugin(&modPlugin);
}
void finishInputPlugins() {
diff --git a/src/inputPlugin.h b/src/inputPlugin.h
index 9d77262c6..940789744 100644
--- a/src/inputPlugin.h
+++ b/src/inputPlugin.h
@@ -10,6 +10,10 @@
#define INPUT_PLUGIN_STREAM_FILE 0x01
#define INPUT_PLUGIN_STREAM_URL 0x02
+typedef int (* InputPlugin_initFunc) ();
+
+typedef void (* InputPlugin_finishFunc) ();
+
typedef int (* InputPlugin_streamDecodeFunc) (OutputBuffer *, DecoderControl *,
InputStream *);
@@ -21,6 +25,8 @@ typedef MpdTag * (* InputPlugin_tagDupFunc) (char * file);
typedef struct _InputPlugin {
char * name;
+ InputPlugin_initFunc initFunc;
+ InputPlugin_finishFunc finishFunc;
InputPlugin_streamDecodeFunc streamDecodeFunc;
InputPlugin_fileDecodeFunc fileDecodeFunc;
InputPlugin_tagDupFunc tagDupFunc;
diff --git a/src/inputPlugins/aac_plugin.c b/src/inputPlugins/aac_plugin.c
index 017aa7779..9f78fc2a1 100644
--- a/src/inputPlugins/aac_plugin.c
+++ b/src/inputPlugins/aac_plugin.c
@@ -415,6 +415,8 @@ InputPlugin aacPlugin =
{
"aac",
NULL,
+ NULL,
+ NULL,
aac_decode,
aacTagDup,
INPUT_PLUGIN_STREAM_FILE,
@@ -430,6 +432,8 @@ InputPlugin aacPlugin =
NULL,
NULL,
NULL,
+ NULL,
+ NULL,
0,
NULL,
NULL,
diff --git a/src/inputPlugins/flac_plugin.c b/src/inputPlugins/flac_plugin.c
index 67dc160ec..dc92b801b 100644
--- a/src/inputPlugins/flac_plugin.c
+++ b/src/inputPlugins/flac_plugin.c
@@ -555,6 +555,8 @@ InputPlugin flacPlugin =
{
"flac",
NULL,
+ NULL,
+ NULL,
flac_decode,
flacTagDup,
INPUT_PLUGIN_STREAM_FILE,
@@ -570,6 +572,8 @@ InputPlugin flacPlugin =
NULL,
NULL,
NULL,
+ NULL,
+ NULL,
0,
NULL,
NULL,
diff --git a/src/inputPlugins/mp3_plugin.c b/src/inputPlugins/mp3_plugin.c
index de23b6c7b..8f57fb590 100644
--- a/src/inputPlugins/mp3_plugin.c
+++ b/src/inputPlugins/mp3_plugin.c
@@ -634,6 +634,8 @@ char * mp3_mimeTypes[] = {"audio/mpeg", NULL};
InputPlugin mp3Plugin =
{
"mp3",
+ NULL,
+ NULL,
mp3_decode,
NULL,
mp3_tagDup,
@@ -649,6 +651,8 @@ InputPlugin mp3Plugin =
NULL,
NULL,
NULL,
+ NULL,
+ NULL,
0,
NULL,
NULL
diff --git a/src/inputPlugins/mp4_plugin.c b/src/inputPlugins/mp4_plugin.c
index f17b0b4ce..a8e0ec872 100644
--- a/src/inputPlugins/mp4_plugin.c
+++ b/src/inputPlugins/mp4_plugin.c
@@ -403,6 +403,8 @@ InputPlugin mp4Plugin =
{
"mp4",
NULL,
+ NULL,
+ NULL,
mp4_decode,
mp4TagDup,
INPUT_PLUGIN_STREAM_FILE,
@@ -417,6 +419,8 @@ InputPlugin mp4Plugin =
NULL,
NULL,
NULL,
+ NULL,
+ NULL,
NULL,
0,
NULL,
diff --git a/src/inputPlugins/ogg_plugin.c b/src/inputPlugins/ogg_plugin.c
index 21b63b9dc..68f50a4c1 100644
--- a/src/inputPlugins/ogg_plugin.c
+++ b/src/inputPlugins/ogg_plugin.c
@@ -335,6 +335,8 @@ char * oggMimeTypes[] = {"application/ogg", NULL};
InputPlugin oggPlugin =
{
"ogg",
+ NULL,
+ NULL,
ogg_decode,
NULL,
oggTagDup,
@@ -348,6 +350,8 @@ InputPlugin oggPlugin =
InputPlugin oggPlugin =
{
NULL,
+ NULL,
+ NULL,
NULL,
NULL,
NULL,