[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