diff options
Diffstat (limited to 'homescreen/src/mastervolume.cpp')
-rw-r--r-- | homescreen/src/mastervolume.cpp | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/homescreen/src/mastervolume.cpp b/homescreen/src/mastervolume.cpp deleted file mode 100644 index 5a6dc9a..0000000 --- a/homescreen/src/mastervolume.cpp +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (C) 2017 Konsulko Group - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "mastervolume.h" -#include <QJsonObject> -#include <QTimer> -#include <QtDebug> - -MasterVolume::MasterVolume(QObject* parent) - : QObject(parent) - , m_volume{50} -{ - connect(&m_client, SIGNAL(connected()), this, SLOT(onClientConnected())); - connect(&m_client, SIGNAL(disconnected()), this, SLOT(onClientDisconnected())); - connect(&m_client, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onClientError(QAbstractSocket::SocketError))); - connect(&m_client, SIGNAL(eventReceived(QString, const QJsonValue&)), this, SLOT(onClientEventReceived(QString, const QJsonValue&))); -} - -void MasterVolume::open(const QUrl& url) -{ - m_url = url; - TryOpen(); -} - -qint32 MasterVolume::getVolume() const -{ - return m_volume; -} - -void MasterVolume::setVolume(qint32 volume) -{ - if (m_volume != volume) - { - m_volume = volume; - QJsonObject arg; - arg.insert("control", "Master"); - arg.insert("value", volume); - m_client.call("audiomixer", "volume", arg); - } -} - -void MasterVolume::onClientConnected() -{ - 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::onClientDisconnected() -{ - qDebug() << "MasterVolume::onClientDisconnected!"; - QTimer::singleShot(1000, this, SLOT(TryOpen())); -} - -void MasterVolume::onClientError(QAbstractSocket::SocketError se) -{ - qDebug() << "MasterVolume::onClientError: " << se; -} - -void MasterVolume::onClientEventReceived(QString name, const QJsonValue& data) -{ - qDebug() << "MasterVolume::onClientEventReceived[" << name << "]: " << data; - if (name == "audiomixer/volume_changed") - { - 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) - { - m_volume = volume; - emit VolumeChanged(); - } - } -} - -void MasterVolume::TryOpen() -{ - m_client.open(m_url); -} |