{
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);
});
}
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();
}
}
}
<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>