[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdemultimedia/kmix
From:       Christian Esken <esken () kde ! org>
Date:       2011-12-12 23:49:59
Message-ID: 20111212234959.CDC00AC881 () svn ! kde ! org
[Download RAW message or body]

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;
 };
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic