diff --git a/INSTALL b/INSTALL index 54ade434d..57712c094 100644 --- a/INSTALL +++ b/INSTALL @@ -141,6 +141,9 @@ For the sticker database. libcue - http://libcue.sourceforge.net/ For CUE sheet support. +libcdio - http://www.gnu.org/software/libcdio/ +For playing audio CDs. + pkg-config ---------- diff --git a/Makefile.am b/Makefile.am index 0966a2a66..f02b389c8 100644 --- a/Makefile.am +++ b/Makefile.am @@ -106,6 +106,7 @@ mpd_headers = \ src/input/curl_input_plugin.h \ src/input/rewind_input_plugin.h \ src/input/mms_input_plugin.h \ + src/input/cdio_paranoia_input_plugin.h \ src/text_file.h \ src/text_input_stream.h \ src/icy_server.h \ @@ -612,11 +613,13 @@ endif INPUT_CFLAGS = \ $(CURL_CFLAGS) \ + $(CDIO_PARANOIA_CFLAGS) \ $(FFMPEG_CFLAGS) \ $(MMS_CFLAGS) INPUT_LIBS = \ $(CURL_LIBS) \ + $(CDIO_PARANOIA_LIBS) \ $(FFMPEG_LIBS) \ $(MMS_LIBS) @@ -632,6 +635,10 @@ INPUT_SRC += src/input/curl_input_plugin.c \ src/icy_metadata.c endif +if ENABLE_CDIO_PARANOIA +INPUT_SRC += src/input/cdio_paranoia_input_plugin.c +endif + if HAVE_FFMPEG INPUT_SRC += src/input/ffmpeg_input_plugin.c endif diff --git a/NEWS b/NEWS index 1a25bfd9b..f58f69110 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,6 @@ ver 0.17 (2010/??/??) +* input: + - cdio_paranoia: new input plugin to play audio CDs * output: - osx: allow user to specify other audio devices diff --git a/configure.ac b/configure.ac index d8b2c5834..4d578c9f0 100644 --- a/configure.ac +++ b/configure.ac @@ -135,6 +135,11 @@ AC_ARG_ENABLE(bzip2, [enable bzip2 archive support (default: disabled)]),, enable_bzip2=no) +AC_ARG_ENABLE(cdio-paranoia, + AS_HELP_STRING([--enable-cdio-paranoia], + [enable support for audio CD support]),, + enable_cdio_paranoia=auto) + AC_ARG_ENABLE(cue, AS_HELP_STRING([--enable-cue], [enable support for libcue support]),, @@ -633,6 +638,16 @@ if test x$enable_lastfm = xyes; then fi AM_CONDITIONAL(ENABLE_LASTFM, test x$enable_lastfm = xyes) +dnl ---------------------------------- libcue --------------------------------- +MPD_AUTO_PKG(cdio_paranoia, CDIO_PARANOIA, [libcdio_paranoia], + [libcdio_paranoia audio CD library], [libcdio_paranoia not found]) +if test x$enable_cdio_paranoia = xyes; then + AC_DEFINE([ENABLE_CDIO_PARANOIA], 1, + [Define to enable libcdio_paranoia support]) +fi + +AM_CONDITIONAL(ENABLE_CDIO_PARANOIA, test x$enable_cdio_paranoia = xyes) + dnl ---------------------------------- libogg --------------------------------- if test x$with_tremor == xno || test -z $with_tremor; then PKG_CHECK_MODULES(OGG, [ogg], enable_ogg=yes, enable_ogg=no) @@ -1579,6 +1594,7 @@ echo -en '\nStreaming support:\n\t' results(curl,[CURL]) results(lastfm,[Last.FM]) results(mms,[MMS]) +results(cdio_paranoia, [CDIO_PARANOIA]) echo -ne '\n\n##########################################\n\n' diff --git a/doc/user.xml b/doc/user.xml index 17bbdf91f..4dc04ff2e 100644 --- a/doc/user.xml +++ b/doc/user.xml @@ -621,6 +621,17 @@ cd mpd-version Plays streams with the MMS protocol. + +
+ <varname>cdio_paranoia</varname> + + + Plays audio CDs. The URI has the form: + "cdda://[DEVICE][/TRACK]". The + simplest form cdda:// plays the whole + disc in the default drive. + +
diff --git a/src/input_registry.c b/src/input_registry.c index 0b9b47d10..735ed4776 100644 --- a/src/input_registry.c +++ b/src/input_registry.c @@ -37,6 +37,10 @@ #include "input/mms_input_plugin.h" #endif +#ifdef ENABLE_CDIO_PARANOIA +#include "input/cdio_paranoia_input_plugin.h" +#endif + #include const struct input_plugin *const input_plugins[] = { @@ -52,6 +56,9 @@ const struct input_plugin *const input_plugins[] = { #endif #ifdef ENABLE_MMS &input_plugin_mms, +#endif +#ifdef ENABLE_CDIO_PARANOIA + &input_plugin_cdio_paranoia, #endif NULL }; diff --git a/src/ls.c b/src/ls.c index c30765c62..2a90f9b64 100644 --- a/src/ls.c +++ b/src/ls.c @@ -48,6 +48,9 @@ static const char *remoteUrlPrefixes[] = { "rtmp://", "rtmpt://", "rtmps://", +#endif +#ifdef ENABLE_CDIO_PARANOIA + "cdda://", #endif NULL };