From: Richard Kettlewell
Date: Sun, 11 Apr 2010 10:10:19 +0000 (+0100)
Subject: Check whether libao has a working plugin interface and don't build the
X-Git-Tag: 5.0~6^2~1
X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/commitdiff_plain/86541f5a0ae3e3f5716f4389f9155a868d9d8ab3?ds=sidebyside;hp=-c
Check whether libao has a working plugin interface and don't build the
ao plugin if it does not.
---
86541f5a0ae3e3f5716f4389f9155a868d9d8ab3
diff --git a/CHANGES.html b/CHANGES.html
index 51cf92b..aa04fd9 100644
--- a/CHANGES.html
+++ b/CHANGES.html
@@ -96,6 +96,9 @@ span.command {
SoX. SoX support will be
removed in a future version.
+ The libao plugin is not built if you have libao 1.0.0 (because the
+ plugin API is broken in that version).
+
Playlists are now supported. These allow a collection of tracks to be
prepared offline and played as a unit.
diff --git a/README b/README
index 4c567ba..900cf82 100644
--- a/README
+++ b/README
@@ -31,7 +31,7 @@ Build dependencies:
libpcre 6.7 need UTF-8 support
libmad 0.15.1b
libgcrypt 1.2.3
- libao 0.8.6
+ libao 0.8.6 1.0.0 is broken
libasound 1.0.13
libFLAC 1.1.2
libsamplerate 0.1.4 currently optional
diff --git a/configure.ac b/configure.ac
index c72e59d..344b050 100644
--- a/configure.ac
+++ b/configure.ac
@@ -338,7 +338,10 @@ fi
subdirs="${subdirs} clients doc examples debian"
if test $want_server = yes; then
- subdirs="${subdirs} server plugins driver sounds"
+ subdirs="${subdirs} server plugins sounds"
+ if test "$rjk_cv_libao_plugin_api_works" = yes; then
+ subdirs="${subdirs} driver"
+ fi
fi
if test $want_cgi = yes; then
subdirs="${subdirs} cgi templates images"
@@ -465,6 +468,19 @@ if test $want_server = yes; then
AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_new],
[AC_SUBST(LIBFLAC,[-lFLAC])],
[missing_libraries="$missing_libraries libFLAC"])
+ if test $ac_cv_lib_ao_ao_initialize = yes; then
+ # libao 1.0.0 breaks the plugin interface
+ AC_CACHE_CHECK([whether libao has a working plugin interface],
+ [rjk_cv_libao_plugin_api_works],[
+ AC_COMPILE_IFELSE([#include
+#include
+
+void ao_plugin_device_init(ao_device *d) {
+ d->internal = 0;
+}],[rjk_cv_libao_plugin_api_works=yes],[rjk_cv_libao_plugin_api_works=no])])
+ else
+ rjk_cv_libao_plugin_api_works=no
+ fi
fi
AC_CHECK_LIB([pthread], [pthread_create],
[AC_SUBST(LIBPTHREAD,[-lpthread])],
diff --git a/driver/disorder.c b/driver/disorder.c
index e6b6575..143b043 100644
--- a/driver/disorder.c
+++ b/driver/disorder.c
@@ -1,6 +1,6 @@
/*
* This file is part of DisOrder.
- * Copyright (C) 2005, 2007 Richard Kettlewell
+ * Copyright (C) 2005, 2007, 2010 Richard Kettlewell
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -20,6 +20,9 @@
*
* The output from this driver is expected to be fed to @c
* disorder-normalize to convert to the confnigured target format.
+ *
+ * @attention This driver will not build with libao 1.0.0. libao has
+ * taken away half the plugin API and not provided any replacement.
*/
#include "common.h"