From kde-commits Mon Dec 12 23:49:59 2011 From: Christian Esken Date: Mon, 12 Dec 2011 23:49:59 +0000 To: kde-commits Subject: KDE/kdemultimedia/kmix Message-Id: <20111212234959.CDC00AC881 () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=132373391025879 SVN commit 1268430 by esken: Remove MPRIS2 Streams (Stream unplug) CCBUGS: 288637 M +14 -0 backends/mixer_mpris2.cpp M +14 -0 core/mixset.cpp M +2 -0 core/mixset.h --- trunk/KDE/kdemultimedia/kmix/backends/mixer_mpris2.cpp #1268429:1268430 @@ -312,8 +312,22 @@ Q_ARG(QString, _mixer->id())); } else if ( !oldOwner.isEmpty() && newOwner.isEmpty()) + { kDebug() << "Mediaplayer unregisters: " << name; + int lastDot = name.lastIndexOf('.'); + QString id = ( lastDot == -1 ) ? name : name.mid(lastDot+1); + apps.remove(id); + m_mixDevices.removeById(id); + QMetaObject::invokeMethod(this, + "controlsReconfigured", + Qt::QueuedConnection, + Q_ARG(QString, _mixer->id())); } + else + { + kWarning() << "Mediaplayer has registered under a new name. This is currently not supported by KMix"; + } + } } --- trunk/KDE/kdemultimedia/kmix/core/mixset.cpp #1268429:1268430 @@ -76,3 +76,17 @@ } return md; } + +void MixSet::removeById(QString id) +{ + for (int i=0; i < count() ; i++ ) + { + MixDevice* md = operator[](i); + if ( md->id() == id ) + { + removeAt(i); + break; + } + } +} + --- trunk/KDE/kdemultimedia/kmix/core/mixset.h #1268429:1268430 @@ -36,6 +36,8 @@ MixDevice* get(QString id); + void removeById(QString id); + private: QString m_name; };