aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2010-07-20 18:26:13 +0200
committerMax Kellermann <max@duempel.org>2010-07-20 18:23:56 +0200
commit898a13f196eb005c969794bf16d8afa858a48f33 (patch)
tree86512c8f902cb9984f2e2a11bb1befc32613ffef
parentb97e92468fa137780fe980eaf3d999bdc83d800a (diff)
downloadmpd-898a13f196eb005c969794bf16d8afa858a48f33.tar.gz
mpd-898a13f196eb005c969794bf16d8afa858a48f33.tar.xz
mpd-898a13f196eb005c969794bf16d8afa858a48f33.zip
decoder/wildmidi: support version 0.2.3
In libwildmidi 0.2.3, the function WildMidi_SampledSeek() was removed, without changing the SO name. This patch adds an autoconf check for that function. Fall back to WildMidi_FastSeek() if WildMidi_SampledSeek() is not available anymore.
-rw-r--r--NEWS2
-rw-r--r--configure.ac4
-rw-r--r--src/decoder/wildmidi_plugin.c4
3 files changed, 10 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 85d34ddb6..1dd15e4b3 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
ver 0.15.12 (2010/??/??)
+* decoders:
+ - wildmidi: support version 0.2.3
ver 0.15.11 (2010/06/14)
diff --git a/configure.ac b/configure.ac
index 791f41f05..aa529ca45 100644
--- a/configure.ac
+++ b/configure.ac
@@ -950,6 +950,10 @@ if test x$enable_wildmidi = xyes; then
AC_CHECK_LIB(WildMidi, WildMidi_Init,,
AC_MSG_ERROR([libwildmidi not found]))
+ AC_CHECK_LIB(WildMidi, WildMidi_SampledSeek,
+ [AC_DEFINE(HAVE_WILDMIDI_SAMPLED_SEEK, 1,
+ [Defined if WildMidi_SampledSeek() is available (libwildmidi <= 0.2.2)])])
+
CFLAGS=$oldcflags
LIBS=$oldlibs
CPPFLAGS=$oldcppflags
diff --git a/src/decoder/wildmidi_plugin.c b/src/decoder/wildmidi_plugin.c
index 8bad6943a..b5e9810f9 100644
--- a/src/decoder/wildmidi_plugin.c
+++ b/src/decoder/wildmidi_plugin.c
@@ -99,7 +99,11 @@ wildmidi_file_decode(struct decoder *decoder, const char *path_fs)
unsigned long seek_where = WILDMIDI_SAMPLE_RATE *
decoder_seek_where(decoder);
+#ifdef HAVE_WILDMIDI_SAMPLED_SEEK
WildMidi_SampledSeek(wm, &seek_where);
+#else
+ WildMidi_FastSeek(wm, &seek_where);
+#endif
decoder_command_finished(decoder);
cmd = DECODE_COMMAND_NONE;
}