819bb5942d52a5e187168295064e58c398a801d2
[AGL/meta-agl-demo.git] / recipes-automotive / climatecontrolplugin / files / climatecontrol.h
1 /* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
2  *
3  * This Source Code Form is subject to the terms of the Mozilla Public
4  * License, v. 2.0. If a copy of the MPL was not distributed with this
5  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6
7 #ifndef CLIMATECONTROL_H
8 #define CLIMATECONTROL_H
9
10 #include <QQuickItem>
11
12 class ClimateControl : public QQuickItem
13 {
14     Q_OBJECT
15     Q_DISABLE_COPY(ClimateControl)
16     Q_PROPERTY(int zone READ getZone WRITE setZone)
17     Q_PROPERTY(int fanSpeedLevel READ getFanSpeedLevel WRITE setFanSpeedLevel)
18     Q_PROPERTY(int targetTemperature READ getTargetTemperature WRITE setTargetTemperature)
19     Q_PROPERTY(bool airConditioning READ getAirConditioning WRITE setAirConditioning)
20     Q_PROPERTY(bool heater READ getHeater WRITE setHeater)
21     Q_PROPERTY(int seatHeater READ getSeatHeater WRITE setSeatHeater)
22     Q_PROPERTY(int seatCooler READ getSeatCooler WRITE setSeatCooler)
23     Q_PROPERTY(bool airCirculation READ getAirCirculation WRITE setAirCirculation)
24     Q_PROPERTY(int steeringWheelHeater READ getSteeringWheelHeater WRITE setSteeringWheelHeater)
25
26 public:
27     ClimateControl(QQuickItem *parent = 0);
28     ~ClimateControl();
29
30     // Accessor functions.
31     qint32 getZone();
32     void setZone(qint32 newZone);
33     quint16 getFanSpeedLevel();
34     void setFanSpeedLevel(quint16 newFanSpeedLevel);
35     qint32 getTargetTemperature();
36     void setTargetTemperature(qint32 newTargetTemperature);
37     bool getAirConditioning();
38     void setAirConditioning(bool newAirConditioning);
39     bool getHeater();
40     void setHeater(bool newHeater);
41     quint8 getSeatHeater();
42     void setSeatHeater(quint8 newSeatHeater);
43     quint8 getSeatCooler();
44     void setSeatCooler(quint8 newSeatCooler);
45     bool getAirCirculation();
46     void setAirCirculation(bool newAirCirculation);
47     quint8 getSteeringWheelHeater();
48     void setSteeringWheelHeater(quint8 newSteeringWheelHeater);
49
50 signals:
51     // Standard notifiers for property updates.
52     void zoneChanged();
53     void fanSpeedLevelChanged();
54     void targetTemperatureChanged();
55     void airConditioningChanged();
56     void heaterChanged();
57     void seatHeaterChanged();
58     void seatCoolerChanged();
59     void airCirculationChanged();
60     void steeringWheelHeaterChanged();
61
62 private:
63     // Representations of the AMB properties.
64     qint32 zone;
65     quint16 fanSpeedLevel;
66     qint32 targetTemperature;
67     bool airConditioning;
68     bool heater;
69     quint8 seatHeater;
70     quint8 seatCooler;
71     bool airCirculation;
72     quint8 steeringWheelHeater;
73
74     //
75     // D-Bus functionality member variables.
76     //
77     // TODO: Make some of this a generic class for use by other plugins.
78     //
79     QVariant dbusRead(const char *property);
80     void dbusWrite(const char *property, QVariant value);
81     void getSettings();
82 };
83
84 #endif // CLIMATECONTROL_H