summaryrefslogtreecommitdiffstats
path: root/multimedia/kdemultimedia4/files/patch-svn1250843
diff options
context:
space:
mode:
Diffstat (limited to 'multimedia/kdemultimedia4/files/patch-svn1250843')
-rw-r--r--multimedia/kdemultimedia4/files/patch-svn1250843364
1 files changed, 0 insertions, 364 deletions
diff --git a/multimedia/kdemultimedia4/files/patch-svn1250843 b/multimedia/kdemultimedia4/files/patch-svn1250843
deleted file mode 100644
index 25b83e8b..0000000
--- a/multimedia/kdemultimedia4/files/patch-svn1250843
+++ /dev/null
@@ -1,364 +0,0 @@
---- ./kmix/backends/mixer_backend.cpp.orig 2011-08-30 10:51:10.757627695 +0200
-+++ ./kmix/backends/mixer_backend.cpp 2011-08-30 11:02:19.000000000 +0200
-@@ -25,50 +25,54 @@
- #include "core/mixer.h"
- #include <QTimer>
-
-+#define POLL_OSS_RATE_SLOW 1500
-+#define POLL_OSS_RATE_FAST 50
-+
-+
- #include "mixer_backend_i18n.cpp"
-
- Mixer_Backend::Mixer_Backend(Mixer *mixer, int device) :
-- m_devnum (device) , m_isOpen(false), m_recommendedMaster(0), _mixer(mixer), _pollingTimer(0)
-+m_devnum (device) , m_isOpen(false), m_recommendedMaster(0), _mixer(mixer), _pollingTimer(0)
-
- {
-- // In all cases create a QTimer. We will use it once as a singleShot(), even if something smart
-- // like ::select() is possible (as in ALSA).
-- _pollingTimer = new QTimer(); // will be started on open() and stopped on close()
-- connect( _pollingTimer, SIGNAL(timeout()), this, SLOT(readSetFromHW()), Qt::QueuedConnection);
-+ // In all cases create a QTimer. We will use it once as a singleShot(), even if something smart
-+ // like ::select() is possible (as in ALSA).
-+ _pollingTimer = new QTimer(); // will be started on open() and stopped on close()
-+ connect( _pollingTimer, SIGNAL(timeout()), this, SLOT(readSetFromHW()), Qt::QueuedConnection);
- }
-
- Mixer_Backend::~Mixer_Backend()
- {
-- delete _pollingTimer;
-- qDeleteAll(m_mixDevices);
-- m_mixDevices.clear();
-+ delete _pollingTimer;
-+ qDeleteAll(m_mixDevices);
-+ m_mixDevices.clear();
- }
-
-
- bool Mixer_Backend::openIfValid() {
-- bool valid = false;
-- int ret = open();
-- if ( ret == 0 && (m_mixDevices.count() > 0 || _mixer->isDynamic())) {
-- valid = true;
-- // A better ID is now calculated in mixertoolbox.cpp, and set via setID(),
-- // but we want a somehow usable fallback just in case.
--
-- if ( needsPolling() ) {
-- _pollingTimer->start(50);
-- }
-- else {
-- // The initial state must be read manually
-- QTimer::singleShot( 50, this, SLOT( readSetFromHW() ) );
-- }
-- } // cold be opened
-- else {
-- close();
-- }
-- return valid;
-+ bool valid = false;
-+ int ret = open();
-+ if ( ret == 0 && (m_mixDevices.count() > 0 || _mixer->isDynamic())) {
-+ valid = true;
-+ // A better ID is now calculated in mixertoolbox.cpp, and set via setID(),
-+ // but we want a somehow usable fallback just in case.
-+
-+ if ( needsPolling() ) {
-+ _pollingTimer->start(POLL_OSS_RATE_FAST);
-+ }
-+ else {
-+ // The initial state must be read manually
-+ QTimer::singleShot( POLL_OSS_RATE_FAST, this, SLOT(readSetFromHW()) );
-+ }
-+ } // cold be opened
-+ else {
-+ close();
-+ }
-+ return valid;
- }
-
- bool Mixer_Backend::isOpen() {
-- return m_isOpen;
-+ return m_isOpen;
- }
-
- /**
-@@ -77,7 +81,7 @@
- * @return true, if there are changes. Otherwise false is returned.
- */
- bool Mixer_Backend::prepareUpdateFromHW() {
-- return true;
-+ return true;
- }
-
-
-@@ -90,47 +94,81 @@
- * 2) When reconstructing any MixerWidget (e.g. DockIcon after applying preferences)
- */
- void Mixer_Backend::readSetFromHWforceUpdate() const {
-- _readSetFromHWforceUpdate = true;
-+ _readSetFromHWforceUpdate = true;
- }
-
-
- /**
- You can call this to retrieve the freshest information from the mixer HW.
- This method is also called regulary by the mixer timer.
--*/
-+ */
- void Mixer_Backend::readSetFromHW()
- {
-- bool updated = prepareUpdateFromHW();
-- if ( (! updated) && (! _readSetFromHWforceUpdate) ) {
-- // Some drivers (ALSA) are smart. We don't need to run the following
-- // time-consuming update loop if there was no change
-- kDebug(67100) << "Mixer::readSetFromHW(): smart-update-tick";
-- return;
-- }
-- _readSetFromHWforceUpdate = false;
-+ bool updated = prepareUpdateFromHW();
-+ if ( (! updated) && (! _readSetFromHWforceUpdate) ) {
-+ // Some drivers (ALSA) are smart. We don't need to run the following
-+ // time-consuming update loop if there was no change
-+ kDebug(67100) << "Mixer::readSetFromHW(): smart-update-tick";
-+ return;
-+ }
-
-- int ret = Mixer::OK;
-+ //kDebug() << "---tick---" << QTime::currentTime();
-+ _readSetFromHWforceUpdate = false;
-
-- int mdCount = m_mixDevices.count();
-- for(int i=0; i<mdCount ; ++i )
-- {
-- MixDevice *md = m_mixDevices[i];
-- ret = readVolumeFromHW( md->id(), md );
-- if (md->isEnum() ) {
-- /*
-- * This could be reworked:
-- * Plan: Read everything (incuding enum's) in readVolumeFromHW().
-- * readVolumeFromHW() should then be renamed to readHW().
-- */
-- md->setEnumId( enumIdHW(md->id()) );
-- }
-- }
--
-- if ( ret == Mixer::OK )
-+ int ret = Mixer::OK_UNCHANGED;
-+
-+ int mdCount = m_mixDevices.count();
-+ for(int i=0; i<mdCount ; ++i )
-+ {
-+ MixDevice *md = m_mixDevices[i];
-+ int retLoop = readVolumeFromHW( md->id(), md );
-+ if (md->isEnum() ) {
-+ /*
-+ * This could be reworked:
-+ * Plan: Read everything (incuding enum's) in readVolumeFromHW().
-+ * readVolumeFromHW() should then be renamed to readHW().
-+ */
-+ md->setEnumId( enumIdHW(md->id()) );
-+ }
-+ if ( retLoop == Mixer::OK && ret == Mixer::OK_UNCHANGED )
-+ {
-+ ret = Mixer::OK;
-+ }
-+ else if ( retLoop != Mixer::OK && retLoop != Mixer::OK_UNCHANGED )
-+ {
-+ ret = retLoop;
-+ }
-+ }
-+
-+ if ( ret == Mixer::OK )
- {
- // We explicitely exclude Mixer::OK_UNCHANGED and Mixer::ERROR_READ
-+ if ( needsPolling() )
-+ {
-+ _pollingTimer->setInterval(POLL_OSS_RATE_FAST);
-+ QTime fastPollingEndsAt = QTime::currentTime ();
-+ fastPollingEndsAt = fastPollingEndsAt.addSecs(5);
-+ _fastPollingEndsAt = fastPollingEndsAt;
-+ //_fastPollingEndsAt = fastPollingEndsAt;
-+ kDebug() << "Start fast polling from " << QTime::currentTime() <<"until " << _fastPollingEndsAt;
-+ }
- emit controlChanged();
- }
-+
-+ else
-+ {
-+ // This code path is entered on Mixer::OK_UNCHANGED and ERROR
-+ if ( !_fastPollingEndsAt.isNull() )
-+ {
-+ if( _fastPollingEndsAt < QTime::currentTime () )
-+ {
-+ kDebug() << "End fast polling";
-+ _fastPollingEndsAt = QTime();
-+ if ( needsPolling() )
-+ _pollingTimer->setInterval(POLL_OSS_RATE_SLOW);
-+ }
-+ }
-+ }
- }
-
- /**
-@@ -139,19 +177,19 @@
- * The users preference is NOT returned by this method - see the Mixer class for that.
- */
- MixDevice* Mixer_Backend::recommendedMaster() {
-- if ( m_recommendedMaster != 0 ) {
-- return m_recommendedMaster; // Backend has set a recommended master. Thats fine.
-- } // recommendation from Backend
-- else if ( m_mixDevices.count() > 0 ) {
-- return m_mixDevices.at(0); // Backend has NOT set a recommended master. Evil backend => lets help out.
-- } //first device (if exists)
-- else {
-- if ( !_mixer->isDynamic()) {
-- // This should never ever happen, as KMix doe NOT accept soundcards without controls
-- kError(67100) << "Mixer_Backend::recommendedMaster(): returning invalid master. This is a bug in KMix. Please file a bug report stating how you produced this." << endl;
-- }
-- return (MixDevice*)0;
-- }
-+ if ( m_recommendedMaster != 0 ) {
-+ return m_recommendedMaster; // Backend has set a recommended master. Thats fine.
-+ } // recommendation from Backend
-+ else if ( m_mixDevices.count() > 0 ) {
-+ return m_mixDevices.at(0); // Backend has NOT set a recommended master. Evil backend => lets help out.
-+ } //first device (if exists)
-+ else {
-+ if ( !_mixer->isDynamic()) {
-+ // This should never ever happen, as KMix doe NOT accept soundcards without controls
-+ kError(67100) << "Mixer_Backend::recommendedMaster(): returning invalid master. This is a bug in KMix. Please file a bug report stating how you produced this." << endl;
-+ }
-+ return (MixDevice*)0;
-+ }
- }
-
- /**
-@@ -161,7 +199,7 @@
- * code in its subclass (see Mixer_ALSA.cpp for an example).
- */
- void Mixer_Backend::setEnumIdHW(const QString& , unsigned int) {
-- return;
-+ return;
- }
-
- /**
-@@ -171,55 +209,55 @@
- * code in its subclass (see Mixer_ALSA.cpp for an example).
- */
- unsigned int Mixer_Backend::enumIdHW(const QString& ) {
-- return 0;
-+ return 0;
- }
-
- /**
- * Move the stream to a new destination
- */
- bool Mixer_Backend::moveStream( const QString& id, const QString& destId ) {
-- Q_UNUSED(id);
-- Q_UNUSED(destId);
-- return false;
-+ Q_UNUSED(id);
-+ Q_UNUSED(destId);
-+ return false;
- }
-
- void Mixer_Backend::errormsg(int mixer_error)
- {
-- QString l_s_errText;
-- l_s_errText = errorText(mixer_error);
-- kError() << l_s_errText << "\n";
-+ QString l_s_errText;
-+ l_s_errText = errorText(mixer_error);
-+ kError() << l_s_errText << "\n";
- }
-
- int Mixer_Backend::id2num(const QString& id)
- {
-- return id.toInt();
-+ return id.toInt();
- }
-
- QString Mixer_Backend::errorText(int mixer_error)
- {
-- QString l_s_errmsg;
-- switch (mixer_error)
-- {
-- case Mixer::ERR_PERM:
-- l_s_errmsg = i18n("kmix:You do not have permission to access the mixer device.\n" \
-- "Please check your operating systems manual to allow the access.");
-- break;
-- case Mixer::ERR_WRITE:
-- l_s_errmsg = i18n("kmix: Could not write to mixer.");
-- break;
-- case Mixer::ERR_READ:
-- l_s_errmsg = i18n("kmix: Could not read from mixer.");
-- break;
-- case Mixer::ERR_OPEN:
-- l_s_errmsg = i18n("kmix: Mixer cannot be found.\n" \
-- "Please check that the soundcard is installed and that\n" \
-- "the soundcard driver is loaded.\n");
-- break;
-- default:
-- l_s_errmsg = i18n("kmix: Unknown error. Please report how you produced this error.");
-- break;
-- }
-- return l_s_errmsg;
-+ QString l_s_errmsg;
-+ switch (mixer_error)
-+ {
-+ case Mixer::ERR_PERM:
-+ l_s_errmsg = i18n("kmix:You do not have permission to access the mixer device.\n" \
-+ "Please check your operating systems manual to allow the access.");
-+ break;
-+ case Mixer::ERR_WRITE:
-+ l_s_errmsg = i18n("kmix: Could not write to mixer.");
-+ break;
-+ case Mixer::ERR_READ:
-+ l_s_errmsg = i18n("kmix: Could not read from mixer.");
-+ break;
-+ case Mixer::ERR_OPEN:
-+ l_s_errmsg = i18n("kmix: Mixer cannot be found.\n" \
-+ "Please check that the soundcard is installed and that\n" \
-+ "the soundcard driver is loaded.\n");
-+ break;
-+ default:
-+ l_s_errmsg = i18n("kmix: Unknown error. Please report how you produced this error.");
-+ break;
-+ }
-+ return l_s_errmsg;
- }
-
-
---- ./kmix/backends/mixer_backend.h.orig 2011-08-31 14:40:43.854565142 +0200
-+++ ./kmix/backends/mixer_backend.h 2011-08-31 14:45:05.104683569 +0200
-@@ -22,6 +22,8 @@
- #ifndef MIXER_BACKEND_H
- #define MIXER_BACKEND_H
-
-+#include <QTime>
-+
- #include "core/mixer.h"
-
- class Mixer_Backend : public QObject
-@@ -140,6 +142,9 @@
-
- protected slots:
- virtual void readSetFromHW();
-+
-+private:
-+ QTime _fastPollingEndsAt;
- };
-
- #endif
---- ./kmix/core/mixer.h.orig 2011-08-30 10:43:44.917744648 +0200
-+++ ./kmix/core/mixer.h 2011-08-30 10:48:24.467617529 +0200
-@@ -56,7 +56,7 @@
- *
- */
- enum MixerError { OK=0, ERR_PERM=1, ERR_WRITE, ERR_READ,
-- ERR_OPEN, ERR_LASTERR, OK_UNCHANGED };
-+ ERR_OPEN, OK_UNCHANGED };
-
-
- Mixer( QString& ref_driverName, int device );
OpenPOWER on IntegriCloud