diff options
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.diff | 687 |
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 |