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

List:       kde-commits
Subject:    [kmix/kmix-improvements] src: Implement default groups
From:       Trever Fischer <tdfischer () fedoraproject ! org>
Date:       2012-09-25 0:36:28
Message-ID: 20120925003628.51D17A60CD () git ! kde ! org
[Download RAW message or body]

Git commit e3acda90d2a2c9139230ee270b8e42bbc6822ec6 by Trever Fischer.
Committed on 25/09/2012 at 01:14.
Pushed by tdfischer into branch 'kmix-improvements'.

Implement default groups

M  +6    -3    src/daemon2/BackendManager.cpp
M  +3    -2    src/daemon2/BackendManager.h
M  +7    -1    src/daemon2/Control.cpp
M  +10   -1    src/daemon2/Control.h
M  +1    -2    src/daemon2/backends/PulseControl.cpp
M  +1    -0    src/dbus/org.kde.kmix.control.xml

http://commits.kde.org/kmix/e3acda90d2a2c9139230ee270b8e42bbc6822ec6

diff --git a/src/daemon2/BackendManager.cpp b/src/daemon2/BackendManager.cpp
index 50d1ec6..edfbeb8 100644
--- a/src/daemon2/BackendManager.cpp
+++ b/src/daemon2/BackendManager.cpp
@@ -30,7 +30,10 @@ BackendManager *BackendManager::s_instance = 0;
 
 BackendManager::BackendManager()
 {
-    m_groups << new ControlGroup("Test Group");
+    m_groups[Control::OutputStream] = new ControlGroup("Playback");
+    m_groups[Control::InputStream] = new ControlGroup("Recording");
+    m_groups[Control::HardwareInput] = new ControlGroup("Hardware Input");
+    m_groups[Control::HardwareOutput] = new ControlGroup("Hardware Output");
     Backend *pulse = new Backends::PulseAudio(this);
     connect(pulse, SIGNAL(controlAdded(Control *)), this, SLOT(controlAdded(Control *)));
     m_backends << pulse;
@@ -46,12 +49,12 @@ BackendManager *BackendManager::instance()
 
 QList<ControlGroup*> BackendManager::groups() const
 {
-    return m_groups;
+    return m_groups.values();
 }
 
 void BackendManager::controlAdded(Control *control)
 {
-    m_groups[0]->addControl(control);
+    m_groups[control->category()]->addControl(control);
 }
 
 #include "BackendManager.moc"
diff --git a/src/daemon2/BackendManager.h b/src/daemon2/BackendManager.h
index 0eb1a26..676f029 100644
--- a/src/daemon2/BackendManager.h
+++ b/src/daemon2/BackendManager.h
@@ -21,10 +21,11 @@
 #define BACKENDMANAGER_H
 
 #include <QtCore/QObject>
+#include <QtCore/QHash>
+#include "Control.h"
 
 class ControlGroup;
 class Backend;
-class Control;
 
 class BackendManager : public QObject {
     Q_OBJECT
@@ -38,7 +39,7 @@ private:
     BackendManager();
     static BackendManager *s_instance;
     QList<Backend*> m_backends;
-    QList<ControlGroup*> m_groups;
+    QHash<Control::Category, ControlGroup*> m_groups;
 };
 
 #endif //BACKENDMANAGER_H
diff --git a/src/daemon2/Control.cpp b/src/daemon2/Control.cpp
index dfbcd1c..e5d99aa 100644
--- a/src/daemon2/Control.cpp
+++ b/src/daemon2/Control.cpp
@@ -23,8 +23,9 @@
 
 QAtomicInt Control::s_id = 0;
 
-Control::Control(QObject *parent)
+Control::Control(Category category, QObject *parent)
     : QObject(parent)
+    , m_category(category)
 {
     new ControlAdaptor(this);
     m_id = s_id.fetchAndAddRelaxed(1);
@@ -36,6 +37,11 @@ int Control::id() const
     return m_id;
 }
 
+Control::Category Control::category() const
+{
+    return m_category;
+}
+
 Control::~Control()
 {
 }
diff --git a/src/daemon2/Control.h b/src/daemon2/Control.h
index 7729ed6..9ee1b2e 100644
--- a/src/daemon2/Control.h
+++ b/src/daemon2/Control.h
@@ -31,6 +31,7 @@ class Control : public QObject
     Q_PROPERTY(bool mute READ isMuted WRITE setMute NOTIFY muteChanged);
     Q_PROPERTY(bool canMute READ canMute);
     Q_PROPERTY(int channels READ channels);
+    Q_PROPERTY(Category category READ category);
 public:
     typedef enum {
         FrontLeft,
@@ -40,7 +41,13 @@ public:
         RearRight,
         Subwoofer
     } Channel;
-    Control(QObject *parent = 0);
+    typedef enum {
+        OutputStream,
+        InputStream,
+        HardwareInput,
+        HardwareOutput
+    } Category;
+    Control(Category, QObject *parent = 0);
     ~Control();
     virtual QString displayName() const = 0;
     virtual QString iconName() const = 0;
@@ -50,6 +57,7 @@ public:
     virtual bool isMuted() const = 0;
     virtual void setMute(bool yes) = 0;
     virtual bool canMute() const = 0;
+    virtual Category category() const;
     int id() const;
 
     int getVolume(int i) const {return getVolume((Channel)i);}
@@ -58,6 +66,7 @@ signals:
     void volumeChanged(int c);
     void muteChanged(bool muted);
 private:
+    Category m_category;
     int m_id;
     static QAtomicInt s_id;
 };
diff --git a/src/daemon2/backends/PulseControl.cpp b/src/daemon2/backends/PulseControl.cpp
index 1a3ffff..1acf274 100644
--- a/src/daemon2/backends/PulseControl.cpp
+++ b/src/daemon2/backends/PulseControl.cpp
@@ -25,10 +25,9 @@
 namespace Backends {
 
 PulseControl::PulseControl(pa_context *cxt, const pa_sink_info *info, QObject *parent)
-    : Control(parent)
+    : Control(Control::HardwareOutput, parent)
     , m_context(cxt)
 {
-    qDebug() << "New control" << displayName() << iconName();
     update(info);
 }
 
diff --git a/src/dbus/org.kde.kmix.control.xml b/src/dbus/org.kde.kmix.control.xml
index 7743ba4..1095c2a 100644
--- a/src/dbus/org.kde.kmix.control.xml
+++ b/src/dbus/org.kde.kmix.control.xml
@@ -5,6 +5,7 @@
     <property access="read" name="displayName" type="s"/>
     <property access="read" name="iconName" type="s"/>
     <property access="readwrite" name="mute" type="b"/>
+    <property access="read" name="category" type="i"/>
     <signal name="muteChanged">
         <arg name="muted" type="b"/>
     </signal>

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

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