[kde-doc-english] [kwave] /: playback: dropped Phonon support (was broken and no longer supported by KF5)
Thomas Eschenbacher
Thomas.Eschenbacher at gmx.de
Thu Nov 12 20:01:30 UTC 2015
Git commit 3085f54797b0ab4b81be4554c97c5f8ff93ef12e by Thomas Eschenbacher.
Committed on 12/11/2015 at 20:01.
Pushed by eschenbacher into branch 'master'.
playback: dropped Phonon support (was broken and no longer supported by KF5)
M +1 -0 CHANGES
M +1 -3 CMakeLists.txt
M +0 -3 LICENSES
M +0 -6 TODO
D +0 -39 cmake/KwavePhononSupport.cmake
M +0 -3 config.h.cmake
M +0 -6 doc/en/index.docbook
M +0 -1 doxy.cfg.in
M +1 -3 kwave.ebuild.in
M +0 -1 libkwave/PlayBackParam.h
M +0 -5 libkwave/PlayBackTypesMap.cpp
M +1 -1 libkwave/PlaybackController.h
M +1 -1 plugins/CMakeLists.txt
M +0 -5 plugins/playback/CMakeLists.txt
D +0 -367 plugins/playback/PlayBack-Phonon.cpp
D +0 -180 plugins/playback/PlayBack-Phonon.h
M +1 -11 plugins/playback/PlayBackPlugin.cpp
http://commits.kde.org/kwave/3085f54797b0ab4b81be4554c97c5f8ff93ef12e
diff --git a/CHANGES b/CHANGES
index 02eca13..5bf9912 100644
--- a/CHANGES
+++ b/CHANGES
@@ -23,6 +23,7 @@
* bugfix: tooltips of fileinfo dialog were not translated
* new make target: "make msgstats" to show the progress of translations
* compile fix for armv7l
+ * playback: dropped Phonon support (was broken and no longer supported by KF5)
0.9.0 [2015-05-25]
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d4ef5eb..d870a00 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -33,7 +33,6 @@ PROJECT(kwave)
# OPTION(WITH_OGG_VORBIS "enable support for ogg/vorbis files [default=on]" ON)
# OPTION(WITH_OSS "enable playback/recording via OSS [default=on]" ON)
# OPTION(WITH_OPTIMIZED_MEMCPY "enable optimized memcpy [default=on]" ON)
-# OPTION(WITH_PHONON "enable playback via Phonon [default=off]" OFF)
# OPTION(WITH_PULSEAUDIO "enable playback/recording via PulseAudio [default=on]" ON)
#############################################################################
@@ -271,12 +270,11 @@ INCLUDE(KwaveLibaudiofileSupport)
INCLUDE(KwaveLibsamplerateSupport)
#############################################################################
-### optionally: OSS, ALSA, PulseAudio and Phonon support ###
+### optionally: OSS, ALSA and PulseAudio support ###
### for playback/recording ###
INCLUDE(KwaveOSSSupport)
INCLUDE(KwaveALSASupport)
-INCLUDE(KwavePhononSupport)
INCLUDE(KwavePulseAudioSupport)
#############################################################################
diff --git a/LICENSES b/LICENSES
index 6fffc46..32bd664 100644
--- a/LICENSES
+++ b/LICENSES
@@ -141,7 +141,6 @@ COMPLETE LIST OF FILES AND THEIR LICENSE
cmake/KwaveLibaudiofileSupport.cmake GPL2+
cmake/KwaveLibsamplerateSupport.cmake GPL2+
cmake/KwaveOSSSupport.cmake GPL2+
- cmake/KwavePhononSupport.cmake GPL2+
cmake/KwavePulseAudioSupport.cmake GPL2+
cmake/KwaveRPMSupport.cmake GPL2+
cmake/KwaveSysinfo.cmake GPL2+
@@ -723,8 +722,6 @@ COMPLETE LIST OF FILES AND THEIR LICENSE
plugins/playback/PlayBackDlg.ui (should be GPL2+)
plugins/playback/PlayBack-OSS.cpp GPL2+
plugins/playback/PlayBack-OSS.h GPL2+
- plugins/playback/PlayBack-Phonon.cpp GPL2+
- plugins/playback/PlayBack-Phonon.h GPL2+
plugins/playback/PlayBack-PulseAudio.cpp GPL2+
plugins/playback/PlayBack-PulseAudio.h GPL2+
plugins/playback/PlayBackPlugin.cpp GPL2+
diff --git a/TODO b/TODO
index 14998bc..09eac44 100644
--- a/TODO
+++ b/TODO
@@ -1,8 +1,4 @@
-o PHONON playback is broken (skips input/too fast?)
-
-o recording via Phonon
-
o auto-detect song borders set markers, for splitting recorded stuff into several
parts and then save them to disc as separate files
@@ -108,8 +104,6 @@ o adjustable playback speed (similar to what vlcplayer offers)
o support for compressed wav files, like those found on www.montypython.net
-> MPEG 3 is still not supported by libaudiofile
-o get Phonon playback support running correctly
-
o TrackPixmap: implement usage of "extra_samples" for interpolated mode
o fileinfo plugin: auto-generate filename from "track - title"
diff --git a/cmake/KwavePhononSupport.cmake b/cmake/KwavePhononSupport.cmake
deleted file mode 100644
index 93281e8..0000000
--- a/cmake/KwavePhononSupport.cmake
+++ /dev/null
@@ -1,39 +0,0 @@
-#############################################################################
-## Kwave - cmake/KwavePhononSupport.cmake
-## -------------------
-## begin : Fri May 15 2009
-## copyright : (C) 2009 by Thomas Eschenbacher
-## email : Thomas.Eschenbacher at gmx.de
-#############################################################################
-#
-#############################################################################
-## #
-## 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. #
-## #
-#############################################################################
-
-OPTION(WITH_PHONON "enable playback via Phonon [default=off]" OFF)
-
-IF (WITH_PHONON)
-
- FIND_PACKAGE(Phonon4Qt5 REQUIRED)
-
- IF (NOT PHONON_FOUND AND PHONON_FOUND_EXPERIMENTAL)
- SET(PHONON_FOUND 1)
- MESSAGE(STATUS "Found EXPERIMENTAL Phonon version")
- ENDIF (NOT PHONON_FOUND AND PHONON_FOUND_EXPERIMENTAL)
-
- IF (PHONON_FOUND)
- MESSAGE(STATUS "Found Phonon version ${PHONON_VERSION}")
- SET(HAVE_PHONON_SUPPORT ON CACHE BOOL "enable Phonon support")
- ELSE (PHONON_FOUND)
- MESSAGE(FATAL_ERROR "Your system lacks Phonon support")
- ENDIF (PHONON_FOUND)
-
-ENDIF (WITH_PHONON)
-
-#############################################################################
-#############################################################################
diff --git a/config.h.cmake b/config.h.cmake
index 14a56e0..c1796cb 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -39,9 +39,6 @@
/* support playback/recording via PulseAudio */
#cmakedefine HAVE_PULSEAUDIO_SUPPORT
-/* support playback via Phonon */
-#cmakedefine HAVE_PHONON_SUPPORT
-
/* support libsamplerate */
#cmakedefine HAVE_LIBSAMPLERATE
diff --git a/doc/en/index.docbook b/doc/en/index.docbook
index ce14bee..f85344c 100644
--- a/doc/en/index.docbook
+++ b/doc/en/index.docbook
@@ -765,12 +765,6 @@
default=<literal>on</literal>]
</para></listitem>
<listitem><para>
- <literal>WITH_PHONON</literal>
- enable playback via Phonon (for testing only)
- [<literal>on</literal>/<literal>off</literal>,
- default=<literal>off</literal>]
- </para></listitem>
- <listitem><para>
<literal>WITH_PULSEAUDIO</literal>
enable playback/recording via PulseAudio
[<literal>on</literal>/<literal>off</literal>,
diff --git a/doxy.cfg.in b/doxy.cfg.in
index 55e8f0e..caf41b8 100644
--- a/doxy.cfg.in
+++ b/doxy.cfg.in
@@ -1952,7 +1952,6 @@ PREDEFINED = DEBUG \
HAVE_MP3 \
HAVE_OPTIMIZED_MEMCPY \
HAVE_PULSEAUDIO_SUPPORT \
- HAVE_PHONON_SUPPORT \
HAVE_OSS_SUPPORT \
HAVE_OGG_OPUS \
HAVE_OGG_VORBIS \
diff --git a/kwave.ebuild.in b/kwave.ebuild.in
index 74563f7..433c7ca 100644
--- a/kwave.ebuild.in
+++ b/kwave.ebuild.in
@@ -16,7 +16,7 @@ LICENSE="BSD GPL-2 LGPL-2
handbook? ( FDL-1.2 )"
SLOT="5"
KEYWORDS="amd64 ~ppc x86"
-IUSE="alsa debug flac handbook mp3 opus oss phonon pulseaudio vorbis"
+IUSE="alsa debug flac handbook mp3 opus oss pulseaudio vorbis"
RDEPEND="
media-libs/audiofile:=
@@ -33,7 +33,6 @@ RDEPEND="
media-libs/libogg
media-libs/opus
)
- phonon? ( media-libs/phonon[qt5] )
pulseaudio? ( media-sound/pulseaudio )
vorbis? (
media-libs/libogg
@@ -81,7 +80,6 @@ src_configure() {
$(cmake-utils_use_with vorbis OGG_VORBIS)
$(cmake-utils_use_with opus OGG_OPUS)
$(cmake-utils_use_with oss)
- $(cmake-utils_use_with phonon)
$(cmake-utils_use_with pulseaudio)
$(cmake-utils_use debug)
)
diff --git a/libkwave/PlayBackParam.h b/libkwave/PlayBackParam.h
index fe8cc80..afa59fb 100644
--- a/libkwave/PlayBackParam.h
+++ b/libkwave/PlayBackParam.h
@@ -32,7 +32,6 @@ namespace Kwave
PLAYBACK_NONE = 0, /**< none selected */
PLAYBACK_JACK, /**< Jack sound daemon */
PLAYBACK_PULSEAUDIO, /**< PulseAudio Sound Server */
- PLAYBACK_PHONON, /**< Phonon (KDE) */
PLAYBACK_ALSA, /**< ALSA native */
PLAYBACK_OSS, /**< OSS native or ALSA OSS emulation */
PLAYBACK_INVALID /**< (keep this the last entry, EOL delimiter) */
diff --git a/libkwave/PlayBackTypesMap.cpp b/libkwave/PlayBackTypesMap.cpp
index ead4a10..ae14cec 100644
--- a/libkwave/PlayBackTypesMap.cpp
+++ b/libkwave/PlayBackTypesMap.cpp
@@ -39,11 +39,6 @@ void Kwave::PlayBackTypesMap::fill()
_(I18N_NOOP("OSS (Open Sound System)")) );
#endif /* HAVE_OSS_SUPPORT */
-#ifdef HAVE_PHONON_SUPPORT
- append(index++, Kwave::PLAYBACK_PHONON, _("phonon"),
- _(I18N_NOOP("Phonon (KDE)")) );
-#endif /* HAVE_PHONON_SUPPORT */
-
#ifdef HAVE_PULSEAUDIO_SUPPORT
append(index++, Kwave::PLAYBACK_PULSEAUDIO, _("pulseaudio"),
_(I18N_NOOP("Pulse Audio")) );
diff --git a/libkwave/PlaybackController.h b/libkwave/PlaybackController.h
index 5139166..562fdcb 100644
--- a/libkwave/PlaybackController.h
+++ b/libkwave/PlaybackController.h
@@ -107,7 +107,7 @@ namespace Kwave
/**
* Create a playback device matching the given playback method.
*
- * @param method a playback_method_t (e.g. Pulse, Phonon, ALSA, OSS...)
+ * @param method a playback_method_t (e.g. Pulse, ALSA, OSS...)
* @return a new PlayBackDevice or 0 if failed
*/
virtual Kwave::PlayBackDevice *createDevice(
diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt
index 685307c..7ef32f1 100644
--- a/plugins/CMakeLists.txt
+++ b/plugins/CMakeLists.txt
@@ -94,7 +94,7 @@ ADD_SUBDIRECTORY( noise )
ADD_SUBDIRECTORY( normalize )
ADD_SUBDIRECTORY( notch_filter )
ADD_SUBDIRECTORY( pitch_shift )
-ADD_SUBDIRECTORY( playback ) # needs one of: OSS/ALSA/PulseAudio/Phonon
+ADD_SUBDIRECTORY( playback ) # needs one of: OSS/ALSA/PulseAudio
ADD_SUBDIRECTORY( record ) # needs OSS and/or ALSA
ADD_SUBDIRECTORY( reverse )
ADD_SUBDIRECTORY( samplerate ) # needs libsamplerate
diff --git a/plugins/playback/CMakeLists.txt b/plugins/playback/CMakeLists.txt
index ef1716a..b23de45 100644
--- a/plugins/playback/CMakeLists.txt
+++ b/plugins/playback/CMakeLists.txt
@@ -24,11 +24,6 @@ IF (HAVE_ALSA_SUPPORT)
SET(PLAYBACK_REQUIRED_LIBS ${PLAYBACK_REQUIRED_LIBS} asound)
ENDIF (HAVE_ALSA_SUPPORT)
-IF (HAVE_PHONON_SUPPORT)
- SET(PLAYBACK_SOURCES ${PLAYBACK_SOURCES} PlayBack-Phonon.cpp)
- SET(PLAYBACK_REQUIRED_LIBS ${PLAYBACK_REQUIRED_LIBS} ${PHONON_LIBRARY})
-ENDIF (HAVE_PHONON_SUPPORT)
-
IF (HAVE_PULSEAUDIO_SUPPORT)
SET(PLAYBACK_SOURCES ${PLAYBACK_SOURCES} PlayBack-PulseAudio.cpp)
SET(PLAYBACK_REQUIRED_LIBS ${PLAYBACK_REQUIRED_LIBS} ${PULSEAUDIO_LIBRARIES})
diff --git a/plugins/playback/PlayBack-Phonon.cpp b/plugins/playback/PlayBack-Phonon.cpp
deleted file mode 100644
index 9a2fdfe..0000000
--- a/plugins/playback/PlayBack-Phonon.cpp
+++ /dev/null
@@ -1,367 +0,0 @@
-/***************************************************************************
- PlayBack-Phonon.cpp - playback device for KDE4-Phonon
- -------------------
- begin : Fri May 15 2009
- copyright : (C) 2009 by Thomas Eschenbacher
- email : Thomas.Eschenbacher at gmx.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * 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. *
- * *
- ***************************************************************************/
-
-#include "config.h"
-#ifdef HAVE_PHONON_SUPPORT
-
-#include <errno.h>
-
-#include "libkwave/SampleEncoderLinear.h"
-#include "libkwave/String.h"
-#include "libkwave/Utils.h"
-#include "libkwave/memcpy.h"
-
-#include "PlayBack-Phonon.h"
-
-//***************************************************************************
-Kwave::PlayBackPhonon::PlayBackPhonon()
- :Kwave::PlayBackDevice(), m_buffer(), m_raw_buffer(), m_buffer_size(0),
- m_buffer_used(0), m_encoder(0),
- m_sem(0), m_output(0), m_path(), m_media_object(),
- m_media_source(this), m_first_write(true)
-{
-}
-
-//***************************************************************************
-Kwave::PlayBackPhonon::~PlayBackPhonon()
-{
-}
-
-//***************************************************************************
-void Kwave::PlayBackPhonon::createEncoder(unsigned int bits)
-{
- // create the sample encoder
- // we assume that OSS is always little endian
- if (m_encoder) delete m_encoder;
-
- switch (bits) {
- case 8:
- m_encoder = new Kwave::SampleEncoderLinear(
- Kwave::SampleFormat::Unsigned, 8, Kwave::LittleEndian);
- break;
- case 24:
- m_encoder = new Kwave::SampleEncoderLinear(
- Kwave::SampleFormat::Signed, 24, Kwave::LittleEndian);
- break;
- case 32:
- m_encoder = new Kwave::SampleEncoderLinear(
- Kwave::SampleFormat::Signed, 32, Kwave::LittleEndian);
- break;
- default:
- m_encoder = new Kwave::SampleEncoderLinear(
- Kwave::SampleFormat::Signed, 16, Kwave::LittleEndian);
- break;
- }
-}
-
-//***************************************************************************
-void Kwave::PlayBackPhonon::createHeader(double rate,
- quint8 channels,
- quint16 bits)
-{
- m_header.resize(44);
-
- m_header[ 0] = 'R';
- m_header[ 1] = 'I';
- m_header[ 2] = 'F';
- m_header[ 3] = 'F';
-
- m_header[ 4] = 40;
- m_header[ 5] = 0;
- m_header[ 6] = 0;
- m_header[ 7] = 0;
-
- m_header[ 8] = 'W';
- m_header[ 9] = 'A';
- m_header[10] = 'V';
- m_header[11] = 'E';
-
- m_header[12] = 'f';
- m_header[13] = 'm';
- m_header[14] = 't';
- m_header[15] = ' ';
-
- m_header[16] = 16;
- m_header[17] = 0;
- m_header[18] = 0;
- m_header[19] = 0;
-
- m_header[20] = 0x01;
- m_header[21] = 0x00;
-
- m_header[22] = channels;
- m_header[23] = 0;
-
- int r = Kwave::toInt(rate);
- m_header[24] = (r >> 0) & 0xFF;
- m_header[25] = (r >> 8) & 0xFF;
- m_header[26] = (r >> 16) & 0xFF;
- m_header[27] = (r >> 24) & 0xFF;
-
- int bps = r * ((channels * bits) / 8);
- m_header[28] = (bps >> 0) & 0xFF;
- m_header[29] = (bps >> 8) & 0xFF;
- m_header[30] = (bps >> 16) & 0xFF;
- m_header[31] = (bps >> 24) & 0xFF;
-
- m_header[32] = (((channels * bits) / 8) >> 0) & 0xFF;
- m_header[33] = (((channels * bits) / 8) >> 8) & 0xFF;
-
- m_header[34] = (bits >> 0) & 0xFF;
- m_header[35] = (bits >> 8) & 0xFF;
-
- m_header[36] = 'd';
- m_header[37] = 'a';
- m_header[38] = 't';
- m_header[39] = 'a';
-
- m_header[40] = static_cast<char>(0xFF);
- m_header[41] = static_cast<char>(0xFF);
- m_header[42] = static_cast<char>(0xFF);
- m_header[43] = static_cast<char>(0xFF);
-}
-
-//***************************************************************************
-QString Kwave::PlayBackPhonon::open(const QString &device, double rate,
- unsigned int channels, unsigned int bits,
- unsigned int bufbase)
-{
- // close the previous device
- if (m_output) delete m_output;
- m_output = 0;
-
- // create a new Phonon output device
- m_output = new Phonon::AudioOutput(Phonon::MusicCategory);
- Q_ASSERT(m_output);
- if (!m_output) return i18n("Out of memory");
-
- // try to find the matching device
- QList<Phonon::AudioOutputDevice> devices =
- Phonon::BackendCapabilities::availableAudioOutputDevices();
-
- Phonon::AudioOutputDevice dev;
- foreach(Phonon::AudioOutputDevice d, devices) {
- if (d.name() == device) {
- dev = d;
- break;
- }
- }
- if (!dev.isValid()) {
- return i18n("Opening the device '%1' failed.", device);
- }
-
- // set the output device name
- m_output->setOutputDevice(dev);
-
- // create the path from the stream to the output
- m_media_object.stop();
- m_media_object.clear();
- m_media_object.clearQueue();
- m_first_write = true;
- m_media_object.enqueue(m_media_source);
- m_path = Phonon::createPath(&m_media_object, m_output);
-
- // create a sample encoder
- createEncoder(bits);
- Q_ASSERT(m_encoder);
- if (!m_encoder) return i18n("Out of memory");
-
- // calculate the new buffer size
- if (bufbase < 8)
- bufbase = 8;
- m_buffer_size = (1 << bufbase);
-
- // resize the raw buffer
- m_raw_buffer.resize(m_buffer_size);
-
- // resize our buffer (size in samples) and reset it
- m_buffer_size /= m_encoder->rawBytesPerSample();
- if (!m_buffer.resize(m_buffer_size))
- return i18n("Out of memory");
-
- // create a dummy wave RIFF header
- createHeader(rate, static_cast<quint8>(channels),
- static_cast<quint16>(bits));
-
- m_media_object.play();
- setStreamSize(-1);
-
- return QString();
-}
-
-//***************************************************************************
-int Kwave::PlayBackPhonon::write(const Kwave::SampleArray &samples)
-{
- Q_ASSERT (m_buffer_used <= m_buffer_size);
- if (m_buffer_used > m_buffer_size) {
- qWarning("PlayBackPhonon::write(): buffer overflow ?!");
- m_buffer_used = m_buffer_size;
- flush();
- return -EIO;
- }
- // number of samples left in the buffer
- unsigned int remaining = samples.size();
- unsigned int offset = 0;
- while (remaining) {
- unsigned int length = remaining;
- if (m_buffer_used + length > m_buffer_size)
- length = m_buffer_size - m_buffer_used;
-
- MEMCPY(&(m_buffer[m_buffer_used]),
- &(samples[offset]),
- length * sizeof(sample_t));
- m_buffer_used += length;
- offset += length;
- remaining -= length;
-
- // write buffer to device if it has become full
- if (m_buffer_used >= m_buffer_size) {
- int err = flush();
- if (err != -EAGAIN) return err;
- }
- }
-
- return 0;
-}
-
-//***************************************************************************
-int Kwave::PlayBackPhonon::flush()
-{
- if (!m_buffer_used || !m_encoder) return 0; // nothing to do
-
- // convert into byte stream
- m_encoder->encode(m_buffer, m_buffer_used, m_raw_buffer);
-
- // wait until the Phonon layer has called needData()
- if (!m_sem.tryAcquire(1, 5000)) {
- qDebug("PlayBackPhonon::flush() - EAGAIN");
- m_buffer_used = 0;
- return -EAGAIN;
- }
-
- writeData(m_raw_buffer);
-
- m_buffer_used = 0;
- return 0;
-}
-
-//***************************************************************************
-int Kwave::PlayBackPhonon::close()
-{
- m_media_object.stop();
- m_media_object.clearQueue();
- m_media_object.clear();
-
- // close the device
- if (m_output) delete m_output;
- m_output = 0;
- m_first_write = true;
-
- return 0;
-}
-
-//***************************************************************************
-QStringList Kwave::PlayBackPhonon::supportedDevices()
-{
- QStringList list;
- bool retry;
- unsigned int retry_count = 3; // we try three times
-
- do {
- retry = false;
- list.clear();
-
- // get the list of available audio output devices from Phonon
- QList<Phonon::AudioOutputDevice> devices =
- Phonon::BackendCapabilities::availableAudioOutputDevices();
-
- // get and use the device name(s) from the object description(s)
- foreach(const Phonon::AudioOutputDevice &device, devices) {
- QString name = device.name();
-
-// // for debugging: list all properties
-// qDebug("name='%s'", DBG(name));
-// foreach (const char *property, device.propertyNames()) {
-// qDebug(" '%s' = '%s'", property,
-// DBG(device.property(property).toString()));
-// }
-
- // device names not yet available ?
- if (!name.length()) {
- qWarning("PlayBackPhonon::supportedDevices() "
- "=> BUG in Phonon: no device name?");
- retry = true;
- break;
- }
- list << name;
-
- }
- } while (retry && retry_count--);
-
- return list;
-}
-
-//***************************************************************************
-QString Kwave::PlayBackPhonon::fileFilter()
-{
- return _("");
-}
-
-//***************************************************************************
-QList<unsigned int> Kwave::PlayBackPhonon::supportedBits(const QString &device)
-{
- Q_UNUSED(device);
-
- QList<unsigned int> list;
- list << 8;
- list << 16;
-
- return list;
-}
-
-//***************************************************************************
-int Kwave::PlayBackPhonon::detectChannels(const QString &device,
- unsigned int &min, unsigned int &max)
-{
- Q_UNUSED(device);
-
- min = 1;
- max = 2;
-
- return 0;
-}
-
-//***************************************************************************
-void Kwave::PlayBackPhonon::reset()
-{
-}
-
-//***************************************************************************
-void Kwave::PlayBackPhonon::needData()
-{
- if (m_first_write) {
- m_first_write = false;
- writeData(m_header);
- return;
- }
- m_sem.release();
-}
-
-#endif /* HAVE_PHONON_SUPPORT */
-
-//***************************************************************************
-//***************************************************************************
diff --git a/plugins/playback/PlayBack-Phonon.h b/plugins/playback/PlayBack-Phonon.h
deleted file mode 100644
index b47e89d..0000000
--- a/plugins/playback/PlayBack-Phonon.h
+++ /dev/null
@@ -1,180 +0,0 @@
-/***************************************************************************
- PlayBack-Phonon.h - playback device for KDE4-Phonon
- -------------------
- begin : Fri May 15 2009
- copyright : (C) 2009 by Thomas Eschenbacher
- email : Thomas.Eschenbacher at gmx.de
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * 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. *
- * *
- ***************************************************************************/
-
-#ifndef PLAY_BACK_PHONON_H
-#define PLAY_BACK_PHONON_H
-
-#include "config.h"
-#ifdef HAVE_PHONON_SUPPORT
-
-#include <QByteArray>
-#include <QList>
-#include <QSemaphore>
-#include <QString>
-
-#include <phonon/abstractmediastream.h>
-#include <phonon/audiooutput.h>
-#include <phonon/backendcapabilities.h>
-#include <phonon/mediaobject.h>
-#include <phonon/mediasource.h>
-#include <phonon/path.h>
-#include <phonon/phononnamespace.h>
-
-#include "libkwave/PlayBackDevice.h"
-#include "libkwave/SampleArray.h"
-
-namespace Kwave
-{
-
- class SampleEncoder;
-
- class PlayBackPhonon: public Kwave::PlayBackDevice,
- public Phonon::AbstractMediaStream
- {
- public:
-
- /** Default constructor */
- PlayBackPhonon();
-
- /** Destructor */
- virtual ~PlayBackPhonon();
-
- /**
- * Opens the device for playback.
- * @see PlayBackDevice::open
- */
- virtual QString open(const QString &device, double rate,
- unsigned int channels, unsigned int bits,
- unsigned int bufbase);
-
- /**
- * Writes an array of samples to the output device.
- * @see PlayBackDevice::write
- */
- virtual int write(const Kwave::SampleArray &samples);
-
- /**
- * Closes the output device.
- * @see PlayBackDevice::close
- */
- virtual int close();
-
- /** return a string list with supported device names */
- virtual QStringList supportedDevices();
-
- /** return a string suitable for a "File Open..." dialog */
- virtual QString fileFilter();
-
- /**
- * returns a list of supported bits per sample resolutions
- * of a given device.
- *
- * @param device filename of the device
- * @return list of supported bits per sample, or empty on errors
- */
- virtual QList<unsigned int> supportedBits(const QString &device);
-
- /**
- * Detect the minimum and maximum number of channels.
- * If the detection fails, minimum and maximum are set to zero.
- *
- * @param device filename of the device
- * @param min receives the lowest supported number of channels
- * @param max receives the highest supported number of channels
- * @return zero or positive number if ok, negative error number if failed
- */
- virtual int detectChannels(const QString &device,
- unsigned int &min, unsigned int &max);
-
- /** @see Phonon::AbstractMediaStream::reset */
- virtual void reset();
-
- /** @see Phonon::AbstractMediaStream::needData */
- virtual void needData();
-
- private:
-
- /**
- * creates a sample encoder for playback, for linear
- * formats
- * @param bits number of bits/sample (8, 16, 24 or 32)
- */
- void createEncoder(unsigned int bits);
-
- /**
- * creates a dummy RIFF wav header for fooling Phonon
- * @param rate sample rate [samples/second]
- * @param channels number of channels [1...N]
- * @param bits number of bits/sample (8, 16, 24 or 32)
- */
- void createHeader(double rate,
- quint8 channels,
- quint16 bits);
-
- /**
- * writes the output buffer to the Phonon layer
- * @return 0 if succeeded, -EAGAIN on timeout
- */
- int flush();
-
- private:
-
- /** buffer with samples data */
- Kwave::SampleArray m_buffer;
-
- /** buffer with raw data */
- QByteArray m_raw_buffer;
-
- /** Buffer size on bytes */
- unsigned int m_buffer_size;
-
- /** number of bytes in the buffer */
- unsigned int m_buffer_used;
-
- /** encoder for converting from samples to raw format */
- Kwave::SampleEncoder *m_encoder;
-
- /** semaphore for communication between phonon and Kwave */
- QSemaphore m_sem;
-
- /** audio output device for Phonon */
- Phonon::AudioOutput *m_output;
-
- /** path from m_media_object to m_output */
- Phonon::Path m_path;
-
- /** media object that serves as container for the media source */
- Phonon::MediaObject m_media_object;
-
- /** media source, adapter for the playback stream */
- Phonon::MediaSource m_media_source;
-
- /** if true, send a header in the first write */
- bool m_first_write;
-
- /** faked RIFF header for wav format */
- QByteArray m_header;
-
- };
-}
-
-#endif /* HAVE_PHONON_SUPPORT */
-
-#endif /* PLAY_BACK_PHONON_H */
-
-//***************************************************************************
-//***************************************************************************
diff --git a/plugins/playback/PlayBackPlugin.cpp b/plugins/playback/PlayBackPlugin.cpp
index e297c42..0d425a1 100644
--- a/plugins/playback/PlayBackPlugin.cpp
+++ b/plugins/playback/PlayBackPlugin.cpp
@@ -59,13 +59,12 @@
#include "PlayBack-ALSA.h"
#include "PlayBack-OSS.h"
-#include "PlayBack-Phonon.h"
#include "PlayBack-PulseAudio.h"
#include "PlayBackDialog.h"
#include "PlayBackPlugin.h"
-KWAVE_PLUGIN(Kwave::PlayBackPlugin, "playback", "2.3",
+KWAVE_PLUGIN(Kwave::PlayBackPlugin, "playback", "2.4",
I18N_NOOP("Playback"),
I18N_NOOP("Thomas Eschenbacher"));
@@ -235,10 +234,6 @@ QList<Kwave::playback_method_t> Kwave::PlayBackPlugin::supportedMethods()
methods.append(Kwave::PLAYBACK_PULSEAUDIO);
#endif /* HAVE_PULSEAUDIO_SUPPORT */
- #ifdef HAVE_PHONON_SUPPORT
- methods.append(Kwave::PLAYBACK_PHONON);
-#endif /* HAVE_PHONON_SUPPORT */
-
#ifdef HAVE_ALSA_SUPPORT
methods.append(Kwave::PLAYBACK_ALSA);
#endif /* HAVE_ALSA_SUPPORT */
@@ -266,11 +261,6 @@ Kwave::PlayBackDevice *Kwave::PlayBackPlugin::createDevice(
Kwave::FileInfo(signalManager().metaData()));
#endif /* HAVE_PULSEAUDIO_SUPPORT */
-#ifdef HAVE_PHONON_SUPPORT
- case Kwave::PLAYBACK_PHONON:
- return new Kwave::PlayBackPhonon();
-#endif /* HAVE_PHONON_SUPPORT */
-
#ifdef HAVE_ALSA_SUPPORT
case Kwave::PLAYBACK_ALSA:
return new Kwave::PlayBackALSA();
More information about the kde-doc-english
mailing list