diff options
author | piernov <piernov@piernov.org> | 2011-10-04 20:31:51 +0200 |
---|---|---|
committer | piernov <piernov@piernov.org> | 2011-10-04 20:31:51 +0200 |
commit | 80834c14c25db4cdda8e70273984ddb33c7496f9 (patch) | |
tree | 7672696d4e997ab825a53b71c963d7bed9d2dff4 /kde/phonon | |
parent | d5cd481c17736041b5a0a334e62168620643e7c7 (diff) | |
download | nutyx-pakxe-80834c14c25db4cdda8e70273984ddb33c7496f9.tar.gz nutyx-pakxe-80834c14c25db4cdda8e70273984ddb33c7496f9.tar.bz2 nutyx-pakxe-80834c14c25db4cdda8e70273984ddb33c7496f9.tar.xz nutyx-pakxe-80834c14c25db4cdda8e70273984ddb33c7496f9.zip |
phonon 4.5.0-3 fix compilation pulseaudio 1.0
Diffstat (limited to 'kde/phonon')
-rw-r--r-- | kde/phonon/.md5sum.i686 | 2 | ||||
-rw-r--r-- | kde/phonon/.md5sum.x86_64 | 2 | ||||
-rw-r--r-- | kde/phonon/FindPulseAudio.cmake | 76 | ||||
-rw-r--r-- | kde/phonon/Pkgfile | 11 | ||||
-rw-r--r-- | kde/phonon/pulsestream.cpp | 104 |
5 files changed, 193 insertions, 2 deletions
diff --git a/kde/phonon/.md5sum.i686 b/kde/phonon/.md5sum.i686 index d187ae42c..ec0cf7acc 100644 --- a/kde/phonon/.md5sum.i686 +++ b/kde/phonon/.md5sum.i686 @@ -1 +1,3 @@ +44c0339046c343835df64d9cbc2c26d5 FindPulseAudio.cmake 32f8d388c18fde2e23dea7bb103f9713 phonon-4.5.0.tar.bz2 +40aba68801b58fc5e17fc96446ad777a pulsestream.cpp diff --git a/kde/phonon/.md5sum.x86_64 b/kde/phonon/.md5sum.x86_64 index d187ae42c..ec0cf7acc 100644 --- a/kde/phonon/.md5sum.x86_64 +++ b/kde/phonon/.md5sum.x86_64 @@ -1 +1,3 @@ +44c0339046c343835df64d9cbc2c26d5 FindPulseAudio.cmake 32f8d388c18fde2e23dea7bb103f9713 phonon-4.5.0.tar.bz2 +40aba68801b58fc5e17fc96446ad777a pulsestream.cpp diff --git a/kde/phonon/FindPulseAudio.cmake b/kde/phonon/FindPulseAudio.cmake new file mode 100644 index 000000000..d0392420b --- /dev/null +++ b/kde/phonon/FindPulseAudio.cmake @@ -0,0 +1,76 @@ +# Try to find the PulseAudio library +# +# Once done this will define: +# +# PULSEAUDIO_FOUND - system has the PulseAudio library +# PULSEAUDIO_INCLUDE_DIR - the PulseAudio include directory +# PULSEAUDIO_LIBRARY - the libraries needed to use PulseAudio +# PULSEAUDIO_MAINLOOP_LIBRARY - the libraries needed to use PulsAudio Mailoop +# +# Copyright (c) 2008, Matthias Kretz, <kretz@kde.org> +# Copyright (c) 2009, Marcus Hufgard, <Marcus.Hufgard@hufgard.de> +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +if (NOT PULSEAUDIO_MINIMUM_VERSION) + set(PULSEAUDIO_MINIMUM_VERSION "1.0") +endif (NOT PULSEAUDIO_MINIMUM_VERSION) + +if (PULSEAUDIO_INCLUDE_DIR AND PULSEAUDIO_LIBRARY AND PULSEAUDIO_MAINLOOP_LIBRARY) + # Already in cache, be silent + set(PULSEAUDIO_FIND_QUIETLY TRUE) +endif (PULSEAUDIO_INCLUDE_DIR AND PULSEAUDIO_LIBRARY AND PULSEAUDIO_MAINLOOP_LIBRARY) + +if (NOT WIN32) + include(FindPkgConfig) + pkg_check_modules(PC_PULSEAUDIO libpulse>=${PULSEAUDIO_MINIMUM_VERSION}) + pkg_check_modules(PC_PULSEAUDIO_MAINLOOP libpulse-mainloop-glib) +endif (NOT WIN32) + +FIND_PATH(PULSEAUDIO_INCLUDE_DIR pulse/pulseaudio.h + HINTS + ${PC_PULSEAUDIO_INCLUDEDIR} + ${PC_PULSEAUDIO_INCLUDE_DIRS} + ) + +FIND_LIBRARY(PULSEAUDIO_LIBRARY NAMES pulse libpulse + HINTS + ${PC_PULSEAUDIO_LIBDIR} + ${PC_PULSEAUDIO_LIBRARY_DIRS} + ) + +FIND_LIBRARY(PULSEAUDIO_MAINLOOP_LIBRARY NAMES pulse-mainloop pulse-mainloop-glib libpulse-mainloop-glib + HINTS + ${PC_PULSEAUDIO_LIBDIR} + ${PC_PULSEAUDIO_LIBRARY_DIRS} + ) + +if (PULSEAUDIO_INCLUDE_DIR AND PULSEAUDIO_LIBRARY) + include(MacroEnsureVersion) + + # get PulseAudio's version from its version.h, and compare it with our minimum version + file(STRINGS "${PULSEAUDIO_INCLUDE_DIR}/pulse/version.h" pulse_version_h + REGEX ".*pa_get_headers_version\\(\\).*" + ) + string(REGEX REPLACE ".*pa_get_headers_version\\(\\)\ \\(\"([0-9]+\\.[0-9]+)\"\\).*" "\\1" + PULSEAUDIO_VERSION "${pulse_version_h}") + macro_ensure_version("${PULSEAUDIO_MINIMUM_VERSION}" "${PULSEAUDIO_VERSION}" PULSEAUDIO_FOUND) +else (PULSEAUDIO_INCLUDE_DIR AND PULSEAUDIO_LIBRARY) + set(PULSEAUDIO_FOUND FALSE) +endif (PULSEAUDIO_INCLUDE_DIR AND PULSEAUDIO_LIBRARY) + +if (PULSEAUDIO_FOUND) + if (NOT PULSEAUDIO_FIND_QUIETLY) + message(STATUS "Found PulseAudio: ${PULSEAUDIO_LIBRARY}") + if (PULSEAUDIO_MAINLOOP_LIBRARY) + message(STATUS "Found PulseAudio Mainloop: ${PULSEAUDIO_MAINLOOP_LIBRARY}") + else (PULSAUDIO_MAINLOOP_LIBRARY) + message(STATUS "Could NOT find PulseAudio Mainloop Library") + endif (PULSEAUDIO_MAINLOOP_LIBRARY) + endif (NOT PULSEAUDIO_FIND_QUIETLY) +else (PULSEAUDIO_FOUND) + message(STATUS "Could NOT find PulseAudio") +endif (PULSEAUDIO_FOUND) + +mark_as_advanced(PULSEAUDIO_INCLUDE_DIR PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY) diff --git a/kde/phonon/Pkgfile b/kde/phonon/Pkgfile index e23c1ef8c..70d9b0eb4 100644 --- a/kde/phonon/Pkgfile +++ b/kde/phonon/Pkgfile @@ -7,9 +7,16 @@ name=phonon version=4.5.0 -release=2 -source=(ftp://ftp.kde.org/pub/kde/stable/phonon/$version/src//$name-$version.tar.bz2) +release=3 +source=(ftp://ftp.kde.org/pub/kde/stable/phonon/$version/src//$name-$version.tar.bz2 + FindPulseAudio.cmake + pulsestream.cpp) + build() { + cd $name-$version + cp -f ../FindPulseAudio.cmake cmake/ + cp -f ../pulsestream.cpp phonon/ + cd .. mkdir build cd build cmake ../${name}-* \ diff --git a/kde/phonon/pulsestream.cpp b/kde/phonon/pulsestream.cpp new file mode 100644 index 000000000..e129f1b8f --- /dev/null +++ b/kde/phonon/pulsestream.cpp @@ -0,0 +1,104 @@ +/* This file is part of the KDE project + Copyright (C) 2010 Colin Guthrie <cguthrie@mandriva.org> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) version 3, or any + later version accepted by the membership of KDE e.V. (or its + successor approved by the membership of KDE e.V.), Nokia Corporation + (or its successors, if any) and the KDE Free Qt Foundation, which shall + act as a proxy defined in Section 6 of version 3 of the license. + + 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library. If not, see <http://www.gnu.org/licenses/>. + +*/ + +#include "pulsestream_p.h" +#include <QtCore/qmath.h> + +QT_BEGIN_NAMESPACE + +namespace Phonon +{ + +PulseStream::PulseStream(QString streamUuid) + : QObject() + , mStreamUuid(streamUuid) + , mIndex(PA_INVALID_INDEX) + , mDevice(-1) + , mMute(false) +{ + pa_cvolume_init(&mVolume); +} + +PulseStream::~PulseStream() +{ +} + +QString PulseStream::uuid() +{ + return mStreamUuid; +} + +uint32_t PulseStream::index() +{ + return mIndex; +} + +void PulseStream::setIndex(uint32_t index) +{ + mIndex = index; +} + +uint8_t PulseStream::channels() +{ + return mVolume.channels; +} + +void PulseStream::setDevice(int device) +{ + if (mDevice != device) { + mDevice = device; + emit usingDevice(device); + } +} + +// Copied from AudioOutput +static const qreal LOUDNESS_TO_VOLTAGE_EXPONENT = qreal(0.67); +static const qreal VOLTAGE_TO_LOUDNESS_EXPONENT = qreal(1.0/LOUDNESS_TO_VOLTAGE_EXPONENT); + +void PulseStream::setVolume(const pa_cvolume *volume) +{ + if (pa_cvolume_equal(&mVolume, volume) == 0) { + memcpy(&mVolume, volume, sizeof(mVolume)); + qreal vol = (qreal)pa_cvolume_avg(volume) / PA_VOLUME_NORM; + // AudioOutput expects the "backend" to supply values that have been + // adjusted for Stephens' law, so we need to fudge them accordingly + // so that the %ages match up in KMix/the application's own slider. + emit volumeChanged(qPow(vol, VOLTAGE_TO_LOUDNESS_EXPONENT)); + } +} + +void PulseStream::setMute(bool mute) +{ + if (mMute != mute) { + mMute = mute; + emit muteChanged(mMute); + } +} + + +} // namespace Phonon + +QT_END_NAMESPACE + +#include "moc_pulsestream_p.cpp" + +// vim: sw=4 ts=4 |