summaryrefslogtreecommitdiffstats
path: root/freebsd/dependencies/akode/files/patch-b02-rename-polyp-to-pulse.diff
diff options
context:
space:
mode:
Diffstat (limited to 'freebsd/dependencies/akode/files/patch-b02-rename-polyp-to-pulse.diff')
-rw-r--r--freebsd/dependencies/akode/files/patch-b02-rename-polyp-to-pulse.diff687
1 files changed, 0 insertions, 687 deletions
diff --git a/freebsd/dependencies/akode/files/patch-b02-rename-polyp-to-pulse.diff b/freebsd/dependencies/akode/files/patch-b02-rename-polyp-to-pulse.diff
deleted file mode 100644
index 695c4e1fa..000000000
--- a/freebsd/dependencies/akode/files/patch-b02-rename-polyp-to-pulse.diff
+++ /dev/null
@@ -1,687 +0,0 @@
-commit b4697bcfd6567f704e01927fdaf77f3ab5b9112b
-Author: Slávek Banko <slavek.banko@axis.cz>
-Date: Thu Oct 15 04:46:45 2015 +0200
-
- Rename completely from polyp to pulse
-
- Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
-
-diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
-index 635db2e..838fb28 100644
---- a/ConfigureChecks.cmake
-+++ b/ConfigureChecks.cmake
-@@ -116,7 +116,7 @@ if( WITH_OSS_SINK )
- endif( WITH_OSS_SINK )
-
-
--##### check polyp support #######################
-+##### check pulse support #######################
-
- if( WITH_PULSE_SINK )
-
-diff --git a/PACKAGING b/PACKAGING
-index da75139..8cbd9f1 100644
---- a/PACKAGING
-+++ b/PACKAGING
-@@ -7,9 +7,9 @@ Take especially note of the following:
- - If you wish to install plugins in a non-standard place, you can change the
- AKODE_SEARCHDIR definition in lib/pluginhandler.cpp.
- - You SHOULD not install sinks for backends you don't use. Thus jack_sink
-- should only be installed when jackd is available, polyp_sink only when
-- the polypaudio server is used and alsa_sink only when using a Linux kernel
-+ should only be installed when jackd is available, pulse_sink only when
-+ the PulseAudio server is used and alsa_sink only when using a Linux kernel
- with ALSA drivers.
- When using direct aKode playback sinks will be autodetected by loading and
-- probing plugins in this order: polyp, jack, alsa, oss
-+ probing plugins in this order: pulse, jack, alsa, oss
-
-diff --git a/akode/PACKAGING b/akode/PACKAGING
-index da75139..8cbd9f1 100644
---- a/akode/PACKAGING
-+++ b/akode/PACKAGING
-@@ -7,9 +7,9 @@ Take especially note of the following:
- - If you wish to install plugins in a non-standard place, you can change the
- AKODE_SEARCHDIR definition in lib/pluginhandler.cpp.
- - You SHOULD not install sinks for backends you don't use. Thus jack_sink
-- should only be installed when jackd is available, polyp_sink only when
-- the polypaudio server is used and alsa_sink only when using a Linux kernel
-+ should only be installed when jackd is available, pulse_sink only when
-+ the PulseAudio server is used and alsa_sink only when using a Linux kernel
- with ALSA drivers.
- When using direct aKode playback sinks will be autodetected by loading and
-- probing plugins in this order: polyp, jack, alsa, oss
-+ probing plugins in this order: pulse, jack, alsa, oss
-
-diff --git a/akode/configure.in.in b/akode/configure.in.in
-index 80338d5..80d0114 100644
---- a/akode/configure.in.in
-+++ b/akode/configure.in.in
-@@ -270,24 +270,24 @@ AC_SUBST(JACK_LIBADD)
- AC_SUBST(JACK_LDFLAGS)
- fi
-
--AC_ARG_WITH(polypaudio,AC_HELP_STRING([--with-polypaudio],[Enable Polypaudio server support @<:@default=check@:>@]),[polypaudio_test="$withval"],[polypaudio_test="yes"])
--
--if test "x$polypaudio_test" = "xyes" ; then
--AC_MSG_CHECKING(for Polypaudio 0.7 or later)
--if $PKG_CONFIG --atleast-version 0.7 polyplib-simple >/dev/null 2>&1 ; then
-- POLYP_CFLAGS="`$PKG_CONFIG --cflags polyplib-simple`"
-- POLYP_LIBADD="`$PKG_CONFIG --libs-only-l polyplib-simple`"
-- POLYP_LDFLAGS="`$PKG_CONFIG --libs-only-L polyplib-simple`"
-- have_polyp=yes
-+AC_ARG_WITH(pulseaudio,AC_HELP_STRING([--with-pulseaudio],[Enable PulseAudio server support @<:@default=check@:>@]),[pulseaudio_test="$withval"],[pulseaudio_test="yes"])
-+
-+if test "x$pulseaudio_test" = "xyes" ; then
-+AC_MSG_CHECKING(for pulseaudio 0.9.2 or later)
-+if $PKG_CONFIG --atleast-version 0.9.2 libpulse-simple >/dev/null 2>&1 ; then
-+ PULSE_CFLAGS="`$PKG_CONFIG --cflags libpulse-simple`"
-+ PULSE_LIBADD="`$PKG_CONFIG --libs-only-l libpulse-simple`"
-+ PULSE_LDFLAGS="`$PKG_CONFIG --libs-only-L libpulse-simple`"
-+ have_pulse=yes
- AC_MSG_RESULT(yes)
-- AC_DEFINE(HAVE_LIBPOLYP, 1,
-- [Define if you have polyplib (required if you want Polypaudio server support)])
-+ AC_DEFINE(HAVE_LIBPULSE, 1,
-+ [Define if you have libpulse (required if you want PulseAudio server support)])
- else
- AC_MSG_RESULT(not installed)
- fi
--AC_SUBST(POLYP_CFLAGS)
--AC_SUBST(POLYP_LIBADD)
--AC_SUBST(POLYP_LDFLAGS)
-+AC_SUBST(PULSE_CFLAGS)
-+AC_SUBST(PULSE_LIBADD)
-+AC_SUBST(PULSE_LDFLAGS)
- fi
-
- AC_ARG_WITH(ffmpeg,AC_HELP_STRING([--with-ffmpeg],[Enable experimental FFMPEG decoder support @<:@default=check@:>@]),[ffmpeg_test="$withval"],[ffmpeg_test="yes"])
-@@ -482,7 +482,7 @@ AM_CONDITIONAL(include_alsa_sink, test x$have_alsa = xyes)
- AM_CONDITIONAL(include_oss_sink, test x$have_oss = xyes)
- AM_CONDITIONAL(include_sun_sink, test x$have_sun = xyes)
- AM_CONDITIONAL(include_jack_sink, test x$have_jack = xyes)
--AM_CONDITIONAL(include_polyp_sink, test x$have_polyp = xyes)
-+AM_CONDITIONAL(include_pulse_sink, test x$have_pulse = xyes)
- AM_CONDITIONAL(include_ffmpeg_decoder, test x$have_ffmpeg = xyes)
-
- AC_MSG_CHECKING(for compilable aKode)
-diff --git a/akode/lib/auto_sink.cpp b/akode/lib/auto_sink.cpp
-index bcc1250..bee17b1 100644
---- a/akode/lib/auto_sink.cpp
-+++ b/akode/lib/auto_sink.cpp
-@@ -65,8 +65,8 @@ AutoSink::~AutoSink()
- bool AutoSink::open()
- {
- // Try Polypaudio
-- if (getenv("POLYP_SERVER"))
-- if (m_data->tryOpen("polyp")) return true;
-+ if (getenv("PULSE_SERVER"))
-+ if (m_data->tryOpen("pulse")) return true;
- // Try Jack
- if (m_data->tryOpen("jack")) return true;
- // Try ALSA
-diff --git a/akode/plugins/CMakeLists.txt b/akode/plugins/CMakeLists.txt
-index 6e11f1a..89bcfd1 100644
---- a/akode/plugins/CMakeLists.txt
-+++ b/akode/plugins/CMakeLists.txt
-@@ -15,7 +15,7 @@
- tde_conditional_add_subdirectory( WITH_ALSA_SINK alsa_sink )
- tde_conditional_add_subdirectory( WITH_JACK_SINK jack_sink )
- tde_conditional_add_subdirectory( WITH_OSS_SINK oss_sink )
--tde_conditional_add_subdirectory( WITH_PULSE_SINK polyp_sink )
-+tde_conditional_add_subdirectory( WITH_PULSE_SINK pulse_sink )
- tde_conditional_add_subdirectory( WITH_SUN_SINK sun_sink )
-
- tde_conditional_add_subdirectory( WITH_FFMPEG_DECODER ffmpeg_decoder )
-diff --git a/akode/plugins/Makefile.am b/akode/plugins/Makefile.am
-index 74f27e5..4a13c85 100644
---- a/akode/plugins/Makefile.am
-+++ b/akode/plugins/Makefile.am
-@@ -32,12 +32,12 @@ if include_jack_sink
- AKODE_JACK_SINK=jack_sink
- endif
-
--if include_polyp_sink
--AKODE_POLYP_SINK=polyp_sink
-+if include_pulse_sink
-+AKODE_PULSE_SINK=pulse_sink
- endif
-
- SUBDIRS= $(AKODE_MPC_DECODER) $(AKODE_XIPH_DECODER) \
- $(AKODE_MPEG_DECODER) $(AKODE_FFMPEG_DECODER) \
- $(AKODE_ALSA_SINK) $(AKODE_OSS_SINK) $(AKODE_SUN_SINK) \
-- $(AKODE_JACK_SINK) $(AKODE_POLYP_SINK) \
-+ $(AKODE_JACK_SINK) $(AKODE_PULSE_SINK) \
- $(AKODE_SRC_RESAMPLER)
-diff --git a/akode/plugins/polyp_sink/CMakeLists.txt b/akode/plugins/polyp_sink/CMakeLists.txt
-deleted file mode 100644
-index 28a940e..0000000
---- a/akode/plugins/polyp_sink/CMakeLists.txt
-+++ /dev/null
-@@ -1,32 +0,0 @@
--#################################################
--#
--# (C) 2015 Slávek Banko
--# slavek (DOT) banko (AT) axis.cz
--#
--# Improvements and feedback are welcome
--#
--# This file is released under GPL >= 2
--#
--#################################################
--
--include_directories(
-- ${CMAKE_BINARY_DIR}
-- ${CMAKE_BINARY_DIR}/akode/lib
-- ${CMAKE_SOURCE_DIR}/akode/lib
-- ${CMAKE_CURRENT_BINARY_DIR}
-- ${CMAKE_CURRENT_SOURCE_DIR}
-- ${PULSE_INCLUDE_DIRS}
--)
--
--
--##### library ###################################
--
--set( target libakode_polyp_sink )
--
--tde_add_library(
-- ${target} MODULE
-- SOURCES polyp_sink.cpp
-- LINK akode-shared ${PULSE_LIBRARIES}
-- DESTINATION ${LIB_INSTALL_DIR}
--)
--
-diff --git a/akode/plugins/polyp_sink/Makefile.am b/akode/plugins/polyp_sink/Makefile.am
-deleted file mode 100644
-index a58b04c..0000000
---- a/akode/plugins/polyp_sink/Makefile.am
-+++ /dev/null
-@@ -1,7 +0,0 @@
--INCLUDES = -I$(top_srcdir)/akode/lib -I$(top_builddir)/akode/lib $(PULSE_CFLAGS) $(all_includes)
--
--lib_LTLIBRARIES = libakode_polyp_sink.la
--
--libakode_polyp_sink_la_SOURCES = polyp_sink.cpp
--libakode_polyp_sink_la_LDFLAGS = -module -avoid-version -no-undefined $(PULSE_LDFLAGS)
--libakode_polyp_sink_la_LIBADD = ../../lib/libakode.la $(PULSE_LIBADD)
-diff --git a/akode/plugins/polyp_sink/polyp_sink.cpp b/akode/plugins/polyp_sink/polyp_sink.cpp
-deleted file mode 100644
-index b48b63e..0000000
---- a/akode/plugins/polyp_sink/polyp_sink.cpp
-+++ /dev/null
-@@ -1,143 +0,0 @@
--/* aKode: Polyp-Sink
--
-- Copyright (C) 2004 Allan Sandfeld Jensen <kde@carewolf.com>
--
-- This library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Library General Public
-- License as published by the Free Software Foundation; either
-- version 2 of the License, or (at your option) any later version.
--
-- This library 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
-- Library General Public License for more details.
--
-- You should have received a copy of the GNU Library General Public License
-- along with this library; see the file COPYING.LIB. If not, write to
-- the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
-- Boston, MA 02110-1301, USA.
--*/
--
--#include "config.h"
--
--#ifdef HAVE_STDINT_H
--#include <stdint.h>
--#elif defined(HAVE_INTTYPES_H)
--#include <inttypes.h>
--#endif
--#include <pulse/simple.h>
--
--#include "audioframe.h"
--#include "audiobuffer.h"
--#include "polyp_sink.h"
--
--#include <iostream>
--
--namespace aKode {
--
--extern "C" { PolypSinkPlugin polyp_sink; };
--
--struct PolypSink::private_data
--{
-- private_data() : server(0), error(false) {};
--
-- pa_simple *server;
-- pa_sample_spec sample_spec;
--
-- bool error;
--
-- AudioConfiguration config;
--};
--
--PolypSink::PolypSink()
--{
-- m_data = new private_data;
-- m_data->sample_spec.rate = 44100;
-- m_data->sample_spec.channels = 2;
-- m_data->sample_spec.format = PA_SAMPLE_S16NE;
--}
--
--bool PolypSink::open() {
-- int error = 0;
-- m_data->server = pa_simple_new(0, "akode-client", PA_STREAM_PLAYBACK, 0, "", &m_data->sample_spec, 0, 0, &error );
-- if (!m_data->server || error != 0) {
-- m_data->error = true;
-- close();
-- std::cout << "Cannot open client\n";
-- return false;
-- }
--
--
-- return true;
--}
--
--void PolypSink::close() {
-- if (m_data->server) {
-- pa_simple_free(m_data->server);
-- m_data->server = 0;
-- }
--}
--
--PolypSink::~PolypSink()
--{
-- close();
-- delete m_data;
--}
--
--int PolypSink::setAudioConfiguration(const AudioConfiguration* config)
--{
-- if (m_data->error) return -1;
--
-- int res = 0;
-- if (*config == m_data->config) return 0;
-- m_data->config = *config;
--
-- if (config->channel_config != MonoStereo ) return -1;
-- m_data->sample_spec.channels = config->channels;
--
-- if (config->sample_width != 16) {
-- res = 1;
-- m_data->config.sample_width = 16;
-- }
--
-- m_data->sample_spec.rate = config->sample_rate;
--
-- // create new connection
-- close();
-- open();
--
-- return res;
--}
--
--const AudioConfiguration* PolypSink::audioConfiguration() const
--{
-- return &m_data->config;
--}
--
--bool PolypSink::writeFrame(AudioFrame* frame)
--{
-- if ( m_data->error ) return false;
--
-- if ( frame->channels != m_data->config.channels || frame->sample_rate != m_data->config.sample_rate)
-- {
-- if (setAudioConfiguration(frame)!=0)
-- return false;
-- }
--
-- int channels = m_data->config.channels;
-- int length = frame->length;
--
-- int16_t *buffer = new int16_t[length*channels];
-- int16_t** data = (int16_t**)frame->data;
-- for(int i = 0; i<length; i++)
-- for(int j=0; j<channels; j++)
-- buffer[i*channels+j] = data[j][i];
--
-- int error = 0;
-- pa_simple_write(m_data->server, buffer, channels*length*2, &error);
-- delete[] buffer;
--
-- return (error == 0);
--}
--
--} // namespace
-diff --git a/akode/plugins/polyp_sink/polyp_sink.h b/akode/plugins/polyp_sink/polyp_sink.h
-deleted file mode 100644
-index e279ff6..0000000
---- a/akode/plugins/polyp_sink/polyp_sink.h
-+++ /dev/null
-@@ -1,60 +0,0 @@
--/* aKode: Polyp-Sink
--
-- Copyright (C) 2004 Allan Sandfeld Jensen <kde@carewolf.com>
--
-- This library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Library General Public
-- License as published by the Free Software Foundation; either
-- version 2 of the License, or (at your option) any later version.
--
-- This library 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
-- Library General Public License for more details.
--
-- You should have received a copy of the GNU Library General Public License
-- along with this library; see the file COPYING.LIB. If not, write to
-- the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
-- Boston, MA 02110-1301, USA.
--*/
--
--#ifndef _AKODE_POLYP_SINK_H
--#define _AKODE_POLYP_SINK_H
--
--#include "sink.h"
--
--#include "akode_export.h"
--
--namespace aKode {
--
--class AudioConfiguration;
--class AudioFrame;
--
--class PolypSink : public Sink {
--public:
-- PolypSink();
-- ~PolypSink();
-- bool open();
-- void close();
-- int setAudioConfiguration(const AudioConfiguration *config);
-- const AudioConfiguration* audioConfiguration() const;
-- // Writes blocking
-- bool writeFrame(AudioFrame *frame);
--
-- struct private_data;
--private:
-- private_data *m_data;
--};
--
--class PolypSinkPlugin : public SinkPlugin {
--public:
-- virtual PolypSink* openSink() {
-- return new PolypSink();
-- }
--};
--
--extern "C" AKODE_EXPORT PolypSinkPlugin polyp_sink;
--
--} // namespace
--
--#endif
-diff --git a/akode/plugins/pulse_sink/CMakeLists.txt b/akode/plugins/pulse_sink/CMakeLists.txt
-new file mode 100644
-index 0000000..04026d3
---- /dev/null
-+++ b/akode/plugins/pulse_sink/CMakeLists.txt
-@@ -0,0 +1,32 @@
-+#################################################
-+#
-+# (C) 2015 Slávek Banko
-+# slavek (DOT) banko (AT) axis.cz
-+#
-+# Improvements and feedback are welcome
-+#
-+# This file is released under GPL >= 2
-+#
-+#################################################
-+
-+include_directories(
-+ ${CMAKE_BINARY_DIR}
-+ ${CMAKE_BINARY_DIR}/akode/lib
-+ ${CMAKE_SOURCE_DIR}/akode/lib
-+ ${CMAKE_CURRENT_BINARY_DIR}
-+ ${CMAKE_CURRENT_SOURCE_DIR}
-+ ${PULSE_INCLUDE_DIRS}
-+)
-+
-+
-+##### library ###################################
-+
-+set( target libakode_pulse_sink )
-+
-+tde_add_library(
-+ ${target} MODULE
-+ SOURCES pulse_sink.cpp
-+ LINK akode-shared ${PULSE_LIBRARIES}
-+ DESTINATION ${LIB_INSTALL_DIR}
-+)
-+
-diff --git a/akode/plugins/pulse_sink/Makefile.am b/akode/plugins/pulse_sink/Makefile.am
-new file mode 100644
-index 0000000..9f38245
---- /dev/null
-+++ b/akode/plugins/pulse_sink/Makefile.am
-@@ -0,0 +1,7 @@
-+INCLUDES = -I$(top_srcdir)/akode/lib -I$(top_builddir)/akode/lib $(PULSE_CFLAGS) $(all_includes)
-+
-+lib_LTLIBRARIES = libakode_pulse_sink.la
-+
-+libakode_pulse_sink_la_SOURCES = pulse_sink.cpp
-+libakode_pulse_sink_la_LDFLAGS = -module -avoid-version -no-undefined $(PULSE_LDFLAGS)
-+libakode_pulse_sink_la_LIBADD = ../../lib/libakode.la $(PULSE_LIBADD)
-diff --git a/akode/plugins/pulse_sink/pulse_sink.cpp b/akode/plugins/pulse_sink/pulse_sink.cpp
-new file mode 100644
-index 0000000..395bfb3
---- /dev/null
-+++ b/akode/plugins/pulse_sink/pulse_sink.cpp
-@@ -0,0 +1,143 @@
-+/* aKode: Pulse-Sink
-+
-+ Copyright (C) 2004 Allan Sandfeld Jensen <kde@carewolf.com>
-+
-+ This library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Library General Public
-+ License as published by the Free Software Foundation; either
-+ version 2 of the License, or (at your option) any later version.
-+
-+ This library 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library General Public License
-+ along with this library; see the file COPYING.LIB. If not, write to
-+ the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
-+ Boston, MA 02110-1301, USA.
-+*/
-+
-+#include "config.h"
-+
-+#ifdef HAVE_STDINT_H
-+#include <stdint.h>
-+#elif defined(HAVE_INTTYPES_H)
-+#include <inttypes.h>
-+#endif
-+#include <pulse/simple.h>
-+
-+#include "audioframe.h"
-+#include "audiobuffer.h"
-+#include "pulse_sink.h"
-+
-+#include <iostream>
-+
-+namespace aKode {
-+
-+extern "C" { PulseSinkPlugin pulse_sink; };
-+
-+struct PulseSink::private_data
-+{
-+ private_data() : server(0), error(false) {};
-+
-+ pa_simple *server;
-+ pa_sample_spec sample_spec;
-+
-+ bool error;
-+
-+ AudioConfiguration config;
-+};
-+
-+PulseSink::PulseSink()
-+{
-+ m_data = new private_data;
-+ m_data->sample_spec.rate = 44100;
-+ m_data->sample_spec.channels = 2;
-+ m_data->sample_spec.format = PA_SAMPLE_S16NE;
-+}
-+
-+bool PulseSink::open() {
-+ int error = 0;
-+ m_data->server = pa_simple_new(0, "akode-client", PA_STREAM_PLAYBACK, 0, "", &m_data->sample_spec, 0, 0, &error );
-+ if (!m_data->server || error != 0) {
-+ m_data->error = true;
-+ close();
-+ std::cout << "Cannot open client\n";
-+ return false;
-+ }
-+
-+
-+ return true;
-+}
-+
-+void PulseSink::close() {
-+ if (m_data->server) {
-+ pa_simple_free(m_data->server);
-+ m_data->server = 0;
-+ }
-+}
-+
-+PulseSink::~PulseSink()
-+{
-+ close();
-+ delete m_data;
-+}
-+
-+int PulseSink::setAudioConfiguration(const AudioConfiguration* config)
-+{
-+ if (m_data->error) return -1;
-+
-+ int res = 0;
-+ if (*config == m_data->config) return 0;
-+ m_data->config = *config;
-+
-+ if (config->channel_config != MonoStereo ) return -1;
-+ m_data->sample_spec.channels = config->channels;
-+
-+ if (config->sample_width != 16) {
-+ res = 1;
-+ m_data->config.sample_width = 16;
-+ }
-+
-+ m_data->sample_spec.rate = config->sample_rate;
-+
-+ // create new connection
-+ close();
-+ open();
-+
-+ return res;
-+}
-+
-+const AudioConfiguration* PulseSink::audioConfiguration() const
-+{
-+ return &m_data->config;
-+}
-+
-+bool PulseSink::writeFrame(AudioFrame* frame)
-+{
-+ if ( m_data->error ) return false;
-+
-+ if ( frame->channels != m_data->config.channels || frame->sample_rate != m_data->config.sample_rate)
-+ {
-+ if (setAudioConfiguration(frame)!=0)
-+ return false;
-+ }
-+
-+ int channels = m_data->config.channels;
-+ int length = frame->length;
-+
-+ int16_t *buffer = new int16_t[length*channels];
-+ int16_t** data = (int16_t**)frame->data;
-+ for(int i = 0; i<length; i++)
-+ for(int j=0; j<channels; j++)
-+ buffer[i*channels+j] = data[j][i];
-+
-+ int error = 0;
-+ pa_simple_write(m_data->server, buffer, channels*length*2, &error);
-+ delete[] buffer;
-+
-+ return (error == 0);
-+}
-+
-+} // namespace
-diff --git a/akode/plugins/pulse_sink/pulse_sink.h b/akode/plugins/pulse_sink/pulse_sink.h
-new file mode 100644
-index 0000000..e890e4a
---- /dev/null
-+++ b/akode/plugins/pulse_sink/pulse_sink.h
-@@ -0,0 +1,60 @@
-+/* aKode: Pulse-Sink
-+
-+ Copyright (C) 2004 Allan Sandfeld Jensen <kde@carewolf.com>
-+
-+ This library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Library General Public
-+ License as published by the Free Software Foundation; either
-+ version 2 of the License, or (at your option) any later version.
-+
-+ This library 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
-+ Library General Public License for more details.
-+
-+ You should have received a copy of the GNU Library General Public License
-+ along with this library; see the file COPYING.LIB. If not, write to
-+ the Free Software Foundation, Inc., 51 Franklin Steet, Fifth Floor,
-+ Boston, MA 02110-1301, USA.
-+*/
-+
-+#ifndef _AKODE_PULSE_SINK_H
-+#define _AKODE_PULSE_SINK_H
-+
-+#include "sink.h"
-+
-+#include "akode_export.h"
-+
-+namespace aKode {
-+
-+class AudioConfiguration;
-+class AudioFrame;
-+
-+class PulseSink : public Sink {
-+public:
-+ PulseSink();
-+ ~PulseSink();
-+ bool open();
-+ void close();
-+ int setAudioConfiguration(const AudioConfiguration *config);
-+ const AudioConfiguration* audioConfiguration() const;
-+ // Writes blocking
-+ bool writeFrame(AudioFrame *frame);
-+
-+ struct private_data;
-+private:
-+ private_data *m_data;
-+};
-+
-+class PulseSinkPlugin : public SinkPlugin {
-+public:
-+ virtual PulseSink* openSink() {
-+ return new PulseSink();
-+ }
-+};
-+
-+extern "C" AKODE_EXPORT PulseSinkPlugin pulse_sink;
-+
-+} // namespace
-+
-+#endif