aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Kiagiadakis <george.kiagiadakis@collabora.com>2019-06-10 16:03:22 +0300
committerGeorge Kiagiadakis <george.kiagiadakis@collabora.com>2019-06-10 17:56:05 +0300
commit838d62ed32a6cd6d71c72a7b7b272d672bc7e674 (patch)
treeff0946a88e98ec3068861c1626d1102b4b1a00d9
parent5eaddb43b21fb2d6c28fdb22381f3556e27d6fba (diff)
Bug-AGL: SPEC-2473 Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> Change-Id: I5bacca161ce18a5ad047e4aaa2e395beb016d212
-rw-r--r--homescreen/src/mastervolume.cpp48
-rw-r--r--package/config.xml3
2 files changed, 30 insertions, 21 deletions
diff --git a/homescreen/src/mastervolume.cpp b/homescreen/src/mastervolume.cpp
index 35b47fc..5a6dc9a 100644
--- a/homescreen/src/mastervolume.cpp
+++ b/homescreen/src/mastervolume.cpp
@@ -46,20 +46,30 @@ void MasterVolume::setVolume(qint32 volume)
{
m_volume = volume;
QJsonObject arg;
- arg.insert("action", "volume");
+ arg.insert("control", "Master");
arg.insert("value", volume);
- m_client.call("ahl-4a", "activerole", arg, [](bool, const QJsonValue&) {
- // Nothing to do, events will update sliders
- });
+ m_client.call("audiomixer", "volume", arg);
}
}
void MasterVolume::onClientConnected()
{
- // Subscribe to 4a events
- m_client.call("ahl-4a", "subscribe", QJsonValue(), [this](bool r, const QJsonValue&) {
- if (r) qDebug() << "MasterVolume::onClientConnected - subscribed to 4a events!";
- else qCritical () << "MasterVolume::onClientConnected - Failed to subscribe to 4a events!";
+ QJsonObject arg;
+ arg.insert("control", "Master");
+ m_client.call("audiomixer", "volume", arg, [this](bool r, const QJsonValue& v) {
+ if (r && v.isObject()) {
+ int volume = v.toObject()["response"].toObject()["volume"].toDouble() * 100;
+ volume = qBound(0, volume, 100);
+ if (m_volume != volume)
+ {
+ m_volume = volume;
+ emit VolumeChanged();
+ }
+ }
+
+ QJsonObject arg;
+ arg.insert("event", "volume_changed");
+ m_client.call("audiomixer", "subscribe", arg);
});
}
@@ -77,19 +87,19 @@ void MasterVolume::onClientError(QAbstractSocket::SocketError se)
void MasterVolume::onClientEventReceived(QString name, const QJsonValue& data)
{
qDebug() << "MasterVolume::onClientEventReceived[" << name << "]: " << data;
- if (name == "ahl-4a/volume_changed")
+ if (name == "audiomixer/volume_changed")
{
- QJsonObject arg = data.toObject();
- bool active = arg["active"].toBool();
- if (active)
+ QString ctlName = data.toObject()["control"].toString();
+
+ if (ctlName != "Master")
+ return;
+
+ int volume = data.toObject()["value"].toDouble() * 100;
+ volume = qBound(0, volume, 100);
+ if (m_volume != volume)
{
- // QString role = arg["role"].toString();
- int volume = arg["volume"].toInt();
- if (m_volume != volume)
- {
- m_volume = volume;
- emit VolumeChanged();
- }
+ m_volume = volume;
+ emit VolumeChanged();
}
}
}
diff --git a/package/config.xml b/package/config.xml
index a14b1f3..3ebe39b 100644
--- a/package/config.xml
+++ b/package/config.xml
@@ -12,13 +12,12 @@
<param name="weather" value="ws" />
<param name="Bluetooth-Manager" value="ws" />
<param name="windowmanager" value="ws" />
- <param name="ahl-4a" value="ws" />
+ <param name="audiomixer" value="ws" />
</feature>
<feature name="urn:AGL:widget:required-permission">
<param name="urn:AGL:permission::public:no-htdocs" value="required" />
<param name="urn:AGL:permission::system:run-by-default" value="required" />
<param name="http://tizen.org/privilege/internal/dbus" value="required" />
- <param name="urn:AGL:permission::public:4a-audio-mixer" value="required" />
<param name="urn:AGL:permission::public:display" value="required" />
</feature>
</widget>