aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ. Alexander Treuman <jat@spatialrift.net>2006-07-26 20:51:50 +0000
committerJ. Alexander Treuman <jat@spatialrift.net>2006-07-26 20:51:50 +0000
commit8dcc3d31ac92e0eb632f17bd6ccf5c34fa08106d (patch)
treea584b0472482591f0ddbfeb558f2fd91c4e8e0ba
parent907fe56029ead527a439127d39e54c9283b5d65e (diff)
downloadmpd-8dcc3d31ac92e0eb632f17bd6ccf5c34fa08106d.tar.gz
mpd-8dcc3d31ac92e0eb632f17bd6ccf5c34fa08106d.tar.xz
mpd-8dcc3d31ac92e0eb632f17bd6ccf5c34fa08106d.zip
Remove the fifo plugin. It's currently useless for the average user, and making it more presentable isn't something I'm willing to do before 0.12. It will likely be added back after 0.12, along with some very experimental stuff to make it more usable.
git-svn-id: https://svn.musicpd.org/mpd/trunk@4472 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-rw-r--r--configure.ac14
-rw-r--r--doc/mpd.conf.511
-rw-r--r--src/Makefile.am1
-rw-r--r--src/audio.c2
-rw-r--r--src/audioOutputs/audioOutput_fifo.c251
5 files changed, 0 insertions, 279 deletions
diff --git a/configure.ac b/configure.ac
index 3d08665ae..0349faa3b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -69,7 +69,6 @@ AC_ARG_ENABLE(sun,[ --disable-sun disable sun support (default: enabl
AC_ARG_ENABLE(oss,[ --disable-oss disable OSS support (default: enable)],[enable_oss=$enableval],[enable_oss=yes])
AC_ARG_ENABLE(alsa,[ --disable-alsa disable ALSA support (default: enable)],[enable_alsa=$enableval],[enable_alsa=yes])
AC_ARG_ENABLE(pulse,[ --disable-pulse disable support for the PulseAudio sound server (default: enable)],[enable_pulse=$enableval],[enable_pulse=yes])
-AC_ARG_ENABLE(fifo,[ --enable-fifo enable support for writing audio to a FIFO (default: disable)],[enable_fifo=$enableval],[enable_fifo=no])
AC_ARG_ENABLE(mvp,[ --enable-mvp enable support for Hauppauge Media MVP (default: disable)],[enable_mvp=$enableval],[enable_mvp=no])
AC_ARG_ENABLE(oggvorbis,[ --disable-oggvorbis disable Ogg Vorbis support (default: enable)],[enable_oggvorbis=$enableval],enable_oggvorbis=yes)
AC_ARG_ENABLE(oggflac,[ --disable-oggflac disable OggFLAC support (default: enable)],[enable_oggflac=$enableval],enable_oggflac=yes)
@@ -179,12 +178,6 @@ if test x$enable_pulse = xyes; then
[enable_pulse=no;AC_MSG_WARN([PulseAudio not found -- disabling])])
fi
-if test x$enable_fifo = xyes; then
- AC_CHECK_FUNC([mkfifo],
- [enable_fifo=yes;AC_DEFINE([HAVE_FIFO], 1, [Define to enable support for writing audio to a FIFO])],
- [enable_fifo=no;AC_MSG_WARN([mkfifo not found -- disabling support for writing audio to a FIFO])])
-fi
-
if test x$enable_mvp = xyes; then
AC_DEFINE(HAVE_MVP,1,[Define to enable Hauppauge Media MVP support])
fi
@@ -679,12 +672,6 @@ else
echo " PulseAudio support ............disabled"
fi
-if test x$enable_fifo = xyes; then
- echo " FIFO support ..................enabled"
-else
- echo " FIFO support ..................disabled"
-fi
-
if test x$enable_mvp = xyes; then
echo " Media MVP support .............enabled"
else
@@ -706,7 +693,6 @@ if test x$enable_ao = xno &&
test x$enable_alsa = xno &&
test x$enable_osx = xno &&
test x$enable_pulse = xno &&
- test x$enable_fifo = xno &&
test x$enable_mvp = xno; then
AC_MSG_ERROR("No Audio Output types configured!")
fi
diff --git a/doc/mpd.conf.5 b/doc/mpd.conf.5
index 809ea8dc7..8e9dc0ea9 100644
--- a/doc/mpd.conf.5
+++ b/doc/mpd.conf.5
@@ -257,17 +257,6 @@ default is "".
This specifies how many bytes to write to the audio device at once. This
parameter is to work around a bug in older versions of libao on sound cards
with very small buffers. The default is 1024.
-.SH REQUIRED FIFO OUTPUT PARAMETERS
-.TP
-.B path <path>
-This specifies the path of the FIFO to output to. Must be an absolute path.
-If the path does not exist it will be created when mpd is started, and removed
-when mpd is stopped. The FIFO will be created with the same user and group as
-mpd is running as. Default permissions can be modified by using the builtin
-shell command "umask". If a FIFO already exists at the specified path it will
-be reused, and will \fBnot\fP be removed when mpd is stopped. You can use the
-"mkfifo" command to create this, and then you may modify the permissions to
-your liking.
.SH REQUIRED SHOUT OUTPUT PARAMETERS
.TP
.B name <name>
diff --git a/src/Makefile.am b/src/Makefile.am
index 805403165..08f7ed012 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -7,7 +7,6 @@ mpd_audioOutputs = \
audioOutputs/audioOutput_oss.c \
audioOutputs/audioOutput_osx.c \
audioOutputs/audioOutput_pulse.c \
- audioOutputs/audioOutput_fifo.c \
audioOutputs/audioOutput_mvp.c \
audioOutputs/audioOutput_shout.c
diff --git a/src/audio.c b/src/audio.c
index dbec007b8..2e8645882 100644
--- a/src/audio.c
+++ b/src/audio.c
@@ -77,7 +77,6 @@ extern AudioOutputPlugin aoPlugin;
extern AudioOutputPlugin ossPlugin;
extern AudioOutputPlugin osxPlugin;
extern AudioOutputPlugin pulsePlugin;
-extern AudioOutputPlugin fifoPlugin;
extern AudioOutputPlugin mvpPlugin;
extern AudioOutputPlugin shoutPlugin;
@@ -89,7 +88,6 @@ void loadAudioDrivers(void)
loadAudioOutputPlugin(&ossPlugin);
loadAudioOutputPlugin(&osxPlugin);
loadAudioOutputPlugin(&pulsePlugin);
- loadAudioOutputPlugin(&fifoPlugin);
loadAudioOutputPlugin(&mvpPlugin);
loadAudioOutputPlugin(&shoutPlugin);
}
diff --git a/src/audioOutputs/audioOutput_fifo.c b/src/audioOutputs/audioOutput_fifo.c
deleted file mode 100644
index d77e7e81c..000000000
--- a/src/audioOutputs/audioOutput_fifo.c
+++ /dev/null
@@ -1,251 +0,0 @@
-/* the Music Player Daemon (MPD)
- * (c)2003-2006 by Warren Dukes (warren.dukes@gmail.com)
- * This project's homepage is: http://www.musicpd.org
- *
- * 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#include "../audioOutput.h"
-
-#include <stdlib.h>
-
-#ifdef HAVE_FIFO
-
-#include "../conf.h"
-#include "../log.h"
-
-#include <errno.h>
-#include <fcntl.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/stat.h>
-
-#define FIFO_BUFFER_SIZE 65536 /* pipe capacity on Linux >= 2.6.11 */
-
-typedef struct _FifoData {
- char *path;
- int input;
- int output;
- int created;
-} FifoData;
-
-static FifoData *newFifoData()
-{
- FifoData *ret;
-
- ret = malloc(sizeof(FifoData));
-
- ret->path = NULL;
- ret->input = -1;
- ret->output = -1;
- ret->created = 0;
-
- return ret;
-}
-
-static void freeFifoData(FifoData *fd)
-{
- if (fd->path) free(fd->path);
- free(fd);
-}
-
-static int makeFifo(FifoData *fd)
-{
- if (mkfifo(fd->path, 0666) < 0) {
- ERROR("Couldn't create FIFO \"%s\": %s\n", fd->path,
- strerror(errno));
- return -1;
- }
-
- fd->created = 1;
-
- return 0;
-}
-
-static int checkFifo(FifoData *fd)
-{
- struct stat st;
-
- if (stat(fd->path, &st) < 0) {
- if (errno == ENOENT) {
- /* Path doesn't exist */
- return makeFifo(fd);
- }
-
- ERROR("Failed to stat FIFO \"%s\": %s\n", fd->path,
- strerror(errno));
- return -1;
- }
-
- if (!S_ISFIFO(st.st_mode)) {
- ERROR("\"%s\" already exists, but is not a FIFO\n", fd->path);
- return -1;
- }
-
- return 0;
-}
-
-static int openFifo(FifoData *fd)
-{
- if (checkFifo(fd) < 0) return -1;
-
- fd->input = open(fd->path, O_RDONLY|O_NONBLOCK);
- if (fd->input < 0) {
- ERROR("Could not open FIFO \"%s\" for reading: %s\n", fd->path,
- strerror(errno));
- return -1;
- }
-
- fd->output = open(fd->path, O_WRONLY|O_NONBLOCK);
- if (fd->output < 0) {
- ERROR("Could not open FIFO \"%s\" for writing: %s\n", fd->path,
- strerror(errno));
- return -1;
- }
-
- return 0;
-}
-
-static void removeFifo(FifoData *fd)
-{
- DEBUG("Removing FIFO \"%s\"\n", fd->path);
- if (unlink(fd->path) < 0) {
- ERROR("Could not remove FIFO \"%s\": %s\n", fd->path,
- strerror(errno));
- return;
- }
-
- fd->created = 0;
-}
-
-static void closeFifo(FifoData *fd)
-{
- struct stat st;
-
- if (fd->input >= 0) close(fd->input);
- if (fd->output >= 0) close(fd->output);
- if (fd->created && (stat(fd->path, &st) == 0)) removeFifo(fd);
-}
-
-static int fifo_initDriver(AudioOutput *audioOutput, ConfigParam *param)
-{
- BlockParam *path = NULL;
- FifoData *fd;
-
- if (param) path = getBlockParam(param, "path");
-
- if (!path) {
- ERROR("No \"path\" parameter specified for fifo output "
- "defined at line %i\n", param->line);
- exit(EXIT_FAILURE);
- }
-
- if (path->value[0] != '/') {
- ERROR("\"path\" parameter for fifo output is not an absolute "
- "path at line %i\n", param->line);
- exit(EXIT_FAILURE);
- }
-
- fd = newFifoData();
- fd->path = strdup(path->value);
- audioOutput->data = fd;
-
- if (openFifo(fd) < 0) {
- freeFifoData(fd);
- return -1;
- }
-
- return 0;
-}
-
-static void fifo_finishDriver(AudioOutput *audioOutput)
-{
- FifoData *fd;
-
- fd = audioOutput->data;
- closeFifo(fd);
- freeFifoData(fd);
-}
-
-static int fifo_openDevice(AudioOutput *audioOutput)
-{
- audioOutput->open = 1;
- return 0;
-}
-
-static void fifo_dropBufferedAudio(AudioOutput *audioOutput)
-{
- FifoData *fd;
- char buf[FIFO_BUFFER_SIZE];
- int bytes = 1;
-
- fd = audioOutput->data;
-
- while (bytes > 0) bytes = read(fd->input, buf, FIFO_BUFFER_SIZE);
- if (bytes < 0 && errno != EAGAIN) {
- WARNING("Flush of FIFO \"%s\" failed: %s\n", fd->path,
- strerror(errno));
- }
-}
-
-static void fifo_closeDevice(AudioOutput *audioOutput)
-{
- audioOutput->open = 0;
-}
-
-static int fifo_playAudio(AudioOutput *audioOutput, char *playChunk, int size)
-{
- FifoData *fd;
- int bytes;
- int offset = 0;
-
- fd = audioOutput->data;
-
- while (1) {
- bytes = write(fd->output, &playChunk[offset], size);
- if (bytes < 0 && errno == EAGAIN) {
- fifo_dropBufferedAudio(audioOutput);
- } else if (bytes < 0) {
- ERROR("Closing FIFO output \"%s\" due to write error: "
- "%s\n", fd->path, strerror(errno));
- fifo_closeDevice(audioOutput);
- return -1;
- } else if (bytes < size) {
- size -= bytes;
- offset += bytes;
- } else {
- break;
- }
- }
-
- return 0;
-}
-
-AudioOutputPlugin fifoPlugin = {
- "fifo",
- NULL, /* testDefaultDeviceFunc */
- fifo_initDriver,
- fifo_finishDriver,
- fifo_openDevice,
- fifo_playAudio,
- fifo_dropBufferedAudio,
- fifo_closeDevice,
- NULL, /* sendMetadataFunc */
-};
-
-#else /* HAVE_FIFO */
-
-DISABLED_AUDIO_OUTPUT_PLUGIN(fifoPlugin)
-
-#endif /* HAVE_FIFO */