Johannes Weißl
2011-05-04 15:49:48 UTC
---
configure | 10 ++++++++--
modplug.c | 9 +++++++++
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 127f64a..7e2773a 100755
--- a/configure
+++ b/configure
@@ -176,8 +176,13 @@ check_mikmod()
check_modplug()
{
- pkg_config MODPLUG "libmodplug" "-I/usr/include/libmodplug" "-lmodplug -lstdc++ -lm"
- return $?
+ pkg_config MODPLUG "libmodplug" "-I/usr/include/libmodplug" "-lmodplug -lstdc++ -lm" || return $?
+ MODPLUG_API_8=0
+ if check_function "ModPlug_GetModuleType" $MODPLUG_CFLAGS $MODPLUG_LIBS
+ then
+ MODPLUG_API_8=1
+ fi
+ return 0
}
check_vorbis()
@@ -428,6 +433,7 @@ config_header config/datadir.h DATADIR
config_header config/libdir.h LIBDIR
config_header config/debug.h DEBUG
config_header config/tremor.h CONFIG_TREMOR
+config_header config/modplug.h MODPLUG_API_8
config_header config/mpc.h MPC_SV8
config_header config/mp4.h USE_MPEG4IP
config_header config/curses.h HAVE_RESIZETERM HAVE_USE_DEFAULT_COLORS
diff --git a/modplug.c b/modplug.c
index bcebdde..95dbe98 100644
--- a/modplug.c
+++ b/modplug.c
@@ -19,6 +19,7 @@
#include "ip.h"
#include "file.h"
#include "xmalloc.h"
+#include "config/modplug.h"
#include <modplug.h>
#include <sys/types.h>
@@ -139,9 +140,11 @@ static int mod_read_comments(struct input_plugin_data *ip_data, struct keyval **
if (val && val[0])
comments_add_const(&c, "title", val);
+#if MODPLUG_API_8
val = ModPlug_GetMessage(priv->file);
if (val && val[0])
comments_add_const(&c, "comment", val);
+#endif
keyvals_terminate(&c);
*comments = c.keyvals;
@@ -160,6 +163,7 @@ static long mod_bitrate(struct input_plugin_data *ip_data)
return -IP_ERROR_FUNCTION_NOT_SUPPORTED;
}
+#if MODPLUG_API_8
static const char *mod_type_to_string(int type)
{
/* from <libmodplug/sndfile.h>, which is C++ */
@@ -190,9 +194,11 @@ static const char *mod_type_to_string(int type)
}
return NULL;
}
+#endif
static char *mod_codec(struct input_plugin_data *ip_data)
{
+#if MODPLUG_API_8
struct mod_private *priv = ip_data->private;
const char *codec;
int type;
@@ -201,6 +207,9 @@ static char *mod_codec(struct input_plugin_data *ip_data)
codec = mod_type_to_string(type);
return codec ? xstrdup(codec) : NULL;
+#else
+ return NULL;
+#endif
}
static char *mod_codec_profile(struct input_plugin_data *ip_data)
configure | 10 ++++++++--
modplug.c | 9 +++++++++
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/configure b/configure
index 127f64a..7e2773a 100755
--- a/configure
+++ b/configure
@@ -176,8 +176,13 @@ check_mikmod()
check_modplug()
{
- pkg_config MODPLUG "libmodplug" "-I/usr/include/libmodplug" "-lmodplug -lstdc++ -lm"
- return $?
+ pkg_config MODPLUG "libmodplug" "-I/usr/include/libmodplug" "-lmodplug -lstdc++ -lm" || return $?
+ MODPLUG_API_8=0
+ if check_function "ModPlug_GetModuleType" $MODPLUG_CFLAGS $MODPLUG_LIBS
+ then
+ MODPLUG_API_8=1
+ fi
+ return 0
}
check_vorbis()
@@ -428,6 +433,7 @@ config_header config/datadir.h DATADIR
config_header config/libdir.h LIBDIR
config_header config/debug.h DEBUG
config_header config/tremor.h CONFIG_TREMOR
+config_header config/modplug.h MODPLUG_API_8
config_header config/mpc.h MPC_SV8
config_header config/mp4.h USE_MPEG4IP
config_header config/curses.h HAVE_RESIZETERM HAVE_USE_DEFAULT_COLORS
diff --git a/modplug.c b/modplug.c
index bcebdde..95dbe98 100644
--- a/modplug.c
+++ b/modplug.c
@@ -19,6 +19,7 @@
#include "ip.h"
#include "file.h"
#include "xmalloc.h"
+#include "config/modplug.h"
#include <modplug.h>
#include <sys/types.h>
@@ -139,9 +140,11 @@ static int mod_read_comments(struct input_plugin_data *ip_data, struct keyval **
if (val && val[0])
comments_add_const(&c, "title", val);
+#if MODPLUG_API_8
val = ModPlug_GetMessage(priv->file);
if (val && val[0])
comments_add_const(&c, "comment", val);
+#endif
keyvals_terminate(&c);
*comments = c.keyvals;
@@ -160,6 +163,7 @@ static long mod_bitrate(struct input_plugin_data *ip_data)
return -IP_ERROR_FUNCTION_NOT_SUPPORTED;
}
+#if MODPLUG_API_8
static const char *mod_type_to_string(int type)
{
/* from <libmodplug/sndfile.h>, which is C++ */
@@ -190,9 +194,11 @@ static const char *mod_type_to_string(int type)
}
return NULL;
}
+#endif
static char *mod_codec(struct input_plugin_data *ip_data)
{
+#if MODPLUG_API_8
struct mod_private *priv = ip_data->private;
const char *codec;
int type;
@@ -201,6 +207,9 @@ static char *mod_codec(struct input_plugin_data *ip_data)
codec = mod_type_to_string(type);
return codec ? xstrdup(codec) : NULL;
+#else
+ return NULL;
+#endif
}
static char *mod_codec_profile(struct input_plugin_data *ip_data)
--
1.7.5
1.7.5