Initial version of Lifx lightbulb controller in C++ for Fidelius
[iotcloud.git] / version2 / src / RPi / BulbColor.h
1 #ifndef _BULBCOLOR_H__
2 #define _BULBCOLOR_H__
3 #include <iostream>
4
5 class BulbColor {
6
7         private:
8                 int hue;
9                 int saturation;
10                 int brightness;
11                 int kelvin;
12
13         public:
14
15                 BulbColor(int _hue, int _saturation, int _brightness, int _kelvin) {
16
17                         if ((_hue > 65535) || (_hue < 0)) {
18                                 cerr << "BulbColor: Invalid parameter value for _hue (0-65535)" << endl;
19                                 exit(1);
20                         }
21
22                         if ((_saturation > 65535) || (_saturation < 0)) {
23                                 cerr << "BulbColor: Invalid parameter value for _saturation (0-65535)" << endl;
24                                 exit(1);
25                         }
26
27                         if ((_brightness > 65535) || (_brightness < 0)) {
28                                 cerr << "BulbColor: Invalid parameter value for _brightness (0-65535)" << endl;
29                                 exit(1);
30                         }
31
32                         if ((_kelvin > 65535) || (_kelvin < 0)) {
33                                 cerr << "BulbColor: Invalid parameter value for _kelvin (0-65535)" << endl;
34                                 exit(1);
35                         }
36
37                         hue = _hue;
38                         saturation = _saturation;
39                         brightness = _brightness;
40                         kelvin = _kelvin;
41                 }
42
43
44                 BulbColor(char* data) {
45                         hue = ((data[1] & 0xFF) << 8);
46                         hue |= (data[0] & 0xFF);
47
48                         saturation = ((data[3] & 0xFF) << 8);
49                         saturation |= (data[2] & 0xFF);
50
51                         brightness = ((data[5] & 0xFF) << 8);
52                         brightness |= (data[4] & 0xFF);
53
54                         kelvin = ((data[7] & 0xFF) << 8);
55                         kelvin |= (data[6] & 0xFF);
56                 }
57
58
59                 ~BulbColor() {
60                 }
61
62
63                 int getHue() {
64                         return hue;
65                 }
66
67
68                 int getSaturation() {
69                         return saturation;
70                 }
71
72
73                 int getBrightness() {
74                         return brightness;
75                 }
76
77
78                 int getKelvin() {
79                         return kelvin;
80                 }
81 };
82 #endif