fbbab4bf178d8ad3d4c873489731b7048328bd9e
[apps/homescreen.git] / homescreen / src / mastervolume.h
1 /*
2  * Copyright (C) 2017 Konsulko Group
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #include <QtCore/QObject>
18 #include <QQmlEngine>
19 #include "vehiclesignals.h"
20
21 class MasterVolume : public QObject
22 {
23         Q_OBJECT
24         Q_PROPERTY (uint32_t volume READ getVolume WRITE setVolume NOTIFY VolumeChanged)
25
26 private:
27         qint32 m_volume;
28         VehicleSignals *m_vs;
29         bool m_connected;
30
31         void updateVolume(QString value);
32
33 public:
34         MasterVolume(QObject* parent = nullptr);
35         ~MasterVolume() = default;
36
37         Q_INVOKABLE qint32 getVolume() const;
38         Q_INVOKABLE void setVolume(qint32 val);
39
40 private slots:
41         void onConnected();
42         void onAuthorized();
43         void onDisconnected();
44         void onGetSuccessResponse(QString path, QString value, QString timestamp);
45         void onSignalNotification(QString path, QString value, QString timestamp);
46
47 signals:
48         void VolumeChanged();
49 };