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

List:       kde-commits
Subject:    [kmix/kmix-improvements] src: More dbus interface work and terrible commit messages
From:       Trever Fischer <tdfischer () fedoraproject ! org>
Date:       2012-09-24 19:17:15
Message-ID: 20120924191715.E839AA6094 () git ! kde ! org
[Download RAW message or body]

Git commit 7238c12a2eb628b1fae904f816c41ede39fd4c61 by Trever Fischer.
Committed on 24/09/2012 at 21:14.
Pushed by tdfischer into branch 'kmix-improvements'.

More dbus interface work and terrible commit messages

M  +2    -6    src/daemon2/BackendManager.cpp
M  +2    -1    src/daemon2/BackendManager.h
M  +2    -0    src/daemon2/CMakeLists.txt
M  +7    -3    src/daemon2/Control.cpp
M  +2    -0    src/daemon2/Control.h
M  +19   -4    src/daemon2/ControlGroup.cpp
M  +3    -0    src/daemon2/ControlGroup.h
M  +6    -4    src/daemon2/KMixDApp.cpp
M  +4    -4    src/gui2/CMakeLists.txt
M  +10   -9    src/gui2/KMixWindow.cpp
M  +3    -3    src/gui2/KMixWindow.h

http://commits.kde.org/kmix/7238c12a2eb628b1fae904f816c41ede39fd4c61

diff --git a/src/daemon2/BackendManager.cpp b/src/daemon2/BackendManager.cpp
index bd96691..b205a64 100644
--- a/src/daemon2/BackendManager.cpp
+++ b/src/daemon2/BackendManager.cpp
@@ -44,13 +44,9 @@ BackendManager *BackendManager::instance()
     return s_instance;
 }
 
-QStringList BackendManager::groups() const
+QList<ControlGroup*> BackendManager::groups() const
 {
-    QStringList ret;
-    foreach(ControlGroup *group, m_groups) {
-        ret << group->displayName();
-    }
-    return ret;
+    return m_groups;
 }
 
 void BackendManager::controlAdded(Control *control)
diff --git a/src/daemon2/BackendManager.h b/src/daemon2/BackendManager.h
index 68edd26..0eb1a26 100644
--- a/src/daemon2/BackendManager.h
+++ b/src/daemon2/BackendManager.h
@@ -30,7 +30,8 @@ class BackendManager : public QObject {
     Q_OBJECT
 public:
     static BackendManager *instance();
-    QStringList groups() const;
+    QList<ControlGroup*> groups() const;
+    ControlGroup *group(const QString &name) const;
 private slots:
     void controlAdded(Control *control);
 private:
diff --git a/src/daemon2/CMakeLists.txt b/src/daemon2/CMakeLists.txt
index c420820..5faa5c0 100644
--- a/src/daemon2/CMakeLists.txt
+++ b/src/daemon2/CMakeLists.txt
@@ -30,6 +30,8 @@ qt4_add_dbus_adaptor( kmixd_SRCS ../dbus/org.kde.kmix.kmixd.xml
     KMixDApp.h KMixDApp )
 qt4_add_dbus_adaptor( kmixd_SRCS ../dbus/org.kde.kmix.control.xml
     Control.h Control )
+qt4_add_dbus_adaptor( kmixd_SRCS ../dbus/org.kde.kmix.controlgroup.xml
+    ControlGroup.h ControlGroup )
 
 kde4_add_executable(kmixd ${kmixd_SRCS} ${kmixd_backend_SRCS})
 
diff --git a/src/daemon2/Control.cpp b/src/daemon2/Control.cpp
index c850272..dfbcd1c 100644
--- a/src/daemon2/Control.cpp
+++ b/src/daemon2/Control.cpp
@@ -27,13 +27,17 @@ Control::Control(QObject *parent)
     : QObject(parent)
 {
     new ControlAdaptor(this);
-    QDBusConnection::sessionBus().registerObject(QString("/Controls/%1").arg(s_id), \
                this);
-    s_id.ref();
+    m_id = s_id.fetchAndAddRelaxed(1);
+    QDBusConnection::sessionBus().registerObject(QString("/controls/%1").arg(m_id), \
this); +}
+
+int Control::id() const
+{
+    return m_id;
 }
 
 Control::~Control()
 {
-    s_id.deref();
 }
 
 #include "Control.moc"
diff --git a/src/daemon2/Control.h b/src/daemon2/Control.h
index a86cce3..3832f88 100644
--- a/src/daemon2/Control.h
+++ b/src/daemon2/Control.h
@@ -48,7 +48,9 @@ public:
     virtual bool isMuted() const = 0;
     virtual void setMute(bool yes) = 0;
     virtual bool canMute() const = 0;
+    int id() const;
 private:
+    int m_id;
     static QAtomicInt s_id;
 };
 
diff --git a/src/daemon2/ControlGroup.cpp b/src/daemon2/ControlGroup.cpp
index 737ce1c..b4acfd7 100644
--- a/src/daemon2/ControlGroup.cpp
+++ b/src/daemon2/ControlGroup.cpp
@@ -18,6 +18,7 @@
  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  \
                02110-1301, USA.
  */
 #include "ControlGroup.h"
+#include "controlgroupadaptor.h"
 #include "Control.h"
 #include <QtCore/QStringList>
 #include <QtDBus/QDBusConnection>
@@ -28,13 +29,18 @@ ControlGroup::ControlGroup(const QString &displayName, QObject \
*parent)  : QObject(parent)
     , m_displayName(displayName)
 {
-    QDBusConnection::sessionBus().registerObject(QString("/groups/%1").arg(s_id), \
                this);
-    s_id.ref();
+    new ControlGroupAdaptor(this);
+    m_id = s_id.fetchAndAddRelaxed(1);
+    QDBusConnection::sessionBus().registerObject(QString("/groups/%1").arg(m_id), \
this); +}
+
+int ControlGroup::id() const
+{
+    return m_id;
 }
 
 ControlGroup::~ControlGroup()
 {
-    s_id.deref();
 }
 
 QString ControlGroup::displayName() const
@@ -44,7 +50,11 @@ QString ControlGroup::displayName() const
 
 QStringList ControlGroup::controls() const
 {
-    return QStringList();
+    QStringList ret;
+    foreach(Control *control, m_controls) {
+        ret << QString("/controls/%1").arg(control->id());
+    }
+    return ret;
 }
 
 void ControlGroup::addControl(Control *control)
@@ -52,3 +62,8 @@ void ControlGroup::addControl(Control *control)
     m_controls[control->displayName()] = control;
     emit controlAdded(control->displayName());
 }
+
+Control *ControlGroup::getControl(const QString &name) const
+{
+    return m_controls[name];
+}
diff --git a/src/daemon2/ControlGroup.h b/src/daemon2/ControlGroup.h
index c1b5775..61ea2a5 100644
--- a/src/daemon2/ControlGroup.h
+++ b/src/daemon2/ControlGroup.h
@@ -29,12 +29,14 @@ class ControlGroup : public QObject
 {
     Q_OBJECT
     Q_PROPERTY(QString displayName READ displayName);
+    Q_PROPERTY(QStringList controls READ controls);
 public:
     ControlGroup(const QString &displayName, QObject *parent = 0);
     ~ControlGroup();
     QString displayName() const;
     QStringList controls() const;
     Control *getControl(const QString &name) const;
+    int id() const;
 public slots:
     void addControl(Control *control);
 signals:
@@ -42,6 +44,7 @@ signals:
 private:
     QHash<QString, Control*> m_controls;
     QString m_displayName;
+    int m_id;
     static QAtomicInt s_id;
 };
 
diff --git a/src/daemon2/KMixDApp.cpp b/src/daemon2/KMixDApp.cpp
index dd8e804..30f8763 100644
--- a/src/daemon2/KMixDApp.cpp
+++ b/src/daemon2/KMixDApp.cpp
@@ -41,9 +41,6 @@ int KMixDApp::start()
     if (QDBusConnection::sessionBus().registerService("org.kde.kmixd")) {
         new KMixDAdaptor(this);
         QDBusConnection::sessionBus().registerObject("/KMixD", this);
-        foreach(const QString &groupName, BackendManager::instance()->groups()) {
-            qDebug() << "Group:" << groupName;
-        }
         return exec();
     }
     return 1;
@@ -56,7 +53,12 @@ void KMixDApp::setMaster(const QString &masterID)
 
 QStringList KMixDApp::mixerGroups() const
 {
-    return BackendManager::instance()->groups();
+    QStringList ret;
+    foreach(ControlGroup *group, BackendManager::instance()->groups()) {
+        ret << QString("/groups/%1").arg(group->id());
+    }
+    qDebug() << ret;
+    return ret;
 }
 
 QString KMixDApp::masterControl() const
diff --git a/src/gui2/CMakeLists.txt b/src/gui2/CMakeLists.txt
index cf0da39..771111f 100644
--- a/src/gui2/CMakeLists.txt
+++ b/src/gui2/CMakeLists.txt
@@ -4,10 +4,10 @@ set(kmix_KDEINIT_SRCS
    KMixApp.cpp
 )
 
-qt4_add_dbus_interface(kmix_KDEINIT_SRCS ../dbus/org.kde.kmix.mixset.xml
-	mixset_interface)
-qt4_add_dbus_interface(kmix_KDEINIT_SRCS ../dbus/org.kde.kmix.mixer.xml
-	mixer_interface)
+qt4_add_dbus_interface(kmix_KDEINIT_SRCS ../dbus/org.kde.kmix.kmixd.xml
+	kmixd_interface)
+qt4_add_dbus_interface(kmix_KDEINIT_SRCS ../dbus/org.kde.kmix.controlgroup.xml
+	controlgroup_interface)
 qt4_add_dbus_interface(kmix_KDEINIT_SRCS ../dbus/org.kde.kmix.control.xml
 	control_interface)
 
diff --git a/src/gui2/KMixWindow.cpp b/src/gui2/KMixWindow.cpp
index 45ec42a..0bc649c 100644
--- a/src/gui2/KMixWindow.cpp
+++ b/src/gui2/KMixWindow.cpp
@@ -37,12 +37,12 @@
 // KMix
 #include "core/version.h"
 
-#include "mixset_interface.h"
-#include "mixer_interface.h"
+#include "kmixd_interface.h"
+#include "controlgroup_interface.h"
 #include "control_interface.h"
 
 const QString KMIX_DBUS_SERVICE = "org.kde.kmixd";
-const QString KMIX_DBUS_PATH = "/Mixers";
+const QString KMIX_DBUS_PATH = "/KMixD";
 
 /* KMixWindow
  * Constructs a mixer window (KMix main window)
@@ -51,17 +51,18 @@ KMixWindow::KMixWindow(QWidget* parent)
     : KXmlGuiWindow(parent, Qt::WindowFlags( KDE_DEFAULT_WINDOWFLAGS | \
Qt::WindowContextHelpButtonHint) )  {
     // disable delete-on-close because KMix might just sit in the background waiting \
for cards to be plugged in +    qDebug() << "construct";
     setAttribute(Qt::WA_DeleteOnClose, false);
-    m_mixers = new org::kde::KMix::MixSet(KMIX_DBUS_SERVICE, KMIX_DBUS_PATH, \
QDBusConnection::sessionBus(), this); +    m_daemon = new \
org::kde::KMix::KMixD(KMIX_DBUS_SERVICE, KMIX_DBUS_PATH, \
QDBusConnection::sessionBus(), this);  initActions();
     createGUI( QLatin1String( "kmixui.rc" ) );
     show();
-    foreach(const QString &mixerName, m_mixers->mixers()) {
-        org::kde::KMix::Mixer *mixer = new org::kde::KMix::Mixer(KMIX_DBUS_SERVICE, \
                mixerName, QDBusConnection::sessionBus(), this);
-        qDebug() << mixer->readableName();
-        foreach(const QString &controlName, mixer->controls()) {
+    foreach(const QString &groupName, m_daemon->mixerGroups()) {
+        org::kde::KMix::ControlGroup *group = new \
org::kde::KMix::ControlGroup(KMIX_DBUS_SERVICE, groupName, \
QDBusConnection::sessionBus(), this); +        qDebug() << "Group:" << groupName << \
group->displayName(); +        foreach(const QString &controlName, group->controls()) \
                {
             org::kde::KMix::Control *control = new \
org::kde::KMix::Control(KMIX_DBUS_SERVICE, controlName, \
                QDBusConnection::sessionBus());
-            qDebug() << control->displayName();
+            qDebug() << "Control:" << control->displayName() << control->canMute() \
<< control->mute();  }
     }
 }
diff --git a/src/gui2/KMixWindow.h b/src/gui2/KMixWindow.h
index cfe166a..8b9a5ca 100644
--- a/src/gui2/KMixWindow.h
+++ b/src/gui2/KMixWindow.h
@@ -30,11 +30,11 @@
 #include <kxmlguiwindow.h>
 
 // KMix
-class OrgKdeKMixMixSetInterface;
+class OrgKdeKMixKMixDInterface;
 namespace org {
     namespace kde {
         namespace KMix {
-            typedef ::OrgKdeKMixMixSetInterface MixSet;
+            typedef ::OrgKdeKMixKMixDInterface KMixD;
         }
     }
 }
@@ -55,7 +55,7 @@ private slots:
 
 private:
     void initActions();
-    org::kde::KMix::MixSet *m_mixers;
+    org::kde::KMix::KMixD *m_daemon;
     KMixDockWidget *m_dockWidget;
 };
 


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

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