diff options
author | Loïc Collignon <loic.collignon@iot.bzh> | 2018-12-18 17:16:35 +0100 |
---|---|---|
committer | Loïc Collignon [ IoT.bzh ] <loic.collignon@iot.bzh> | 2018-12-19 10:06:56 +0000 |
commit | d32d36b936cb031ba1b11c67c0d9c6afbdc280b3 (patch) | |
tree | a5a09e31bb41ced3ddea5dddf92530d187da4341 /app/mixer.h | |
parent | f8da591c53f17df877e354896dbbf18410c53b6c (diff) |
Reworked the way qml create sliders
Use the qml MVC to populate a ListView with components based on a template
VolumeSlider. Should now handle potential disconnections, volume changes
by third-party and also fix the issue where sliders are set to 0 at
startup.
Change-Id: I2961d5a1584a121c473ece253faa90a747c64445
Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
Diffstat (limited to 'app/mixer.h')
-rw-r--r-- | app/mixer.h | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/app/mixer.h b/app/mixer.h deleted file mode 100644 index bc1b740..0000000 --- a/app/mixer.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2016 The Qt Company Ltd. - * Copyright (C) 2016,2017 Konsulko Group - * Copyright (C) 2018 IoT.bzh - * - * 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. - */ -#pragma once - -#include <QObject> -#include <QString> -#include <QSharedPointer> -#include <QStringList> -#include <QMap> -#include "qafbwebsocketclient.h" - -class Mixer - : public QObject -{ - Q_OBJECT - Q_PROPERTY(QStringList roles READ roles NOTIFY rolesChanged) - -private: - QUrl m_url; - QMap<QString, int> m_volumes; - QStringList m_roles; - QAfbWebsocketClient m_client; - -public: - explicit Mixer(QObject* parent = nullptr); - Mixer(const Mixer&) = delete; - - Q_INVOKABLE void open(const QUrl& url); - Q_INVOKABLE QStringList roles() const; - Q_INVOKABLE void setVolume(const QString& name, int value); - Q_INVOKABLE void getVolume(const QString& name); - -signals: - void rolesChanged(); - void volumeChanged(const QString& name, int value); - -private slots: - void onClientConnected(); - void onClientDisconnected(); - void onClientError(QAbstractSocket::SocketError se); - void onRetryOpen(); - void onClientEventReceived(QString eventName, const QJsonValue& data); -}; |