Commit 544f68c5d079f9d68a1e888b97f93331d92f3c3c

Authored by Nodeduino
1 parent 9a60a144

Add documentation to previously undocumented files and clean up documentation

hueplusplus/include/BrightnessStrategy.h
@@ -24,11 +24,18 @@ @@ -24,11 +24,18 @@
24 24
25 class HueLight; 25 class HueLight;
26 26
  27 +//! Virtual base class for all BrightnessStrategys
27 class BrightnessStrategy 28 class BrightnessStrategy
28 { 29 {
29 public: 30 public:
  31 + //! \brief Virtual function for changing a lights brightness with a specified transition.
  32 + //!
  33 + //! \param bri The brightness raning from 0 = off to 255 = fully lit
  34 + //! \param transition The time it takes to fade to the new brightness in multiples of 100ms, 4 = 400ms and should be seen as the default
  35 + //! \param light A reference of the light
30 virtual bool setBrightness(unsigned int bri, uint8_t transition, HueLight& light) const = 0; 36 virtual bool setBrightness(unsigned int bri, uint8_t transition, HueLight& light) const = 0;
  37 + //! \brief Virtual dtor
31 virtual ~BrightnessStrategy() = default; 38 virtual ~BrightnessStrategy() = default;
32 }; 39 };
33 40
34 -#endif  
35 \ No newline at end of file 41 \ No newline at end of file
  42 +#endif
hueplusplus/include/ColorHueStrategy.h
@@ -24,19 +24,84 @@ @@ -24,19 +24,84 @@
24 24
25 class HueLight; 25 class HueLight;
26 26
  27 +//! Virtual base class for all ColorHueStrategys
27 class ColorHueStrategy 28 class ColorHueStrategy
28 { 29 {
29 public: 30 public:
  31 + //! \brief Function for changing a lights color in hue with a specified transition.
  32 + //!
  33 + //! The hue ranges from 0 to 65535, whereas 65535 and 0 are red, 25500 is green and 46920 is blue.
  34 + //! \param hue The hue of the color
  35 + //! \param transition The time it takes to fade to the new color in multiples of 100ms, 4 = 400ms and should be seen as the default
  36 + //! \param light A reference of the light
30 virtual bool setColorHue(uint16_t hue, uint8_t transition, HueLight& light) const = 0; 37 virtual bool setColorHue(uint16_t hue, uint8_t transition, HueLight& light) const = 0;
31 - virtual bool setColorSaturation(uint8_t sat, uint8_t transition, HueLight& light) const = 0; 38 + //! \brief Function for changing a lights color in saturation with a specified transition.
  39 + //!
  40 + //! The saturation ranges from 0 to 254, whereas 0 is least saturated (white) and 254 is most saturated (vibrant).
  41 + //! \param sat The saturation of the color
  42 + //! \param transition The time it takes to fade to the new color in multiples of 100ms, 4 = 400ms and should be seen as the default
  43 + //! \param light A reference of the light
  44 + virtual bool setColorSaturation(uint8_t sat, uint8_t transition, HueLight& light) const = 0;
  45 + //! \brief Function for changing a lights color in hue and saturation format with a specified transition.
  46 + //!
  47 + //! The hue ranges from 0 to 65535, whereas 65535 and 0 are red, 25500 is green and 46920 is blue.
  48 + //! The saturation ranges from 0 to 254, whereas 0 is least saturated (white) and 254 is most saturated (vibrant).
  49 + //! \param hue The hue of the color
  50 + //! \param sat The saturation of the color
  51 + //! \param transition The time it takes to fade to the new color in multiples of 100ms, 4 = 400ms and should be seen as the default
  52 + //! \param light A reference of the light
32 virtual bool setColorHueSaturation(uint16_t hue, uint8_t sat, uint8_t transition, HueLight& light) const = 0; 53 virtual bool setColorHueSaturation(uint16_t hue, uint8_t sat, uint8_t transition, HueLight& light) const = 0;
  54 + //! \brief Function for changing a lights color in CIE format with a specified transition.
  55 + //!
  56 + //! \param x The x coordinate in CIE, ranging from 0 to 1
  57 + //! \param y The y coordinate in CIE, ranging from 0 to 1
  58 + //! \param transition The time it takes to fade to the new color in multiples of 100ms, 4 = 400ms and should be seen as the default
  59 + //! \param light A reference of the light
33 virtual bool setColorXY(float x, float y, uint8_t transition, HueLight& light) const = 0; 60 virtual bool setColorXY(float x, float y, uint8_t transition, HueLight& light) const = 0;
  61 + //! \brief Function for changing a lights color in rgb format with a specified transition.
  62 + //!
  63 + //! Red, green and blue are ranging from 0 to 255.
  64 + //! \param r The red portion of the color
  65 + //! \param g The green portion of the color
  66 + //! \param b The blue portion of the color
  67 + //! \param transition The time it takes to fade to the new color in multiples of 100ms, 4 = 400ms and should be seen as the default
  68 + //! \param light A reference of the light
34 virtual bool setColorRGB(uint8_t r, uint8_t g, uint8_t b, uint8_t transition, HueLight& light) const = 0; 69 virtual bool setColorRGB(uint8_t r, uint8_t g, uint8_t b, uint8_t transition, HueLight& light) const = 0;
  70 + //! \brief Function for turning on/off the color loop feature of a light.
  71 + //!
  72 + //! Can be theoretically set for any light, but it only works for lights that support this feature.
  73 + //! When this feature is activated the light will fade through every color on the current hue and saturation settings.
  74 + //! Notice that none of the setter functions check whether this feature is enabled and
  75 + //! the colorloop can only be disabled with this function or by simply calling Off()/OffNoRefresh()
  76 + //! and then On()/OnNoRefresh(), so you could alternatively call Off() and
  77 + //! then use any of the setter functions.
  78 + //! \param on Boolean to turn this feature on or off, true/1 for on and false/0 for off
  79 + //! \param light A reference of the light
35 virtual bool setColorLoop(bool on, HueLight& light) const = 0; 80 virtual bool setColorLoop(bool on, HueLight& light) const = 0;
  81 + //! \brief Function that lets the light perform one breath cycle in the specified color.
  82 + //!
  83 + //! The hue ranges from 0 to 65535, whereas 65535 and 0 are red, 25500 is green and 46920 is blue.
  84 + //! The saturation ranges from 0 to 254, whereas 0 is least saturated (white) and 254 is most saturated (vibrant).
  85 + //! \param hue The hue of the color
  86 + //! \param sat The saturation of the color
  87 + //! \param light A reference of the light
36 virtual bool alertHueSaturation(uint16_t hue, uint8_t sat, HueLight& light) const = 0; 88 virtual bool alertHueSaturation(uint16_t hue, uint8_t sat, HueLight& light) const = 0;
  89 + //! \brief Function that lets the light perform one breath cycle in the specified color.
  90 + //!
  91 + //! \param x The x coordinate in CIE, ranging from 0 to 1
  92 + //! \param y The y coordinate in CIE, ranging from 0 to 1
  93 + //! \param light A reference of the light
37 virtual bool alertXY(float x, float y, HueLight& light) const = 0; 94 virtual bool alertXY(float x, float y, HueLight& light) const = 0;
  95 + //! \brief Function that lets the light perform one breath cycle in the specified color.
  96 + //!
  97 + //! Red, green and blue are ranging from 0 to 255.
  98 + //! \param r The red portion of the color
  99 + //! \param g The green portion of the color
  100 + //! \param b The blue portion of the color
  101 + //! \param light A reference of the light
38 virtual bool alertRGB(uint8_t r, uint8_t g, uint8_t b, HueLight& light) const = 0; 102 virtual bool alertRGB(uint8_t r, uint8_t g, uint8_t b, HueLight& light) const = 0;
  103 + //! \brief Virtual dtor
39 virtual ~ColorHueStrategy() = default; 104 virtual ~ColorHueStrategy() = default;
40 }; 105 };
41 106
42 -#endif  
43 \ No newline at end of file 107 \ No newline at end of file
  108 +#endif
hueplusplus/include/ColorTemperatureStrategy.h
@@ -24,12 +24,25 @@ @@ -24,12 +24,25 @@
24 24
25 class HueLight; 25 class HueLight;
26 26
  27 +//! Virtual base class for all ColorTemperatureStrategys
27 class ColorTemperatureStrategy 28 class ColorTemperatureStrategy
28 { 29 {
29 public: 30 public:
  31 + //! \brief Virtual function for changing a lights color temperature in mired with a specified transition.
  32 + //!
  33 + //! The color temperature in mired ranges from 153 to 500 whereas 153 is cold and 500 is warm.
  34 + //! \param mired The color temperature in mired
  35 + //! \param transition The time it takes to fade to the new color in multiples of 100ms, 4 = 400ms and should be seen as the default
  36 + //! \param light A reference of the light
30 virtual bool setColorTemperature(unsigned int mired, uint8_t transition, HueLight& light) const = 0; 37 virtual bool setColorTemperature(unsigned int mired, uint8_t transition, HueLight& light) const = 0;
31 - virtual bool alertTemperature(unsigned int mired, HueLight& light) const = 0; 38 + //! \brief Virtual function that lets the light perform one breath cycle in the specified color.
  39 + //!
  40 + //! The color temperature in mired ranges from 153 to 500 whereas 153 is cold and 500 is warm.
  41 + //! \param mired The color temperature in mired
  42 + //! \param light A reference of the light
  43 + virtual bool alertTemperature(unsigned int mired, HueLight& light) const = 0;
  44 + //! \brief Virtual dtor
32 virtual ~ColorTemperatureStrategy() = default; 45 virtual ~ColorTemperatureStrategy() = default;
33 }; 46 };
34 47
35 -#endif  
36 \ No newline at end of file 48 \ No newline at end of file
  49 +#endif
hueplusplus/include/ExtendedColorHueStrategy.h
@@ -22,12 +22,35 @@ @@ -22,12 +22,35 @@
22 22
23 #include "SimpleColorHueStrategy.h" 23 #include "SimpleColorHueStrategy.h"
24 24
  25 +//! Class extending the implementation of SimpleColorHueStrategy
25 class ExtendedColorHueStrategy : public SimpleColorHueStrategy 26 class ExtendedColorHueStrategy : public SimpleColorHueStrategy
26 { 27 {
27 public: 28 public:
  29 + //! \brief Function that lets the light perform one breath cycle in the specified color.
  30 + //!
  31 + //! It uses this_thread::sleep_for to accomodate for the time an \ref HueLight::alert() needs
  32 + //! The hue ranges from 0 to 65535, whereas 65535 and 0 are red, 25500 is green and 46920 is blue.
  33 + //! The saturation ranges from 0 to 254, whereas 0 is least saturated (white) and 254 is most saturated (vibrant).
  34 + //! \param hue The hue of the color
  35 + //! \param sat The saturation of the color
  36 + //! \param light A reference of the light
28 bool alertHueSaturation(uint16_t hue, uint8_t sat, HueLight& light) const; 37 bool alertHueSaturation(uint16_t hue, uint8_t sat, HueLight& light) const;
  38 + //! \brief Function that lets the light perform one breath cycle in the specified color.
  39 + //!
  40 + //! It uses this_thread::sleep_for to accomodate for the time an \ref HueLight::alert() needs
  41 + //! \param x The x coordinate in CIE, ranging from 0 to 1
  42 + //! \param y The y coordinate in CIE, ranging from 0 to 1
  43 + //! \param light A reference of the light
29 bool alertXY(float x, float y, HueLight& light) const; 44 bool alertXY(float x, float y, HueLight& light) const;
  45 + //! \brief Function that lets the light perform one breath cycle in the specified color.
  46 + //!
  47 + //! It uses this_thread::sleep_for to accomodate for the time an \ref HueLight::alert() needs
  48 + //! Red, green and blue are ranging from 0 to 255.
  49 + //! \param r The red portion of the color
  50 + //! \param g The green portion of the color
  51 + //! \param b The blue portion of the color
  52 + //! \param light A reference of the light
30 bool alertRGB(uint8_t r, uint8_t g, uint8_t b, HueLight& light) const; 53 bool alertRGB(uint8_t r, uint8_t g, uint8_t b, HueLight& light) const;
31 }; 54 };
32 55
33 -#endif  
34 \ No newline at end of file 56 \ No newline at end of file
  57 +#endif
hueplusplus/include/ExtendedColorTemperatureStrategy.h
@@ -18,16 +18,29 @@ @@ -18,16 +18,29 @@
18 **/ 18 **/
19 19
20 #ifndef _EXTENDED_COLOR_TEMPERATURE_STRATEGY_H 20 #ifndef _EXTENDED_COLOR_TEMPERATURE_STRATEGY_H
21 -#define _EXTENDED_COLOR_TEMPERATURE_STRATEGY_H 21 +#define _EXTENDED_COLOR_TEMPERATURE_STRATEGY_H
22 22
23 #include "ColorTemperatureStrategy.h" 23 #include "ColorTemperatureStrategy.h"
24 #include "HueLight.h" 24 #include "HueLight.h"
25 25
  26 +//! Class implementing the functions of ColorTemperatureStrategy
26 class ExtendedColorTemperatureStrategy : public ColorTemperatureStrategy 27 class ExtendedColorTemperatureStrategy : public ColorTemperatureStrategy
27 { 28 {
28 public: 29 public:
  30 + //! \brief Function for changing a lights color temperature in mired with a specified transition.
  31 + //!
  32 + //! The color temperature in mired ranges from 153 to 500 whereas 153 is cold and 500 is warm.
  33 + //! \param mired The color temperature in mired
  34 + //! \param transition The time it takes to fade to the new color in multiples of 100ms, 4 = 400ms and should be seen as the default
  35 + //! \param light A reference of the light
29 bool setColorTemperature(unsigned int mired, uint8_t transition, HueLight& light) const; 36 bool setColorTemperature(unsigned int mired, uint8_t transition, HueLight& light) const;
  37 + //! \brief Function that lets the light perform one breath cycle in the specified color.
  38 + //!
  39 + //! It uses this_thread::sleep_for to accomodate for the time an \ref HueLight::alert() needs
  40 + //! The color temperature in mired ranges from 153 to 500 whereas 153 is cold and 500 is warm.
  41 + //! \param mired The color temperature in mired
  42 + //! \param light A reference of the light
30 bool alertTemperature(unsigned int mired, HueLight& light) const; 43 bool alertTemperature(unsigned int mired, HueLight& light) const;
31 }; 44 };
32 45
33 -#endif  
34 \ No newline at end of file 46 \ No newline at end of file
  47 +#endif
hueplusplus/include/HttpHandler.h
@@ -27,30 +27,33 @@ @@ -27,30 +27,33 @@
27 class HttpHandler 27 class HttpHandler
28 { 28 {
29 public: 29 public:
30 - //! Function that sends a request to a specific address \ref adr on a specific \ref port.  
31 - //! It returns a string containing the answer of the host  
32 - //! \param msg String that contains the request that is sent to \ref adr  
33 - //! \param adr String that contains an ip or hostname  
34 - //! \param port Optional Integer that specifies the port to which the request is sent. Standard value is 80  
35 - //! \return String containing the answer of the host  
36 - std::string sendRequest(const std::string &msg, const std::string &adr, int port=80); 30 + //! \brief Function that sends a http request with the specified message and returns the response.
  31 + //!
  32 + //! It returns a string containing the response of the host.
  33 + //! \param msg String that contains the request that is sent to the specified address
  34 + //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1"
  35 + //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80
  36 + //! \return String containing the response of the host
  37 + std::string sendRequest(const std::string &msg, const std::string &adr, int port=80);
37 38
38 - //! Function that sends a request to a specific address \ref adr on a specific \ref port.  
39 - //! It returns a string containing only the body of the answer of the host  
40 - //! \param msg String that contains the request that is sent to \ref adr  
41 - //! \param adr String that contains an ip or hostname  
42 - //! \param port Optional Integer that specifies the port to which the request is sent. Standard value is 80  
43 - //! \return String containing the body of the answer of the host  
44 - std::string sendRequestGetBody(const std::string &msg, const std::string &adr, int port = 80); 39 + //! \brief Function that sends a http request with the specified message and returns the body of the response.
  40 + //!
  41 + //! It returns a string containing only the body of the response of the host.
  42 + //! \param msg String that contains the request that is sent to the specified address
  43 + //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1"
  44 + //! \param port Optional integer that specifies the port to which the request is sent. Default is 80
  45 + //! \return String containing the body of the response of the host
  46 + std::string sendRequestGetBody(const std::string &msg, const std::string &adr, int port = 80);
45 47
46 - //! Function that sends a multicast request to a specific address \ref adr on a specific \ref port with a \ref timeout.  
47 - //! It returns a vector containing all answers the multicast request got  
48 - //! \param msg String that contains the request that is sent to \ref adr  
49 - //! \param adr Optional String that contains an ip or hostname. Standard value is "239.255.255.250"  
50 - //! \param port Optional Integer that specifies the port to which the request is sent. Standard value is 1900  
51 - //! \param timeout Optional Integer that specifies the timeout of the request in seconds. Standard value is 5  
52 - //! \return Vector containing strings of each answer received  
53 - std::vector<std::string> sendMulticast(const std::string &msg, const std::string &adr = "239.255.255.250", int port = 1900, int timeout = 5); 48 + //! \brief Function that sends a multicast request with the specified message.
  49 + //!
  50 + //! It returns a vector containing all responses the multicast request got back
  51 + //! \param msg String that contains the request that is sent to the specified address
  52 + //! \param adr Optional String that contains an ip or hostname in dotted decimal notation, default is "239.255.255.250"
  53 + //! \param port Optional integer that specifies the port to which the request is sent. Default is 1900
  54 + //! \param timeout Optional Integer that specifies the timeout of the request in seconds. Default is 5
  55 + //! \return Vector containing strings of each answer received
  56 + std::vector<std::string> sendMulticast(const std::string &msg, const std::string &adr = "239.255.255.250", int port = 1900, int timeout = 5);
54 }; 57 };
55 58
56 -#endif  
57 \ No newline at end of file 59 \ No newline at end of file
  60 +#endif
hueplusplus/include/Hue.h
@@ -48,92 +48,107 @@ public: @@ -48,92 +48,107 @@ public:
48 std::string mac; 48 std::string mac;
49 }; 49 };
50 public: 50 public:
51 - //! Function that finds all bridges in the network and returns them.\n 51 + //! \brief Function that finds all bridges in the network and returns them.
  52 + //!
52 //! The user should be given the opportunity to select the correct one based on the mac address. 53 //! The user should be given the opportunity to select the correct one based on the mac address.
53 //! \return vector containing ip and mac of all found bridges 54 //! \return vector containing ip and mac of all found bridges
54 std::vector<HueIdentification> FindBridges() const; 55 std::vector<HueIdentification> FindBridges() const;
55 56
56 - //! Function that gets a \ref Hue bridge based on its identification 57 + //! \brief Function that gets a \ref Hue bridge based on its identification
  58 + //!
57 //! \param identification \ref HueIdentification that specifies a bridge 59 //! \param identification \ref HueIdentification that specifies a bridge
58 //! \return \ref Hue class object 60 //! \return \ref Hue class object
59 Hue GetBridge(const HueIdentification& identification); 61 Hue GetBridge(const HueIdentification& identification);
60 62
61 - //! Function that adds a username to the \ref usernames map 63 + //! \brief Function that adds a username to the \ref usernames map
  64 + //!
62 //! \param mac MAC address of Hue bridge 65 //! \param mac MAC address of Hue bridge
63 //! \param username Username that is used to control the Hue bridge 66 //! \param username Username that is used to control the Hue bridge
64 void AddUsername(const std::string& mac, const std::string& username); 67 void AddUsername(const std::string& mac, const std::string& username);
65 68
66 - //! Function that returns a map of mac addresses and usernames. 69 + //! \brief Function that returns a map of mac addresses and usernames.
  70 + //!
67 //! These should be saved at the end and re-loaded next time, so only one username is generated per bridge. 71 //! These should be saved at the end and re-loaded next time, so only one username is generated per bridge.
68 //! \returns A map mapping mac address to username for every bridge 72 //! \returns A map mapping mac address to username for every bridge
69 const std::map<std::string, std::string>& GetAllUsernames() const; 73 const std::map<std::string, std::string>& GetAllUsernames() const;
70 private: 74 private:
71 - //! Function that sends a username request to the Hue bridge for about 30 seconds, but you have 5 seconds to prepare.\n 75 + //! \brief Function that sends a username request to the Hue bridge.
  76 + //!
  77 + //! It does that for about 30 seconds and you have 5 seconds to prepare.
72 //! It returns the username received 78 //! It returns the username received
73 //! \param ip String that specifies the ip the request is send to 79 //! \param ip String that specifies the ip the request is send to
74 //! \return String containing username 80 //! \return String containing username
75 std::string RequestUsername(const std::string& ip) const; 81 std::string RequestUsername(const std::string& ip) const;
76 82
77 private: 83 private:
78 - std::map<std::string, std::string> usernames; 84 + std::map<std::string, std::string> usernames; //!< Maps all macs to usernames added by \ref HueFinder::AddUsername
79 }; 85 };
80 86
81 //! Hue class 87 //! Hue class
82 class Hue 88 class Hue
83 { 89 {
84 public: 90 public:
85 - //! Constructor of Hue class  
86 - //! \param ip String that specifies the ip address of the Hue bridge 91 + //! \brief Constructor of Hue class
  92 + //!
  93 + //! \param ip String that specifies the ip address of the Hue bridge in dotted decimal notation like "192.168.2.1"
87 //! \param username String that specifies the username that is used to control the bridge. This needs to be acquired in \ref requestUsername 94 //! \param username String that specifies the username that is used to control the bridge. This needs to be acquired in \ref requestUsername
88 Hue(const std::string& ip, const std::string& username); 95 Hue(const std::string& ip, const std::string& username);
89 96
90 - //! Function to get the ip address of the hue bridge 97 + //! \brief Function to get the ip address of the hue bridge
  98 + //!
91 //! \return string containing ip 99 //! \return string containing ip
92 std::string getBridgeIP(); 100 std::string getBridgeIP();
93 101
94 - //! Function that sends a username request to the Hue bridge for about 30 seconds, but you have 5 seconds to prepare 102 + //! \brief Function that sends a username request to the Hue bridge.
  103 + //!
  104 + //! It does that for about 30 seconds and you have 5 seconds to prepare
95 //! It automatically sets the \ref username variable according to the username received 105 //! It automatically sets the \ref username variable according to the username received
96 //! This function should only be called once to acquire a username to control the bridge and the username should be saved for future use 106 //! This function should only be called once to acquire a username to control the bridge and the username should be saved for future use
97 - //! \param ip String that specifies the ip the request is send to 107 + //! \param ip String that specifies the ip (in dotted decimal notation like "192.168.2.1") the request is send to
98 void requestUsername(const std::string& ip); 108 void requestUsername(const std::string& ip);
99 109
100 - //! Function that returns the \ref username 110 + //! \brief Function that returns the \ref username
  111 + //!
101 //! \return String containing \ref username 112 //! \return String containing \ref username
102 std::string getUsername(); 113 std::string getUsername();
103 114
104 - //! Function to set the ip address of the Hue bridge in this class  
105 - //! \param ip String that specifies the ip 115 + //! \brief Function to set the ip address of this class representing a bridge
  116 + //!
  117 + //! \param ip String that specifies the ip in dotted decimal notation like "192.168.2.1"
106 void setIP(const std::string ip); 118 void setIP(const std::string ip);
107 119
108 - // todo: some intelligence of finding light  
109 - //! Function that returns a \HueLight of specified \ref id 120 + //! \todo add some intelligence of finding light
  121 + //! \brief Function that returns a \ref Hue::HueLight of specified id
  122 + //!
110 //! \param id Integer that specifies the ID of a Hue light 123 //! \param id Integer that specifies the ID of a Hue light
111 //! \return \ref HueLight that can be controlled 124 //! \return \ref HueLight that can be controlled
112 HueLight& getLight(int id); 125 HueLight& getLight(int id);
113 126
114 - //! Function that returns all light types that are associated with this bridge 127 + //! \brief Function that returns all light types that are associated with this bridge
  128 + //!
115 //! \return A map mapping light id's to light types for every light 129 //! \return A map mapping light id's to light types for every light
116 //const std::map<uint8_t, ColorType>& getAllLightTypes(); 130 //const std::map<uint8_t, ColorType>& getAllLightTypes();
117 131
118 - //! Function that returns all lights that are associated with this bridge 132 + //! \brief Function that returns all lights that are associated with this bridge
  133 + //!
119 //! \return A vector containing references to every HueLight 134 //! \return A vector containing references to every HueLight
120 std::vector<std::reference_wrapper<HueLight>> getAllLights(); 135 std::vector<std::reference_wrapper<HueLight>> getAllLights();
121 136
122 private: 137 private:
123 - //! Function that refreshes the local \ref state of the Hue bridge 138 + //! \brief Function that refreshes the local \ref state of the Hue bridge
124 void refreshState(); 139 void refreshState();
125 140
126 private: 141 private:
127 - std::string ip;  
128 - std::string username;  
129 - Json::Value state;  
130 - std::map< uint8_t, HueLight > lights;  
131 -  
132 - std::shared_ptr<BrightnessStrategy> simpleBrightnessStrategy;  
133 - std::shared_ptr<ColorHueStrategy> simpleColorHueStrategy;  
134 - std::shared_ptr<ColorHueStrategy> extendedColorHueStrategy;  
135 - std::shared_ptr<ColorTemperatureStrategy> simpleColorTemperatureStrategy;  
136 - std::shared_ptr<ColorTemperatureStrategy> extendedColorTemperatureStrategy; 142 + std::string ip; //!< IP-Address of the hue bridge in dotted decimal notation like "192.168.2.1"
  143 + std::string username; //!< Username that is ussed to access the hue bridge
  144 + Json::Value state; //!< The state of the hue bridge as it is returned from it
  145 + std::map< uint8_t, HueLight > lights; //!< Maps ids to HueLights that are controlled by this bridge
  146 +
  147 + std::shared_ptr<BrightnessStrategy> simpleBrightnessStrategy; //!< Strategy that is used for controlling the brightness of lights
  148 + std::shared_ptr<ColorHueStrategy> simpleColorHueStrategy; //!< Strategy that is used for controlling the color of lights
  149 + std::shared_ptr<ColorHueStrategy> extendedColorHueStrategy; //!< Strategy that is used for controlling the color of lights
  150 + std::shared_ptr<ColorTemperatureStrategy> simpleColorTemperatureStrategy; //!< Strategy that is used for controlling the color temperature of lights
  151 + std::shared_ptr<ColorTemperatureStrategy> extendedColorTemperatureStrategy; //!< Strategy that is used for controlling the color temperature of lights
137 }; 152 };
138 153
139 -#endif  
140 \ No newline at end of file 154 \ No newline at end of file
  155 +#endif
hueplusplus/include/HueLight.h
@@ -69,7 +69,7 @@ LTW014, // Hue Spot BR30, Color Gamut 2200K-6500K, CTL @@ -69,7 +69,7 @@ LTW014, // Hue Spot BR30, Color Gamut 2200K-6500K, CTL
69 LLC020 // Hue Go, Color Gamut C, ECL 69 LLC020 // Hue Go, Color Gamut C, ECL
70 };*/ 70 };*/
71 71
72 -//! enum that specifies the color type of all Hue lights 72 +//! enum that specifies the color type of all HueLights
73 enum ColorType 73 enum ColorType
74 { 74 {
75 UNDEFINED, //!< ColorType for this light is unknown or undefined 75 UNDEFINED, //!< ColorType for this light is unknown or undefined
@@ -96,69 +96,78 @@ class HueLight @@ -96,69 +96,78 @@ class HueLight
96 friend class ExtendedColorTemperatureStrategy; 96 friend class ExtendedColorTemperatureStrategy;
97 97
98 public: 98 public:
99 - //! std dtor 99 + //! \brief std dtor
100 ~HueLight() = default; 100 ~HueLight() = default;
101 101
102 - //! Function that turns the light on. 102 + //! \brief Function that turns the light on.
  103 + //!
103 //! \param transition Optional parameter to set the transition from current state to new, standard is 4 = 400ms 104 //! \param transition Optional parameter to set the transition from current state to new, standard is 4 = 400ms
104 //! \return Bool that is true on success 105 //! \return Bool that is true on success
105 bool On(uint8_t transition = 4); 106 bool On(uint8_t transition = 4);
106 107
107 - //! Function that turns the light off. 108 + //! \brief Function that turns the light off.
  109 + //!
108 //! \param transition Optional parameter to set the transition from current state to new, standard is 4 = 400ms 110 //! \param transition Optional parameter to set the transition from current state to new, standard is 4 = 400ms
109 //! \return Bool that is true on success 111 //! \return Bool that is true on success
110 bool Off(uint8_t transition = 4); 112 bool Off(uint8_t transition = 4);
111 113
112 - //! Function that returns the name of the light. 114 + //! \brief Function that returns the name of the light.
  115 + //!
113 //! \return String containig the name of the light 116 //! \return String containig the name of the light
114 std::string getName(); 117 std::string getName();
115 118
116 - //! Function that returns the color type of the light. 119 + //! \brief Function that returns the color type of the light.
  120 + //!
117 //! \return ColorType containig the color type of the light 121 //! \return ColorType containig the color type of the light
118 ColorType getColorType(); 122 ColorType getColorType();
119 123
120 - //! Function that converts Kelvin to Mired. 124 + //! \brief Function that converts Kelvin to Mired.
  125 + //!
121 //! \param kelvin Unsigned integer value in Kelvin 126 //! \param kelvin Unsigned integer value in Kelvin
122 //! \return Unsigned integer value in Mired 127 //! \return Unsigned integer value in Mired
123 unsigned int KelvinToMired(unsigned int kelvin); 128 unsigned int KelvinToMired(unsigned int kelvin);
124 129
125 - //! Function that converts Mired to Kelvin. 130 + //! \brief Function that converts Mired to Kelvin.
  131 + //!
126 //! \param mired Unsigned integer value in Mired 132 //! \param mired Unsigned integer value in Mired
127 //! \return Unsigned integer value in Kelvin 133 //! \return Unsigned integer value in Kelvin
128 unsigned int MiredToKelvin(unsigned int mired); 134 unsigned int MiredToKelvin(unsigned int mired);
129 135
130 - //! Function that sets the brightness of this light if the  
131 - //! light has a reference to a specific \ref BrightnessStrategy.  
132 - //! The brightness can range from 0=off to 255=fully on. 136 + //! \brief Function that sets the brightness of this light.
  137 + //!
  138 + //! Notice the brightness will only be set if the light has a reference to a specific \ref BrightnessStrategy.
  139 + //! The brightness can range from 0 = off to 255 = fully lit.
133 //! \param bri Unsigned int that specifies the brightness 140 //! \param bri Unsigned int that specifies the brightness
134 //! \param transition Optional parameter to set the transition from current state to new, standard is 4 = 400ms 141 //! \param transition Optional parameter to set the transition from current state to new, standard is 4 = 400ms
135 //! \return Bool that is true on success 142 //! \return Bool that is true on success
136 - bool setBrightness(unsigned int bri, uint8_t transition = 4)  
137 - {  
138 - if (brightnessStrategy) 143 + bool setBrightness(unsigned int bri, uint8_t transition = 4)
  144 + {
  145 + if (brightnessStrategy)
139 { 146 {
140 return brightnessStrategy->setBrightness(bri, transition, *this); 147 return brightnessStrategy->setBrightness(bri, transition, *this);
141 } 148 }
142 return false; 149 return false;
143 }; 150 };
144 151
145 - //! Fucntion that sets the color temperature of this light in mired if the  
146 - //! light has a reference to a specific \ref ColorTemperatureStrategy. 152 + //! \brief Fucntion that sets the color temperature of this light in mired.
  153 + //!
  154 + //! Notice the color temperature will only be set if the light has a reference to a specific \ref ColorTemperatureStrategy.
147 //! The color temperature can range from 153 to 500. 155 //! The color temperature can range from 153 to 500.
148 //! \param mired Unsigned int that specifies the color temperature in Mired 156 //! \param mired Unsigned int that specifies the color temperature in Mired
149 //! \param transition Optional parameter to set the transition from current state to new, standard is 4 = 400ms 157 //! \param transition Optional parameter to set the transition from current state to new, standard is 4 = 400ms
150 //! \return Bool that is true on success 158 //! \return Bool that is true on success
151 bool setColorTemperature(unsigned int mired, uint8_t transition = 4) 159 bool setColorTemperature(unsigned int mired, uint8_t transition = 4)
152 - { 160 + {
153 if (colorTemperatureStrategy) 161 if (colorTemperatureStrategy)
154 - {  
155 - return colorTemperatureStrategy->setColorTemperature(mired, transition, *this); 162 + {
  163 + return colorTemperatureStrategy->setColorTemperature(mired, transition, *this);
156 } 164 }
157 return false; 165 return false;
158 }; 166 };
159 167
160 - //! Function to set the color of this light with specified hue if the  
161 - //! light has a reference to a specific \ref ColorHueStrategy. 168 + //! \brief Function to set the color of this light with specified hue.
  169 + //!
  170 + //! Notice the color will only be set if the light has a reference to a specific \ref ColorHueStrategy.
162 //! The hue can range from 0 to 65535, whereas 65535 and 0 are red, 25500 is green and 46920 is blue. 171 //! The hue can range from 0 to 65535, whereas 65535 and 0 are red, 25500 is green and 46920 is blue.
163 //! \param hue uint16_t that specifies the hue 172 //! \param hue uint16_t that specifies the hue
164 //! \param transition Optional parameter to set the transition from current state to new, standard is 4 = 400ms 173 //! \param transition Optional parameter to set the transition from current state to new, standard is 4 = 400ms
@@ -172,8 +181,9 @@ public: @@ -172,8 +181,9 @@ public:
172 return false; 181 return false;
173 }; 182 };
174 183
175 - //! Function to set the saturation of color of this light with specified saturation if the  
176 - //! light has a reference to a specific \ref ColorHueStrategy. 184 + //! \brief Function to set the color of this light with specified saturation.
  185 + //!
  186 + //! Notice the color will only be set if the light has a reference to a specific \ref ColorHueStrategy.
177 //! The saturation can range from 0 to 254, whereas 0 is least saturated (white) and 254 is most saturated. 187 //! The saturation can range from 0 to 254, whereas 0 is least saturated (white) and 254 is most saturated.
178 //! \param sat uint8_t that specifies the saturation 188 //! \param sat uint8_t that specifies the saturation
179 //! \param transition Optional parameter to set the transition from current state to new, standard is 4 = 400ms 189 //! \param transition Optional parameter to set the transition from current state to new, standard is 4 = 400ms
@@ -187,8 +197,9 @@ public: @@ -187,8 +197,9 @@ public:
187 return false; 197 return false;
188 }; 198 };
189 199
190 - //! Function to set the color of this light with specified hue and saturation if the  
191 - //! light has a reference to a specific \ref ColorHueStrategy. 200 + //! \brief Function to set the color of this light with specified hue and saturation.
  201 + //!
  202 + //! Notice the color will only be set if the light has a reference to a specific \ref ColorHueStrategy.
192 //! \param hue uint16_t that specifies the hue 203 //! \param hue uint16_t that specifies the hue
193 //! \param sat uint8_t that specifies the saturation 204 //! \param sat uint8_t that specifies the saturation
194 //! \param transition Optional parameter to set the transition from current state to new, standard is 4 = 400ms. 205 //! \param transition Optional parameter to set the transition from current state to new, standard is 4 = 400ms.
@@ -202,8 +213,9 @@ public: @@ -202,8 +213,9 @@ public:
202 return false; 213 return false;
203 }; 214 };
204 215
205 - //! Function to set the color of this light in CIE with specified x y if the  
206 - //! light has a reference to a specific \ref ColorHueStrategy. 216 + //! \brief Function to set the color of this light in CIE with specified x y.
  217 + //!
  218 + //! Notice the color will only be set if the light has a reference to a specific \ref ColorHueStrategy.
207 //! The values of x and y are ranging from 0 to 1. 219 //! The values of x and y are ranging from 0 to 1.
208 //! \param x float that specifies the x coordinate in CIE 220 //! \param x float that specifies the x coordinate in CIE
209 //! \param y float that specifies the y coordinate in CIE 221 //! \param y float that specifies the y coordinate in CIE
@@ -218,8 +230,9 @@ public: @@ -218,8 +230,9 @@ public:
218 return false; 230 return false;
219 }; 231 };
220 232
221 - //! Function to set the color of this light with red green and blue values if the  
222 - //! light has a reference to a specific \ref ColorHueStrategy. 233 + //! \brief Function to set the color of this light with red green and blue values.
  234 + //!
  235 + //! Notice the color will only be set if the light has a reference to a specific \ref ColorHueStrategy.
223 //! The values of red, green and blue are ranging from 0 to 255. 236 //! The values of red, green and blue are ranging from 0 to 255.
224 //! \param r uint8_t that specifies the red color value 237 //! \param r uint8_t that specifies the red color value
225 //! \param g uint8_t that specifies the green color value 238 //! \param g uint8_t that specifies the green color value
@@ -235,13 +248,15 @@ public: @@ -235,13 +248,15 @@ public:
235 return false; 248 return false;
236 }; 249 };
237 250
238 - //! Function that lets the light perform one breath cycle. 251 + //! \brief Function that lets the light perform one breath cycle.
  252 + //!
  253 + //! Can be used for locating a light.
239 //! \return bool that is true on success 254 //! \return bool that is true on success
240 virtual bool alert(); 255 virtual bool alert();
241 256
242 - //! Function that lets the light perform one breath cycle in specified color temperature  
243 - //! if the light has a reference to a specific \ref ColorTemperatureStrategy.  
244 - //! It uses this_thread::sleep_for to accomodate for the time an \ref alert() needs. 257 + //! \brief Function that lets the light perform one breath cycle in specified color temperature.
  258 + //!
  259 + //! Notice the breath cylce will only be performed if the light has a reference to a specific \ref ColorTemperatureStrategy.
245 //! \param mired Color temperature in mired 260 //! \param mired Color temperature in mired
246 //! \return Bool that is true on success 261 //! \return Bool that is true on success
247 bool alertTemperature(unsigned int mired) 262 bool alertTemperature(unsigned int mired)
@@ -253,9 +268,9 @@ public: @@ -253,9 +268,9 @@ public:
253 return false; 268 return false;
254 }; 269 };
255 270
256 - //! Function that lets the light perform one breath cycle in specified color if the  
257 - //! light has a reference to a specific \ref ColorHueStrategy.  
258 - //! It uses this_thread::sleep_for to accomodate for the time an \ref alert() needs 271 + //! \brief Function that lets the light perform one breath cycle in specified color.
  272 + //!
  273 + //! Notice the breath cylce will only be performed if the light has a reference to a specific \ref ColorHueStrategy.
259 //! \param hue uint16_t that specifies the hue 274 //! \param hue uint16_t that specifies the hue
260 //! \param sat uint8_t that specifies the saturation 275 //! \param sat uint8_t that specifies the saturation
261 //! \return Bool that is true on success 276 //! \return Bool that is true on success
@@ -268,10 +283,10 @@ public: @@ -268,10 +283,10 @@ public:
268 return false; 283 return false;
269 }; 284 };
270 285
271 - //! Function that lets the light perform one breath cycle in specified color if the  
272 - //! light has a reference to a specific \ref ColorHueStrategy. 286 + //! \brief Function that lets the light perform one breath cycle in specified color.
  287 + //!
  288 + //! Notice the breath cylce will only be performed if the light has a reference to a specific \ref ColorHueStrategy.
273 //! The values of x and y are ranging from 0 to 1. 289 //! The values of x and y are ranging from 0 to 1.
274 - //! It uses this_thread::sleep_for to accomodate for the time an \ref alert() needs  
275 //! \param x float that specifies the x coordinate in CIE 290 //! \param x float that specifies the x coordinate in CIE
276 //! \param y float that specifies the y coordinate in CIE 291 //! \param y float that specifies the y coordinate in CIE
277 //! \return Bool that is true on success 292 //! \return Bool that is true on success
@@ -284,10 +299,10 @@ public: @@ -284,10 +299,10 @@ public:
284 return false; 299 return false;
285 }; 300 };
286 301
287 - //! Function that lets the light perform one breath cycle in specified color if the  
288 - //! light has a reference to a specific \ref ColorHueStrategy. 302 + //! \brief Function that lets the light perform one breath cycle in specified color.
  303 + //!
  304 + //! Notice the breath cylce will only be performed if the light has a reference to a specific \ref ColorHueStrategy.
289 //! The values of red, green and blue are ranging from 0 to 255. 305 //! The values of red, green and blue are ranging from 0 to 255.
290 - //! It uses this_thread::sleep_for to accomodate for the time an \ref alert() needs  
291 //! \param r uint8_t that specifies the red color value 306 //! \param r uint8_t that specifies the red color value
292 //! \param g uint8_t that specifies the green color value 307 //! \param g uint8_t that specifies the green color value
293 //! \param b uint8_t that specifies the blue color value 308 //! \param b uint8_t that specifies the blue color value
@@ -301,12 +316,13 @@ public: @@ -301,12 +316,13 @@ public:
301 return false; 316 return false;
302 }; 317 };
303 318
304 - //! Function to enable colorloop effect if the  
305 - //! light has a reference to a specific \ref ColorHueStrategy. 319 + //! \brief Function to turn colorloop effect on/off.
  320 + //!
  321 + //! Notice this function will only be performed light has a reference to a specific \ref ColorHueStrategy.
306 //! The colorloop effect will loop through all colors on current hue and saturation levels. 322 //! The colorloop effect will loop through all colors on current hue and saturation levels.
307 - //! Notice that none of the setter functions check whether this feature is enabled and  
308 - //! the colorloop can only be disabled with this function or by simply calling Off()/OffNoRefresh()  
309 - //! and then On()/OnNoRefresh(), so you could alternatively call Off() and 323 + //! Notice that none of the setter functions check whether this feature is enabled and
  324 + //! the colorloop can only be disabled with this function or by simply calling Off()/OffNoRefresh()
  325 + //! and then On()/OnNoRefresh(), so you could alternatively call Off() and
310 //! then use any of the setter functions. 326 //! then use any of the setter functions.
311 //! \param on bool that enables this feature when true and disables it when false 327 //! \param on bool that enables this feature when true and disables it when false
312 //! \return Bool that is true on success 328 //! \return Bool that is true on success
@@ -320,15 +336,17 @@ public: @@ -320,15 +336,17 @@ public:
320 }; 336 };
321 337
322 protected: 338 protected:
323 - //! protected ctor that is used by \ref Hue class. 339 + //! \brief Protected ctor that is used by \ref Hue class.
  340 + //!
324 //! \param ip String that specifies the ip of the Hue bridge 341 //! \param ip String that specifies the ip of the Hue bridge
325 //! \param username String that specifies the username used to control the bridge 342 //! \param username String that specifies the username used to control the bridge
326 //! \param id Integer that specifies the id of this light 343 //! \param id Integer that specifies the id of this light
327 //! 344 //!
328 //! leaves strategies unset 345 //! leaves strategies unset
329 HueLight(const std::string& ip, const std::string& username, int id); 346 HueLight(const std::string& ip, const std::string& username, int id);
330 -  
331 - //! protected ctor that is used by \ref Hue class, also sets strategies. 347 +
  348 + //! \brief Protected ctor that is used by \ref Hue class, also sets strategies.
  349 + //!
332 //! \param ip String that specifies the ip of the Hue bridge 350 //! \param ip String that specifies the ip of the Hue bridge
333 //! \param username String that specifies the username used to control the bridge 351 //! \param username String that specifies the username used to control the bridge
334 //! \param id Integer that specifies the id of this light 352 //! \param id Integer that specifies the id of this light
@@ -337,37 +355,43 @@ protected: @@ -337,37 +355,43 @@ protected:
337 //! \param colorHueStrategy Strategy for color hue/saturation. May be nullptr. 355 //! \param colorHueStrategy Strategy for color hue/saturation. May be nullptr.
338 HueLight(const std::string& ip, const std::string& username, int id, std::shared_ptr<const BrightnessStrategy> brightnessStrategy, std::shared_ptr<const ColorTemperatureStrategy> colorTempStrategy, std::shared_ptr<const ColorHueStrategy> colorHueStrategy); 356 HueLight(const std::string& ip, const std::string& username, int id, std::shared_ptr<const BrightnessStrategy> brightnessStrategy, std::shared_ptr<const ColorTemperatureStrategy> colorTempStrategy, std::shared_ptr<const ColorHueStrategy> colorHueStrategy);
339 357
340 - //! protected function that sets the brightness strategy which defines how  
341 - //! specific commands that deal with brightness control are executed 358 + //! \brief Protected function that sets the brightness strategy.
  359 + //!
  360 + //! The strategy defines how specific commands that deal with brightness control are executed
342 //! \param strat a strategy of type \ref BrightnessStrategy 361 //! \param strat a strategy of type \ref BrightnessStrategy
343 void setBrightnessStrategy(std::shared_ptr<const BrightnessStrategy> strat) { brightnessStrategy = std::move(strat); }; 362 void setBrightnessStrategy(std::shared_ptr<const BrightnessStrategy> strat) { brightnessStrategy = std::move(strat); };
344 363
345 - //! protected function that sets the colorTemperature strategy which defines how  
346 - //! specific commands that deal with colortemperature control are executed 364 + //! \brief Protected function that sets the colorTemperature strategy.
  365 + //!
  366 + //! The strategy defines how specific commands that deal with colortemperature control are executed
347 //! \param strat a strategy of type \ref ColorTemperatureStrategy 367 //! \param strat a strategy of type \ref ColorTemperatureStrategy
348 void setColorTemperatureStrategy(std::shared_ptr<const ColorTemperatureStrategy> strat) { colorTemperatureStrategy = std::move(strat); }; 368 void setColorTemperatureStrategy(std::shared_ptr<const ColorTemperatureStrategy> strat) { colorTemperatureStrategy = std::move(strat); };
349 369
350 - //! protected function that sets the colorHue strategy which defines how  
351 - //! specific commands that deal with color control are executed 370 + //! \brief Protected function that sets the colorHue strategy.
  371 + //!
  372 + //! The strategy defines how specific commands that deal with color control are executed
352 //! \param strat a strategy of type \ref ColorHueStrategy 373 //! \param strat a strategy of type \ref ColorHueStrategy
353 void setColorHueStrategy(std::shared_ptr<const ColorHueStrategy> strat) { colorHueStrategy = std::move(strat); }; 374 void setColorHueStrategy(std::shared_ptr<const ColorHueStrategy> strat) { colorHueStrategy = std::move(strat); };
354 375
355 - //! Function that turns the light on without refreshing its state. 376 + //! \brief Function that turns the light on without refreshing its state.
  377 + //!
356 //! \param transition Optional parameter to set the transition from current state to new standard is 4 = 400ms 378 //! \param transition Optional parameter to set the transition from current state to new standard is 4 = 400ms
357 //! \return Bool that is true on success 379 //! \return Bool that is true on success
358 bool OnNoRefresh(uint8_t transition = 4); 380 bool OnNoRefresh(uint8_t transition = 4);
359 381
360 - //! Function that turns the light off without refreshing its state. 382 + //! \brief Function that turns the light off without refreshing its state.
  383 + //!
361 //! \param transition Optional parameter to set the transition from current state to new standard is 4 = 400ms 384 //! \param transition Optional parameter to set the transition from current state to new standard is 4 = 400ms
362 //! \return Bool that is true on success 385 //! \return Bool that is true on success
363 bool OffNoRefresh(uint8_t transition = 4); 386 bool OffNoRefresh(uint8_t transition = 4);
364 387
365 - //! utility function to send a put request to the light. 388 + //! \brief Utility function to send a put request to the light.
  389 + //!
366 //! \throws std::runtime_error if the reply could not be parsed 390 //! \throws std::runtime_error if the reply could not be parsed
367 //! \return The parsed reply 391 //! \return The parsed reply
368 Json::Value SendPutRequest(const Json::Value& request); 392 Json::Value SendPutRequest(const Json::Value& request);
369 393
370 - //! virtual function that refreshes the \ref state of the light. 394 + //! \brief Virtual function that refreshes the \ref state of the light.
371 virtual void refreshState(); 395 virtual void refreshState();
372 396
373 protected: 397 protected:
hueplusplus/include/SimpleBrightnessStrategy.h
@@ -23,10 +23,16 @@ @@ -23,10 +23,16 @@
23 #include "BrightnessStrategy.h" 23 #include "BrightnessStrategy.h"
24 #include "HueLight.h" 24 #include "HueLight.h"
25 25
  26 +//! Class implementing the functions of BrightnessStrategy
26 class SimpleBrightnessStrategy : public BrightnessStrategy 27 class SimpleBrightnessStrategy : public BrightnessStrategy
27 { 28 {
28 public: 29 public:
  30 + //! \brief Function for changing a lights brightness with a specified transition.
  31 + //!
  32 + //! \param bri The brightness raning from 0 = off to 255 = fully lit
  33 + //! \param transition The time it takes to fade to the new brightness in multiples of 100ms, 4 = 400ms and should be seen as the default
  34 + //! \param light A reference of the light
29 bool setBrightness(unsigned int bri, uint8_t transition, HueLight& light) const; 35 bool setBrightness(unsigned int bri, uint8_t transition, HueLight& light) const;
30 }; 36 };
31 37
32 -#endif  
33 \ No newline at end of file 38 \ No newline at end of file
  39 +#endif
hueplusplus/include/SimpleColorHueStrategy.h
@@ -22,18 +22,85 @@ @@ -22,18 +22,85 @@
22 22
23 #include "HueLight.h" 23 #include "HueLight.h"
24 24
  25 +//! Class implementing the functions of ColorHueStrategy
25 class SimpleColorHueStrategy : public ColorHueStrategy 26 class SimpleColorHueStrategy : public ColorHueStrategy
26 { 27 {
27 public: 28 public:
  29 + //! \brief Function for changing a lights color in hue with a specified transition.
  30 + //!
  31 + //! The hue ranges from 0 to 65535, whereas 65535 and 0 are red, 25500 is green and 46920 is blue.
  32 + //! \param hue The hue of the color
  33 + //! \param transition The time it takes to fade to the new color in multiples of 100ms, 4 = 400ms and should be seen as the default
  34 + //! \param light A reference of the light
28 bool setColorHue(uint16_t hue, uint8_t transition, HueLight& light) const; 35 bool setColorHue(uint16_t hue, uint8_t transition, HueLight& light) const;
29 - bool setColorSaturation(uint8_t sat, uint8_t transition, HueLight& light) const; 36 + //! \brief Virtual function for changing a lights color in saturation with a specified transition.
  37 + //!
  38 + //! The saturation ranges from 0 to 254, whereas 0 is least saturated (white) and 254 is most saturated (vibrant).
  39 + //! \param sat The saturation of the color
  40 + //! \param transition The time it takes to fade to the new color in multiples of 100ms, 4 = 400ms and should be seen as the default
  41 + //! \param light A reference of the light
  42 + bool setColorSaturation(uint8_t sat, uint8_t transition, HueLight& light) const;
  43 + //! \brief Virtual function for changing a lights color in hue and saturation format with a specified transition.
  44 + //!
  45 + //! The hue ranges from 0 to 65535, whereas 65535 and 0 are red, 25500 is green and 46920 is blue.
  46 + //! The saturation ranges from 0 to 254, whereas 0 is least saturated (white) and 254 is most saturated (vibrant).
  47 + //! \param hue The hue of the color
  48 + //! \param sat The saturation of the color
  49 + //! \param transition The time it takes to fade to the new color in multiples of 100ms, 4 = 400ms and should be seen as the default
  50 + //! \param light A reference of the light
30 bool setColorHueSaturation(uint16_t hue, uint8_t sat, uint8_t transition, HueLight& light) const; 51 bool setColorHueSaturation(uint16_t hue, uint8_t sat, uint8_t transition, HueLight& light) const;
  52 + //! \brief Virtual function for changing a lights color in CIE format with a specified transition.
  53 + //!
  54 + //! \param x The x coordinate in CIE, ranging from 0 to 1
  55 + //! \param y The y coordinate in CIE, ranging from 0 to 1
  56 + //! \param transition The time it takes to fade to the new color in multiples of 100ms, 4 = 400ms and should be seen as the default
  57 + //! \param light A reference of the light
31 bool setColorXY(float x, float y, uint8_t transition, HueLight& light) const; 58 bool setColorXY(float x, float y, uint8_t transition, HueLight& light) const;
  59 + //! \brief Virtual function for changing a lights color in rgb format with a specified transition.
  60 + //!
  61 + //! Red, green and blue are ranging from 0 to 255.
  62 + //! \param r The red portion of the color
  63 + //! \param g The green portion of the color
  64 + //! \param b The blue portion of the color
  65 + //! \param transition The time it takes to fade to the new color in multiples of 100ms, 4 = 400ms and should be seen as the default
  66 + //! \param light A reference of the light
32 bool setColorRGB(uint8_t r, uint8_t g, uint8_t b, uint8_t transition, HueLight& light) const; 67 bool setColorRGB(uint8_t r, uint8_t g, uint8_t b, uint8_t transition, HueLight& light) const;
  68 + //! \brief Virtual function for turning on/off the color loop feature of a light.
  69 + //!
  70 + //! Can be theoretically set for any light, but it only works for lights that support this feature.
  71 + //! When this feature is activated the light will fade through every color on the current hue and saturation settings.
  72 + //! Notice that none of the setter functions check whether this feature is enabled and
  73 + //! the colorloop can only be disabled with this function or by simply calling Off()/OffNoRefresh()
  74 + //! and then On()/OnNoRefresh(), so you could alternatively call Off() and
  75 + //! then use any of the setter functions.
  76 + //! \param on Boolean to turn this feature on or off, true/1 for on and false/0 for off
  77 + //! \param light A reference of the light
33 bool setColorLoop(bool on, HueLight& light) const; 78 bool setColorLoop(bool on, HueLight& light) const;
  79 + //! \brief Virtual function that lets the light perform one breath cycle in the specified color.
  80 + //!
  81 + //! It uses this_thread::sleep_for to accomodate for the time an \ref HueLight::alert() needs
  82 + //! The hue ranges from 0 to 65535, whereas 65535 and 0 are red, 25500 is green and 46920 is blue.
  83 + //! The saturation ranges from 0 to 254, whereas 0 is least saturated (white) and 254 is most saturated (vibrant).
  84 + //! \param hue The hue of the color
  85 + //! \param sat The saturation of the color
  86 + //! \param light A reference of the light
34 bool alertHueSaturation(uint16_t hue, uint8_t sat, HueLight& light) const; 87 bool alertHueSaturation(uint16_t hue, uint8_t sat, HueLight& light) const;
  88 + //! \brief Virtual function that lets the light perform one breath cycle in the specified color.
  89 + //!
  90 + //! It uses this_thread::sleep_for to accomodate for the time an \ref HueLight::alert() needs
  91 + //! \param x The x coordinate in CIE, ranging from 0 to 1
  92 + //! \param y The y coordinate in CIE, ranging from 0 to 1
  93 + //! \param light A reference of the light
35 bool alertXY(float x, float y, HueLight& light) const; 94 bool alertXY(float x, float y, HueLight& light) const;
  95 + //! \brief Virtual function that lets the light perform one breath cycle in the specified color.
  96 + //!
  97 + //! It uses this_thread::sleep_for to accomodate for the time an \ref HueLight::alert() needs
  98 + //! Red, green and blue are ranging from 0 to 255.
  99 + //! \param r The red portion of the color
  100 + //! \param g The green portion of the color
  101 + //! \param b The blue portion of the color
  102 + //! \param light A reference of the light
36 bool alertRGB(uint8_t r, uint8_t g, uint8_t b, HueLight& light) const; 103 bool alertRGB(uint8_t r, uint8_t g, uint8_t b, HueLight& light) const;
37 }; 104 };
38 105
39 -#endif  
40 \ No newline at end of file 106 \ No newline at end of file
  107 +#endif
hueplusplus/include/SimpleColorTemperatureStrategy.h
@@ -23,11 +23,24 @@ @@ -23,11 +23,24 @@
23 #include "ColorTemperatureStrategy.h" 23 #include "ColorTemperatureStrategy.h"
24 #include "HueLight.h" 24 #include "HueLight.h"
25 25
  26 +//! Class implementing the functions of ColorTemperatureStrategy
26 class SimpleColorTemperatureStrategy : public ColorTemperatureStrategy 27 class SimpleColorTemperatureStrategy : public ColorTemperatureStrategy
27 { 28 {
28 public: 29 public:
  30 + //! \brief Function for changing a lights color temperature in mired with a specified transition.
  31 + //!
  32 + //! The color temperature in mired ranges from 153 to 500 whereas 153 is cold and 500 is warm.
  33 + //! \param mired The color temperature in mired
  34 + //! \param transition The time it takes to fade to the new color in multiples of 100ms, 4 = 400ms and should be seen as the default
  35 + //! \param light A reference of the light
29 bool setColorTemperature(unsigned int mired, uint8_t transition, HueLight& light) const; 36 bool setColorTemperature(unsigned int mired, uint8_t transition, HueLight& light) const;
  37 + //! \brief Function that lets the light perform one breath cycle in the specified color.
  38 + //!
  39 + //! It uses this_thread::sleep_for to accomodate for the time an \ref HueLight::alert() needs
  40 + //! The color temperature in mired ranges from 153 to 500 whereas 153 is cold and 500 is warm.
  41 + //! \param mired The color temperature in mired
  42 + //! \param light A reference of the light
30 bool alertTemperature(unsigned int mired, HueLight& light) const; 43 bool alertTemperature(unsigned int mired, HueLight& light) const;
31 }; 44 };
32 45
33 -#endif  
34 \ No newline at end of file 46 \ No newline at end of file
  47 +#endif
hueplusplus/include/UPnP.h
@@ -20,13 +20,19 @@ @@ -20,13 +20,19 @@
20 #ifndef _UPNP_H 20 #ifndef _UPNP_H
21 #define _UPNP_H 21 #define _UPNP_H
22 22
23 -#include <string> 23 +#include <string>
24 #include <vector> 24 #include <vector>
25 25
  26 +//! Class that looks for UPnP devices using an m-search package
26 class UPnP 27 class UPnP
27 { 28 {
28 public: 29 public:
  30 + //! \brief Function that searches for UPnP devices and returns all found ones.
  31 + //!
  32 + //! It does it by sending an m-search packet and waits for all responses.
  33 + //! Since responses can be received multiple times this function conveniently removes all duplicates.
  34 + //! \return A vector containing pairs of address and name of all found devices
29 std::vector<std::pair<std::string, std::string>> getDevices(); 35 std::vector<std::pair<std::string, std::string>> getDevices();
30 }; 36 };
31 37
32 -#endif  
33 \ No newline at end of file 38 \ No newline at end of file
  39 +#endif