summaryrefslogtreecommitdiffstats
path: root/recipes-automotive/climatecontrolplugin/files/climatecontrol.h
blob: 819bb5942d52a5e187168295064e58c398a801d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/* 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 <QQuickItem>

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