1 /* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
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/. */
7 #ifndef CLIMATECONTROL_H
8 #define CLIMATECONTROL_H
12 class ClimateControl : public QQuickItem
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)
27 ClimateControl(QQuickItem *parent = 0);
30 // Accessor functions.
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);
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);
51 // Standard notifiers for property updates.
53 void fanSpeedLevelChanged();
54 void targetTemperatureChanged();
55 void airConditioningChanged();
57 void seatHeaterChanged();
58 void seatCoolerChanged();
59 void airCirculationChanged();
60 void steeringWheelHeaterChanged();
63 // Representations of the AMB properties.
65 quint16 fanSpeedLevel;
66 qint32 targetTemperature;
72 quint8 steeringWheelHeater;
75 // D-Bus functionality member variables.
77 // TODO: Make some of this a generic class for use by other plugins.
79 QVariant dbusRead(const char *property);
80 void dbusWrite(const char *property, QVariant value);
84 #endif // CLIMATECONTROL_H