/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef CLIMATECONTROL_H #define CLIMATECONTROL_H #include class ClimateControl : public QQuickItem { Q_OBJECT Q_DISABLE_COPY(ClimateControl) Q_PROPERTY(int zone READ getZone WRITE setZone) Q_PROPERTY(int fanSpeedLevel READ getFanSpeedLevel WRITE setFanSpeedLevel) Q_PROPERTY(int targetTemperature READ getTargetTemperature WRITE setTargetTemperature) Q_PROPERTY(bool airConditioning READ getAirConditioning WRITE setAirConditioning) Q_PROPERTY(bool heater READ getHeater WRITE setHeater) Q_PROPERTY(int seatHeater READ getSeatHeater WRITE setSeatHeater) Q_PROPERTY(int seatCooler READ getSeatCooler WRITE setSeatCooler) Q_PROPERTY(bool airCirculation READ getAirCirculation WRITE setAirCirculation) Q_PROPERTY(int steeringWheelHeater READ getSteeringWheelHeater WRITE setSteeringWheelHeater) public: ClimateControl(QQuickItem *parent = 0); ~ClimateControl(); // Accessor functions. qint32 getZone(); void setZone(qint32 newZone); quint16 getFanSpeedLevel(); void setFanSpeedLevel(quint16 newFanSpeedLevel); qint32 getTargetTemperature(); void setTargetTemperature(qint32 newTargetTemperature); bool getAirConditioning(); void setAirConditioning(bool newAirConditioning); bool getHeater(); void setHeater(bool newHeater); quint8 getSeatHeater(); void setSeatHeater(quint8 newSeatHeater); quint8 getSeatCooler(); void setSeatCooler(quint8 newSeatCooler); bool getAirCirculation(); void setAirCirculation(bool newAirCirculation); quint8 getSteeringWheelHeater(); void setSteeringWheelHeater(quint8 newSteeringWheelHeater); signals: // Standard notifiers for property updates. void zoneChanged(); void fanSpeedLevelChanged(); void targetTemperatureChanged(); void airConditioningChanged(); void heaterChanged(); void seatHeaterChanged(); void seatCoolerChanged(); void airCirculationChanged(); void steeringWheelHeaterChanged(); private: // Representations of the AMB properties. qint32 zone; quint16 fanSpeedLevel; qint32 targetTemperature; bool airConditioning; bool heater; quint8 seatHeater; quint8 seatCooler; bool airCirculation; quint8 steeringWheelHeater; // // D-Bus functionality member variables. // // TODO: Make some of this a generic class for use by other plugins. // QVariant dbusRead(const char *property); void dbusWrite(const char *property, QVariant value); void getSettings(); }; #endif // CLIMATECONTROL_H