[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kmix/kmix-improvements] src: Add level value to volumeChange signal, and queue updates until they h
From: Trever Fischer <tdfischer () fedoraproject ! org>
Date: 2013-02-19 19:56:03
Message-ID: 20130219195603.24E37A60D4 () git ! kde ! org
[Download RAW message or body]
Git commit 7f1096d529dd2fbffbb9016f1e096dbc948a72ca by Trever Fischer.
Committed on 27/09/2012 at 18:12.
Pushed by tdfischer into branch 'kmix-improvements'.
Add level value to volumeChange signal, and queue updates until they have changed
M +1 -1 src/daemon/Control.h
M +2 -2 src/daemon/KMixDApp.cpp
M +5 -1 src/daemon/backends/PulseControl.cpp
M +1 -0 src/dbus/org.kde.kmix.control.xml
M +3 -4 src/gui/ControlSlider.cpp
M +1 -1 src/gui/ControlSlider.h
http://commits.kde.org/kmix/7f1096d529dd2fbffbb9016f1e096dbc948a72ca
diff --git a/src/daemon/Control.h b/src/daemon/Control.h
index 215c6c1..6d71d14 100644
--- a/src/daemon/Control.h
+++ b/src/daemon/Control.h
@@ -98,7 +98,7 @@ public:
bool canChangeTarget() const;
QString currentTarget() const;
signals:
- void volumeChanged(int c);
+ void volumeChanged(int c, int v);
void muteChanged(bool muted);
void removed();
void currentTargetChanged(const QString &path);
diff --git a/src/daemon/KMixDApp.cpp b/src/daemon/KMixDApp.cpp
index 9c8e3e5..8673324 100644
--- a/src/daemon/KMixDApp.cpp
+++ b/src/daemon/KMixDApp.cpp
@@ -93,10 +93,10 @@ void KMixDApp::controlAdded(Control *control)
{
if (control->category() == Control::HardwareOutput) {
if (m_master)
- disconnect(m_master, SIGNAL(volumeChanged(int)), this, SIGNAL(masterVolumeChanged()));
+ disconnect(m_master, SIGNAL(volumeChanged(int, int)), this, SIGNAL(masterVolumeChanged()));
m_master = control;
emit masterChanged(QString("/controls/%1").arg(m_master->id()));
- connect(m_master, SIGNAL(volumeChanged(int)), this, SIGNAL(masterVolumeChanged()));
+ connect(m_master, SIGNAL(volumeChanged(int, int)), this, SIGNAL(masterVolumeChanged()));
}
}
diff --git a/src/daemon/backends/PulseControl.cpp b/src/daemon/backends/PulseControl.cpp
index a6ad6f8..1e6f90e 100644
--- a/src/daemon/backends/PulseControl.cpp
+++ b/src/daemon/backends/PulseControl.cpp
@@ -70,14 +70,18 @@ bool PulseControl::canMute() const
void PulseControl::updateVolumes(const pa_cvolume &volumes)
{
+ QList<int> volumeUpdates;
if (m_volumes.channels == volumes.channels) {
for (int channel = 0;channel < volumes.channels;channel++) {
if (m_volumes.values[channel] != volumes.values[channel]) {
- emit volumeChanged((Channel)channel);
+ volumeUpdates << channel;
}
}
}
m_volumes = volumes;
+ foreach(int channel, volumeUpdates) {
+ emit volumeChanged((Channel)channel, m_volumes.values[channel]);
+ }
}
void PulseControl::startMonitor()
diff --git a/src/dbus/org.kde.kmix.control.xml b/src/dbus/org.kde.kmix.control.xml
index cbf8ed5..a8dfd60 100644
--- a/src/dbus/org.kde.kmix.control.xml
+++ b/src/dbus/org.kde.kmix.control.xml
@@ -38,6 +38,7 @@
</method>
<signal name="volumeChanged">
<arg name="channel" type="i"/>
+ <arg name="level" type="i"/>
</signal>
<signal name="removed"/>
<method name="subscribeMonitor">
diff --git a/src/gui/ControlSlider.cpp b/src/gui/ControlSlider.cpp
index 5ed794d..30f0d95 100644
--- a/src/gui/ControlSlider.cpp
+++ b/src/gui/ControlSlider.cpp
@@ -106,7 +106,7 @@ ControlSlider::ControlSlider(org::kde::KMix::Control *control, QWidget *parent)
}
updateMute();
- connect(control, SIGNAL(volumeChanged(int)), this, SLOT(volumeChange(int)));
+ connect(control, SIGNAL(volumeChanged(int, int)), this, SLOT(volumeChange(int, int)));
connect(control, SIGNAL(muteChanged(bool)), this, SLOT(updateMute()));
connect(control, SIGNAL(currentTargetChanged(QString)), this, SLOT(handleTargetChange()));
@@ -116,10 +116,9 @@ ControlSlider::~ControlSlider()
{
}
-void ControlSlider::volumeChange(int channel)
+void ControlSlider::volumeChange(int channel, int level)
{
- qDebug() << "Updated volume on" << channel << m_control->getVolume(channel);
- m_sliders[channel]->setValue(m_control->getVolume(channel));
+ m_sliders[channel]->setValue(level);
}
void ControlSlider::updateVolume(int channel)
diff --git a/src/gui/ControlSlider.h b/src/gui/ControlSlider.h
index cff70f8..ad1d304 100644
--- a/src/gui/ControlSlider.h
+++ b/src/gui/ControlSlider.h
@@ -44,7 +44,7 @@ public:
explicit ControlSlider(org::kde::KMix::Control *control, QWidget *parent = 0);
~ControlSlider();
private slots:
- void volumeChange(int channel);
+ void volumeChange(int channel, int level);
void updateVolume(int channel);
void updateMute();
void toggleMute();
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic