_light_8h_source.html
72.3 KB
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>hueplusplus: include/hueplusplus/Light.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">hueplusplus
 <span id="projectnumber">1.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_e05b4b7707bd5f9fd045e8be02b17d0a.html">hueplusplus</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Light.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="_light_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#ifndef INCLUDE_HUEPLUSPLUS_HUE_LIGHT_H</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#define INCLUDE_HUEPLUSPLUS_HUE_LIGHT_H</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <memory></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="_a_p_i_cache_8h.html">APICache.h</a>"</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="_base_device_8h.html">BaseDevice.h</a>"</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="_brightness_strategy_8h.html">BrightnessStrategy.h</a>"</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="_color_hue_strategy_8h.html">ColorHueStrategy.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="_color_temperature_strategy_8h.html">ColorTemperatureStrategy.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="_hue_command_a_p_i_8h.html">HueCommandAPI.h</a>"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="_state_transaction_8h.html">StateTransaction.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "json/json.hpp"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">namespace </span><a class="code" href="namespacehueplusplus.html">hueplusplus</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43"> 42</a></span> <span class="keyword">enum class</span> <a class="code" href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43">ColorType</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43a0db45d2a4141101bdfe48e3314cfbca3">UNDEFINED</a>, </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43ab50339a10e1de285ac99d4c3990b8693">NONE</a>, </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43acb12f7ecdf09fc7c16dd11aa9c6fb9ed">GAMUT_A</a>, </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43aca225844aaa69efde18ab37ee40e76b4">GAMUT_B</a>, </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43af87f15ae56e1182d08c4d7e142007618">GAMUT_C</a>, </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43ab976538812ef6e3e5881e245d5fc3c76">TEMPERATURE</a>, </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43a189c02d10c499277b86e179440e71848">GAMUT_A_TEMPERATURE</a>, </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <a class="code" href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43acb8141a951a917a3dc3354b079e0b251">GAMUT_B_TEMPERATURE</a>, </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43ad1b983724d106f950a4d1eb0ecd2683c">GAMUT_C_TEMPERATURE</a>, </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43ae100b2c55540df23847244edf46da251">GAMUT_OTHER</a>, </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43a48e009dd5be70f354fd266843089718d">GAMUT_OTHER_TEMPERATURE</a> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> };</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html"> 60</a></span> <span class="keyword">class </span><a class="code" href="classhueplusplus_1_1_light.html">Light</a> : <span class="keyword">public</span> <a class="code" href="classhueplusplus_1_1_base_device.html">BaseDevice</a></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> {</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#ac8e9c6bbd43e33cbdd138af2f654342d"> 62</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classhueplusplus_1_1_light_factory.html">LightFactory</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a5babb7ef26b2bbb53c32f8b2378340dd"> 63</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classhueplusplus_1_1_simple_brightness_strategy.html">SimpleBrightnessStrategy</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a72883e32140a640d19b91e8f778be41f"> 64</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classhueplusplus_1_1_simple_color_hue_strategy.html">SimpleColorHueStrategy</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a9c3ccafa802cdb32c292c49f575148f4"> 65</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classhueplusplus_1_1_extended_color_hue_strategy.html">ExtendedColorHueStrategy</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a3dd11d27e5f374c0e8c88ebf6f24c7a0"> 66</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classhueplusplus_1_1_simple_color_temperature_strategy.html">SimpleColorTemperatureStrategy</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a39b9af853936935617664c3f7814d910"> 67</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classhueplusplus_1_1_extended_color_temperature_strategy.html">ExtendedColorTemperatureStrategy</a>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keyword">virtual</span> std::string getLuminaireUId() <span class="keyword">const</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keyword">virtual</span> <a class="code" href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43">ColorType</a> getColorType() <span class="keyword">const</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="structhueplusplus_1_1_color_gamut.html">ColorGamut</a> getColorGamut() <span class="keyword">const</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> on(uint8_t transition = 4);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> off(uint8_t transition = 4);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isOn();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isOn() <span class="keyword">const</span>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#af680548b576b57a713018a353d8c8a88"> 131</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classhueplusplus_1_1_light.html#af680548b576b57a713018a353d8c8a88">hasBrightnessControl</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> brightnessStrategy != <span class="keyword">nullptr</span>; };</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a4b013d5e1cff6bdc02f273d57fc0db22"> 138</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classhueplusplus_1_1_light.html#a4b013d5e1cff6bdc02f273d57fc0db22">hasTemperatureControl</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> colorTemperatureStrategy != <span class="keyword">nullptr</span>; };</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> </div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a661e357c5648ff574634a12b40680a6f"> 144</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classhueplusplus_1_1_light.html#a661e357c5648ff574634a12b40680a6f">hasColorControl</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> colorHueStrategy != <span class="keyword">nullptr</span>; };</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a103f8c3ab0a6bbf17839a9fd59049ce1"> 158</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classhueplusplus_1_1_light.html#a103f8c3ab0a6bbf17839a9fd59049ce1">setBrightness</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> bri, uint8_t transition = 4)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">if</span> (brightnessStrategy)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">return</span> brightnessStrategy->setBrightness(bri, transition, *<span class="keyword">this</span>);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  };</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> </div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a9c2acffeb03fe5e4ce90d88c319a3326"> 173</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classhueplusplus_1_1_light.html#a9c2acffeb03fe5e4ce90d88c319a3326">getBrightness</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordflow">if</span> (brightnessStrategy)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">return</span> brightnessStrategy->getBrightness(*<span class="keyword">this</span>);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  };</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#ace8771637e9489f5063c001b5caddac3"> 192</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classhueplusplus_1_1_light.html#ace8771637e9489f5063c001b5caddac3">getBrightness</a>()</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">if</span> (brightnessStrategy)</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">return</span> brightnessStrategy->getBrightness(*<span class="keyword">this</span>);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  };</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a5f5b8b411e96493c82f4f392d3efe932"> 213</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classhueplusplus_1_1_light.html#a5f5b8b411e96493c82f4f392d3efe932">setColorTemperature</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mired, uint8_t transition = 4)</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">if</span> (colorTemperatureStrategy)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">return</span> colorTemperatureStrategy->setColorTemperature(mired, transition, *<span class="keyword">this</span>);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  };</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#aa594a5ef3f74f4a67b334a51b953cef3"> 231</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classhueplusplus_1_1_light.html#aa594a5ef3f74f4a67b334a51b953cef3">getColorTemperature</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordflow">if</span> (colorTemperatureStrategy)</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">return</span> colorTemperatureStrategy->getColorTemperature(*<span class="keyword">this</span>);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  };</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#aac4924bb706d4a7548ad8dbb47a6b9cf"> 252</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classhueplusplus_1_1_light.html#aac4924bb706d4a7548ad8dbb47a6b9cf">getColorTemperature</a>()</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">if</span> (colorTemperatureStrategy)</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">return</span> colorTemperatureStrategy->getColorTemperature(*<span class="keyword">this</span>);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  };</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> </div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a0c50bf851bf76150d8e37b9bf0ba47a1"> 273</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classhueplusplus_1_1_light.html#a0c50bf851bf76150d8e37b9bf0ba47a1">setColorHue</a>(uint16_t <a class="code" href="namespacehueplusplus.html">hue</a>, uint8_t transition = 4)</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordflow">if</span> (colorHueStrategy)</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">return</span> colorHueStrategy->setColorHue(hue, transition, *<span class="keyword">this</span>);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  }</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  };</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> </div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a0db3f274671a9f2246708a0d3f8b7cf3"> 294</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classhueplusplus_1_1_light.html#a0db3f274671a9f2246708a0d3f8b7cf3">setColorSaturation</a>(uint8_t sat, uint8_t transition = 4)</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">if</span> (colorHueStrategy)</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">return</span> colorHueStrategy->setColorSaturation(sat, transition, *<span class="keyword">this</span>);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  };</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a378ef834d9939ed7c4835e62f506d9b1"> 315</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classhueplusplus_1_1_light.html#a378ef834d9939ed7c4835e62f506d9b1">setColorHueSaturation</a>(<span class="keyword">const</span> <a class="code" href="structhueplusplus_1_1_hue_saturation.html">HueSaturation</a>& hueSat, uint8_t transition = 4)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">if</span> (colorHueStrategy)</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  {</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">return</span> colorHueStrategy->setColorHueSaturation(hueSat, transition, *<span class="keyword">this</span>);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  };</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#ad95677b99a9cde2027789bc42c3357a3"> 335</a></span>  <span class="keyword">virtual</span> <a class="code" href="structhueplusplus_1_1_hue_saturation.html">HueSaturation</a> <a class="code" href="classhueplusplus_1_1_light.html#ad95677b99a9cde2027789bc42c3357a3">getColorHueSaturation</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">if</span> (colorHueStrategy)</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">return</span> colorHueStrategy->getColorHueSaturation(*<span class="keyword">this</span>);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordflow">return</span> {};</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  };</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> </div><div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a964f95119071333b43927b90bfaea91d"> 355</a></span>  <span class="keyword">virtual</span> <a class="code" href="structhueplusplus_1_1_hue_saturation.html">HueSaturation</a> <a class="code" href="classhueplusplus_1_1_light.html#a964f95119071333b43927b90bfaea91d">getColorHueSaturation</a>()</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  {</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keywordflow">if</span> (colorHueStrategy)</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keywordflow">return</span> colorHueStrategy->getColorHueSaturation(*<span class="keyword">this</span>);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="keywordflow">return</span> {};</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  };</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div><div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#aa2f35a51520f91875522b944985e757c"> 375</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classhueplusplus_1_1_light.html#aa2f35a51520f91875522b944985e757c">setColorXY</a>(<span class="keyword">const</span> <a class="code" href="structhueplusplus_1_1_x_y_brightness.html">XYBrightness</a>& xy, uint8_t transition = 4)</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  {</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordflow">if</span> (colorHueStrategy)</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  {</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">return</span> colorHueStrategy->setColorXY(xy, transition, *<span class="keyword">this</span>);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  }</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  };</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div><div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a1ea91616036e3ba59b4590f69d1fc8bd"> 390</a></span>  <span class="keyword">virtual</span> <a class="code" href="structhueplusplus_1_1_x_y_brightness.html">XYBrightness</a> <a class="code" href="classhueplusplus_1_1_light.html#a1ea91616036e3ba59b4590f69d1fc8bd">getColorXY</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">if</span> (colorHueStrategy)</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">return</span> colorHueStrategy->getColorXY(*<span class="keyword">this</span>);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">return</span> {};</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  };</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div><div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a41ea854f1fb0331c7bf8c8595ef9e443"> 409</a></span>  <span class="keyword">virtual</span> <a class="code" href="structhueplusplus_1_1_x_y_brightness.html">XYBrightness</a> <a class="code" href="classhueplusplus_1_1_light.html#a41ea854f1fb0331c7bf8c8595ef9e443">getColorXY</a>()</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">if</span> (colorHueStrategy)</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  {</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keywordflow">return</span> colorHueStrategy->getColorXY(*<span class="keyword">this</span>);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  }</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keywordflow">return</span> {};</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  }</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span> </div><div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a45c57a522e5785729fa7f557bf8591e3"> 431</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classhueplusplus_1_1_light.html#a45c57a522e5785729fa7f557bf8591e3">setColorRGB</a>(<span class="keyword">const</span> <a class="code" href="structhueplusplus_1_1_r_g_b.html">RGB</a>& rgb, uint8_t transition = 4)</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  {</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <span class="keywordflow">if</span> (colorHueStrategy)</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">return</span> colorHueStrategy->setColorXY(rgb.<a class="code" href="structhueplusplus_1_1_r_g_b.html#a97181e813bb57e23bf9c5d79229b2410">toXY</a>(getColorGamut()), transition, *<span class="keyword">this</span>);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  }</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  }</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span> </div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> alert();</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span> </div><div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#ad21d944fb0054b25455338e8bf2fc4d2"> 461</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classhueplusplus_1_1_light.html#ad21d944fb0054b25455338e8bf2fc4d2">alertTemperature</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> mired)</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  {</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">if</span> (colorTemperatureStrategy)</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  {</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keywordflow">return</span> colorTemperatureStrategy->alertTemperature(mired, *<span class="keyword">this</span>);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  }</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  }</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span> </div><div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a4a32fef56140dccb003516842fe958f8"> 481</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classhueplusplus_1_1_light.html#a4a32fef56140dccb003516842fe958f8">alertHueSaturation</a>(<span class="keyword">const</span> <a class="code" href="structhueplusplus_1_1_hue_saturation.html">HueSaturation</a>& hueSat)</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  {</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keywordflow">if</span> (colorHueStrategy)</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  {</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keywordflow">return</span> colorHueStrategy->alertHueSaturation(hueSat, *<span class="keyword">this</span>);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  }</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a0ec39bced79c49e31d236210392e6c38"> 501</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classhueplusplus_1_1_light.html#a0ec39bced79c49e31d236210392e6c38">alertXY</a>(<span class="keyword">const</span> <a class="code" href="structhueplusplus_1_1_x_y_brightness.html">XYBrightness</a>& xy)</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  {</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keywordflow">if</span> (colorHueStrategy)</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="keywordflow">return</span> colorHueStrategy->alertXY(xy, *<span class="keyword">this</span>);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  }</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  }</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span> </div><div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#ace958475e37b6273da1a47395076156d"> 525</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classhueplusplus_1_1_light.html#ace958475e37b6273da1a47395076156d">setColorLoop</a>(<span class="keywordtype">bool</span> on)</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  {</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keywordflow">if</span> (colorHueStrategy)</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  {</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="keywordflow">return</span> colorHueStrategy->setColorLoop(on, *<span class="keyword">this</span>);</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  }</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  }</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span> </div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keyword">virtual</span> <a class="code" href="classhueplusplus_1_1_state_transaction.html">StateTransaction</a> transaction();</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span> </div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> </div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <a class="code" href="classhueplusplus_1_1_light.html">Light</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keyword">const</span> <a class="code" href="classhueplusplus_1_1_hue_command_a_p_i.html">HueCommandAPI</a>& commands);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span> </div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <a class="code" href="classhueplusplus_1_1_light.html">Light</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keyword">const</span> std::shared_ptr<APICache>& baseCache);</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span> </div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <a class="code" href="classhueplusplus_1_1_light.html">Light</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keyword">const</span> <a class="code" href="classhueplusplus_1_1_hue_command_a_p_i.html">HueCommandAPI</a>& commands, std::shared_ptr<const BrightnessStrategy> brightnessStrategy,</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  std::shared_ptr<const ColorTemperatureStrategy> colorTempStrategy,</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  std::shared_ptr<const ColorHueStrategy> colorHueStrategy, std::chrono::steady_clock::duration refreshDuration,</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keyword">const</span> nlohmann::json& currentState);</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span> </div><div class="line"><a name="l00588"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#aed932e5106c7dd16c716514a35554a56"> 588</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classhueplusplus_1_1_light.html#aed932e5106c7dd16c716514a35554a56">setBrightnessStrategy</a>(std::shared_ptr<const BrightnessStrategy> strat)</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  {</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  brightnessStrategy = std::move(strat);</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  };</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span> </div><div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a1427acdc4429be82f9a2071bdcb991b1"> 598</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classhueplusplus_1_1_light.html#a1427acdc4429be82f9a2071bdcb991b1">setColorTemperatureStrategy</a>(std::shared_ptr<const ColorTemperatureStrategy> strat)</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  {</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  colorTemperatureStrategy = std::move(strat);</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  };</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span> </div><div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a6b1291f0c5e6e41be11c7908ea1e77db"> 607</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classhueplusplus_1_1_light.html#a6b1291f0c5e6e41be11c7908ea1e77db">setColorHueStrategy</a>(std::shared_ptr<const ColorHueStrategy> strat)</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  {</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  colorHueStrategy = std::move(strat);</div><div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a7f504e827b158c81e9ca3c57f158ae3b"> 610</a></span>  };</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span> </div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <a class="code" href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43">ColorType</a> <a class="code" href="classhueplusplus_1_1_light.html#a7f504e827b158c81e9ca3c57f158ae3b">colorType</a>; </div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span> </div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  std::shared_ptr<const BrightnessStrategy></div><div class="line"><a name="l00616"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#af9948baaf52a9ce2ed0f145368492873"> 616</a></span>  <a class="code" href="classhueplusplus_1_1_light.html#af9948baaf52a9ce2ed0f145368492873">brightnessStrategy</a>; </div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  std::shared_ptr<const ColorTemperatureStrategy></div><div class="line"><a name="l00618"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#ac0c64d4bdaa4a26a3da35dae112101d1"> 618</a></span>  <a class="code" href="classhueplusplus_1_1_light.html#ac0c64d4bdaa4a26a3da35dae112101d1">colorTemperatureStrategy</a>; </div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  std::shared_ptr<const ColorHueStrategy></div><div class="line"><a name="l00620"></a><span class="lineno"><a class="line" href="classhueplusplus_1_1_light.html#a58a030711463559c249e26c85e8847eb"> 620</a></span>  <a class="code" href="classhueplusplus_1_1_light.html#a58a030711463559c249e26c85e8847eb">colorHueStrategy</a>; </div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span> };</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span> } <span class="comment">// namespace hueplusplus</span></div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span> </div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="preprocessor">#endif</span></div><div class="ttc" id="classhueplusplus_1_1_light_html_a4b013d5e1cff6bdc02f273d57fc0db22"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a4b013d5e1cff6bdc02f273d57fc0db22">hueplusplus::Light::hasTemperatureControl</a></div><div class="ttdeci">virtual bool hasTemperatureControl() const</div><div class="ttdoc">Const function to check whether this light has color temperature control. </div><div class="ttdef"><b>Definition:</b> Light.h:138</div></div>
<div class="ttc" id="namespacehueplusplus_html_aa4ee261126f0bc8edc07e67bc811dc43"><div class="ttname"><a href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43">hueplusplus::ColorType</a></div><div class="ttdeci">ColorType</div><div class="ttdoc">enum that specifies the color type of all HueLights </div><div class="ttdef"><b>Definition:</b> Light.h:42</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a45c57a522e5785729fa7f557bf8591e3"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a45c57a522e5785729fa7f557bf8591e3">hueplusplus::Light::setColorRGB</a></div><div class="ttdeci">virtual bool setColorRGB(const RGB &rgb, uint8_t transition=4)</div><div class="ttdoc">Function to set the color of this light with red green and blue values. </div><div class="ttdef"><b>Definition:</b> Light.h:431</div></div>
<div class="ttc" id="namespacehueplusplus_html_aa4ee261126f0bc8edc07e67bc811dc43a189c02d10c499277b86e179440e71848"><div class="ttname"><a href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43a189c02d10c499277b86e179440e71848">hueplusplus::ColorType::GAMUT_A_TEMPERATURE</a></div><div class="ttdoc">light uses Gamut A and has color temperature control </div></div>
<div class="ttc" id="classhueplusplus_1_1_hue_command_a_p_i_html"><div class="ttname"><a href="classhueplusplus_1_1_hue_command_a_p_i.html">hueplusplus::HueCommandAPI</a></div><div class="ttdef"><b>Definition:</b> HueCommandAPI.h:37</div></div>
<div class="ttc" id="structhueplusplus_1_1_r_g_b_html"><div class="ttname"><a href="structhueplusplus_1_1_r_g_b.html">hueplusplus::RGB</a></div><div class="ttdoc">Color in RGB. </div><div class="ttdef"><b>Definition:</b> ColorUnits.h:109</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a6b1291f0c5e6e41be11c7908ea1e77db"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a6b1291f0c5e6e41be11c7908ea1e77db">hueplusplus::Light::setColorHueStrategy</a></div><div class="ttdeci">virtual void setColorHueStrategy(std::shared_ptr< const ColorHueStrategy > strat)</div><div class="ttdoc">Protected function that sets the colorHue strategy. </div><div class="ttdef"><b>Definition:</b> Light.h:607</div></div>
<div class="ttc" id="namespacehueplusplus_html_aa4ee261126f0bc8edc07e67bc811dc43a48e009dd5be70f354fd266843089718d"><div class="ttname"><a href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43a48e009dd5be70f354fd266843089718d">hueplusplus::ColorType::GAMUT_OTHER_TEMPERATURE</a></div><div class="ttdoc">light uses capabilities to specify a different gamut and has color temperature control ...</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a378ef834d9939ed7c4835e62f506d9b1"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a378ef834d9939ed7c4835e62f506d9b1">hueplusplus::Light::setColorHueSaturation</a></div><div class="ttdeci">virtual bool setColorHueSaturation(const HueSaturation &hueSat, uint8_t transition=4)</div><div class="ttdoc">Function to set the color of this light with specified hue and saturation. </div><div class="ttdef"><b>Definition:</b> Light.h:315</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a58a030711463559c249e26c85e8847eb"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a58a030711463559c249e26c85e8847eb">hueplusplus::Light::colorHueStrategy</a></div><div class="ttdeci">std::shared_ptr< const ColorHueStrategy > colorHueStrategy</div><div class="ttdoc">holds a reference to the strategy that handles all color commands </div><div class="ttdef"><b>Definition:</b> Light.h:620</div></div>
<div class="ttc" id="namespacehueplusplus_html_aa4ee261126f0bc8edc07e67bc811dc43ab976538812ef6e3e5881e245d5fc3c76"><div class="ttname"><a href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43ab976538812ef6e3e5881e245d5fc3c76">hueplusplus::ColorType::TEMPERATURE</a></div><div class="ttdoc">light has color temperature control </div></div>
<div class="ttc" id="classhueplusplus_1_1_extended_color_temperature_strategy_html"><div class="ttname"><a href="classhueplusplus_1_1_extended_color_temperature_strategy.html">hueplusplus::ExtendedColorTemperatureStrategy</a></div><div class="ttdoc">Class implementing the functions of ColorTemperatureStrategy. </div><div class="ttdef"><b>Definition:</b> ExtendedColorTemperatureStrategy.h:32</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a661e357c5648ff574634a12b40680a6f"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a661e357c5648ff574634a12b40680a6f">hueplusplus::Light::hasColorControl</a></div><div class="ttdeci">virtual bool hasColorControl() const</div><div class="ttdoc">Connst function to check whether this light has full color control. </div><div class="ttdef"><b>Definition:</b> Light.h:144</div></div>
<div class="ttc" id="namespacehueplusplus_html"><div class="ttname"><a href="namespacehueplusplus.html">hueplusplus</a></div><div class="ttdoc">Namespace for the hueplusplus library. </div><div class="ttdef"><b>Definition:</b> Action.h:27</div></div>
<div class="ttc" id="_color_temperature_strategy_8h_html"><div class="ttname"><a href="_color_temperature_strategy_8h.html">ColorTemperatureStrategy.h</a></div></div>
<div class="ttc" id="namespacehueplusplus_html_aa4ee261126f0bc8edc07e67bc811dc43ad1b983724d106f950a4d1eb0ecd2683c"><div class="ttname"><a href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43ad1b983724d106f950a4d1eb0ecd2683c">hueplusplus::ColorType::GAMUT_C_TEMPERATURE</a></div><div class="ttdoc">light uses Gamut C and has color temperature control </div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_ad21d944fb0054b25455338e8bf2fc4d2"><div class="ttname"><a href="classhueplusplus_1_1_light.html#ad21d944fb0054b25455338e8bf2fc4d2">hueplusplus::Light::alertTemperature</a></div><div class="ttdeci">virtual bool alertTemperature(unsigned int mired)</div><div class="ttdoc">Function that lets the light perform one breath cycle in specified color temperature. </div><div class="ttdef"><b>Definition:</b> Light.h:461</div></div>
<div class="ttc" id="namespacehueplusplus_html_aa4ee261126f0bc8edc07e67bc811dc43a0db45d2a4141101bdfe48e3314cfbca3"><div class="ttname"><a href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43a0db45d2a4141101bdfe48e3314cfbca3">hueplusplus::ColorType::UNDEFINED</a></div><div class="ttdoc">ColorType for this light is unknown or undefined. </div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_aac4924bb706d4a7548ad8dbb47a6b9cf"><div class="ttname"><a href="classhueplusplus_1_1_light.html#aac4924bb706d4a7548ad8dbb47a6b9cf">hueplusplus::Light::getColorTemperature</a></div><div class="ttdeci">virtual unsigned int getColorTemperature()</div><div class="ttdoc">Function that returns the current color temperature of the light. </div><div class="ttdef"><b>Definition:</b> Light.h:252</div></div>
<div class="ttc" id="namespacehueplusplus_html_aa4ee261126f0bc8edc07e67bc811dc43acb12f7ecdf09fc7c16dd11aa9c6fb9ed"><div class="ttname"><a href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43acb12f7ecdf09fc7c16dd11aa9c6fb9ed">hueplusplus::ColorType::GAMUT_A</a></div><div class="ttdoc">light uses Gamut A </div></div>
<div class="ttc" id="_base_device_8h_html"><div class="ttname"><a href="_base_device_8h.html">BaseDevice.h</a></div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a0ec39bced79c49e31d236210392e6c38"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a0ec39bced79c49e31d236210392e6c38">hueplusplus::Light::alertXY</a></div><div class="ttdeci">virtual bool alertXY(const XYBrightness &xy)</div><div class="ttdoc">Function that lets the light perform one breath cycle in specified color. </div><div class="ttdef"><b>Definition:</b> Light.h:501</div></div>
<div class="ttc" id="classhueplusplus_1_1_simple_color_hue_strategy_html"><div class="ttname"><a href="classhueplusplus_1_1_simple_color_hue_strategy.html">hueplusplus::SimpleColorHueStrategy</a></div><div class="ttdef"><b>Definition:</b> SimpleColorHueStrategy.h:34</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a9c2acffeb03fe5e4ce90d88c319a3326"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a9c2acffeb03fe5e4ce90d88c319a3326">hueplusplus::Light::getBrightness</a></div><div class="ttdeci">virtual unsigned int getBrightness() const</div><div class="ttdoc">Const function that returns the brightness of this light. </div><div class="ttdef"><b>Definition:</b> Light.h:173</div></div>
<div class="ttc" id="namespacehueplusplus_html_aa4ee261126f0bc8edc07e67bc811dc43aca225844aaa69efde18ab37ee40e76b4"><div class="ttname"><a href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43aca225844aaa69efde18ab37ee40e76b4">hueplusplus::ColorType::GAMUT_B</a></div><div class="ttdoc">light uses Gamut B </div></div>
<div class="ttc" id="namespacehueplusplus_html_aa4ee261126f0bc8edc07e67bc811dc43ab50339a10e1de285ac99d4c3990b8693"><div class="ttname"><a href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43ab50339a10e1de285ac99d4c3990b8693">hueplusplus::ColorType::NONE</a></div><div class="ttdoc">light has no specific ColorType </div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_af9948baaf52a9ce2ed0f145368492873"><div class="ttname"><a href="classhueplusplus_1_1_light.html#af9948baaf52a9ce2ed0f145368492873">hueplusplus::Light::brightnessStrategy</a></div><div class="ttdeci">std::shared_ptr< const BrightnessStrategy > brightnessStrategy</div><div class="ttdoc">holds a reference to the strategy that handles brightness commands </div><div class="ttdef"><b>Definition:</b> Light.h:616</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a964f95119071333b43927b90bfaea91d"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a964f95119071333b43927b90bfaea91d">hueplusplus::Light::getColorHueSaturation</a></div><div class="ttdeci">virtual HueSaturation getColorHueSaturation()</div><div class="ttdoc">Function that returns the current color of the light as hue and saturation. </div><div class="ttdef"><b>Definition:</b> Light.h:355</div></div>
<div class="ttc" id="classhueplusplus_1_1_base_device_html"><div class="ttname"><a href="classhueplusplus_1_1_base_device.html">hueplusplus::BaseDevice</a></div><div class="ttdoc">Base class for physical devices connected to the bridge (sensor or light). </div><div class="ttdef"><b>Definition:</b> BaseDevice.h:35</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a41ea854f1fb0331c7bf8c8595ef9e443"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a41ea854f1fb0331c7bf8c8595ef9e443">hueplusplus::Light::getColorXY</a></div><div class="ttdeci">virtual XYBrightness getColorXY()</div><div class="ttdoc">Function that returns the current color of the light as xy. </div><div class="ttdef"><b>Definition:</b> Light.h:409</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_factory_html"><div class="ttname"><a href="classhueplusplus_1_1_light_factory.html">hueplusplus::LightFactory</a></div><div class="ttdef"><b>Definition:</b> HueDeviceTypes.h:33</div></div>
<div class="ttc" id="_state_transaction_8h_html"><div class="ttname"><a href="_state_transaction_8h.html">StateTransaction.h</a></div></div>
<div class="ttc" id="_hue_command_a_p_i_8h_html"><div class="ttname"><a href="_hue_command_a_p_i_8h.html">HueCommandAPI.h</a></div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_af680548b576b57a713018a353d8c8a88"><div class="ttname"><a href="classhueplusplus_1_1_light.html#af680548b576b57a713018a353d8c8a88">hueplusplus::Light::hasBrightnessControl</a></div><div class="ttdeci">virtual bool hasBrightnessControl() const</div><div class="ttdoc">Const function to check whether this light has brightness control. </div><div class="ttdef"><b>Definition:</b> Light.h:131</div></div>
<div class="ttc" id="namespacehueplusplus_html_aa4ee261126f0bc8edc07e67bc811dc43af87f15ae56e1182d08c4d7e142007618"><div class="ttname"><a href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43af87f15ae56e1182d08c4d7e142007618">hueplusplus::ColorType::GAMUT_C</a></div><div class="ttdoc">light uses Gamut C </div></div>
<div class="ttc" id="structhueplusplus_1_1_x_y_brightness_html"><div class="ttname"><a href="structhueplusplus_1_1_x_y_brightness.html">hueplusplus::XYBrightness</a></div><div class="ttdoc">Color and brightness in CIE. </div><div class="ttdef"><b>Definition:</b> ColorUnits.h:62</div></div>
<div class="ttc" id="classhueplusplus_1_1_simple_brightness_strategy_html"><div class="ttname"><a href="classhueplusplus_1_1_simple_brightness_strategy.html">hueplusplus::SimpleBrightnessStrategy</a></div><div class="ttdoc">Class implementing the functions of BrightnessStrategy. </div><div class="ttdef"><b>Definition:</b> SimpleBrightnessStrategy.h:32</div></div>
<div class="ttc" id="namespacehueplusplus_html_aa4ee261126f0bc8edc07e67bc811dc43ae100b2c55540df23847244edf46da251"><div class="ttname"><a href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43ae100b2c55540df23847244edf46da251">hueplusplus::ColorType::GAMUT_OTHER</a></div><div class="ttdoc">light uses capabilities to specify a different gamut </div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a5f5b8b411e96493c82f4f392d3efe932"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a5f5b8b411e96493c82f4f392d3efe932">hueplusplus::Light::setColorTemperature</a></div><div class="ttdeci">virtual bool setColorTemperature(unsigned int mired, uint8_t transition=4)</div><div class="ttdoc">Function that sets the color temperature of this light in mired. </div><div class="ttdef"><b>Definition:</b> Light.h:213</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a0db3f274671a9f2246708a0d3f8b7cf3"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a0db3f274671a9f2246708a0d3f8b7cf3">hueplusplus::Light::setColorSaturation</a></div><div class="ttdeci">virtual bool setColorSaturation(uint8_t sat, uint8_t transition=4)</div><div class="ttdoc">Function to set the color of this light with specified saturation. </div><div class="ttdef"><b>Definition:</b> Light.h:294</div></div>
<div class="ttc" id="classhueplusplus_1_1_extended_color_hue_strategy_html"><div class="ttname"><a href="classhueplusplus_1_1_extended_color_hue_strategy.html">hueplusplus::ExtendedColorHueStrategy</a></div><div class="ttdef"><b>Definition:</b> ExtendedColorHueStrategy.h:34</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a7f504e827b158c81e9ca3c57f158ae3b"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a7f504e827b158c81e9ca3c57f158ae3b">hueplusplus::Light::colorType</a></div><div class="ttdeci">ColorType colorType</div><div class="ttdoc">holds the ColorType of the light </div><div class="ttdef"><b>Definition:</b> Light.h:610</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a4a32fef56140dccb003516842fe958f8"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a4a32fef56140dccb003516842fe958f8">hueplusplus::Light::alertHueSaturation</a></div><div class="ttdeci">virtual bool alertHueSaturation(const HueSaturation &hueSat)</div><div class="ttdoc">Function that lets the light perform one breath cycle in specified color. </div><div class="ttdef"><b>Definition:</b> Light.h:481</div></div>
<div class="ttc" id="classhueplusplus_1_1_state_transaction_html"><div class="ttname"><a href="classhueplusplus_1_1_state_transaction.html">hueplusplus::StateTransaction</a></div><div class="ttdoc">Transaction class which can be used for either light or group state. </div><div class="ttdef"><b>Definition:</b> StateTransaction.h:61</div></div>
<div class="ttc" id="_a_p_i_cache_8h_html"><div class="ttname"><a href="_a_p_i_cache_8h.html">APICache.h</a></div></div>
<div class="ttc" id="_color_hue_strategy_8h_html"><div class="ttname"><a href="_color_hue_strategy_8h.html">ColorHueStrategy.h</a></div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a103f8c3ab0a6bbf17839a9fd59049ce1"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a103f8c3ab0a6bbf17839a9fd59049ce1">hueplusplus::Light::setBrightness</a></div><div class="ttdeci">virtual bool setBrightness(unsigned int bri, uint8_t transition=4)</div><div class="ttdoc">Function that sets the brightness of this light. </div><div class="ttdef"><b>Definition:</b> Light.h:158</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a1427acdc4429be82f9a2071bdcb991b1"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a1427acdc4429be82f9a2071bdcb991b1">hueplusplus::Light::setColorTemperatureStrategy</a></div><div class="ttdeci">virtual void setColorTemperatureStrategy(std::shared_ptr< const ColorTemperatureStrategy > strat)</div><div class="ttdoc">Protected function that sets the colorTemperature strategy. </div><div class="ttdef"><b>Definition:</b> Light.h:598</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html"><div class="ttname"><a href="classhueplusplus_1_1_light.html">hueplusplus::Light</a></div><div class="ttdoc">Class for Hue Light fixtures. </div><div class="ttdef"><b>Definition:</b> Light.h:60</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_aa594a5ef3f74f4a67b334a51b953cef3"><div class="ttname"><a href="classhueplusplus_1_1_light.html#aa594a5ef3f74f4a67b334a51b953cef3">hueplusplus::Light::getColorTemperature</a></div><div class="ttdeci">virtual unsigned int getColorTemperature() const</div><div class="ttdoc">Const function that returns the current color temperature of the light. </div><div class="ttdef"><b>Definition:</b> Light.h:231</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_ace8771637e9489f5063c001b5caddac3"><div class="ttname"><a href="classhueplusplus_1_1_light.html#ace8771637e9489f5063c001b5caddac3">hueplusplus::Light::getBrightness</a></div><div class="ttdeci">virtual unsigned int getBrightness()</div><div class="ttdoc">Function that returns the brightness of this light. </div><div class="ttdef"><b>Definition:</b> Light.h:192</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a1ea91616036e3ba59b4590f69d1fc8bd"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a1ea91616036e3ba59b4590f69d1fc8bd">hueplusplus::Light::getColorXY</a></div><div class="ttdeci">virtual XYBrightness getColorXY() const</div><div class="ttdoc">Const function that returns the current color of the light as xy. </div><div class="ttdef"><b>Definition:</b> Light.h:390</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_a0c50bf851bf76150d8e37b9bf0ba47a1"><div class="ttname"><a href="classhueplusplus_1_1_light.html#a0c50bf851bf76150d8e37b9bf0ba47a1">hueplusplus::Light::setColorHue</a></div><div class="ttdeci">virtual bool setColorHue(uint16_t hue, uint8_t transition=4)</div><div class="ttdoc">Function to set the color of this light with specified hue. </div><div class="ttdef"><b>Definition:</b> Light.h:273</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_ac0c64d4bdaa4a26a3da35dae112101d1"><div class="ttname"><a href="classhueplusplus_1_1_light.html#ac0c64d4bdaa4a26a3da35dae112101d1">hueplusplus::Light::colorTemperatureStrategy</a></div><div class="ttdeci">std::shared_ptr< const ColorTemperatureStrategy > colorTemperatureStrategy</div><div class="ttdoc">holds a reference to the strategy that handles colortemperature commands </div><div class="ttdef"><b>Definition:</b> Light.h:618</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_aed932e5106c7dd16c716514a35554a56"><div class="ttname"><a href="classhueplusplus_1_1_light.html#aed932e5106c7dd16c716514a35554a56">hueplusplus::Light::setBrightnessStrategy</a></div><div class="ttdeci">virtual void setBrightnessStrategy(std::shared_ptr< const BrightnessStrategy > strat)</div><div class="ttdoc">Protected function that sets the brightness strategy. </div><div class="ttdef"><b>Definition:</b> Light.h:588</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_aa2f35a51520f91875522b944985e757c"><div class="ttname"><a href="classhueplusplus_1_1_light.html#aa2f35a51520f91875522b944985e757c">hueplusplus::Light::setColorXY</a></div><div class="ttdeci">virtual bool setColorXY(const XYBrightness &xy, uint8_t transition=4)</div><div class="ttdoc">Function to set the color of this light in CIE with specified x y. </div><div class="ttdef"><b>Definition:</b> Light.h:375</div></div>
<div class="ttc" id="structhueplusplus_1_1_color_gamut_html"><div class="ttname"><a href="structhueplusplus_1_1_color_gamut.html">hueplusplus::ColorGamut</a></div><div class="ttdoc">Triangle of representable colors in CIE. </div><div class="ttdef"><b>Definition:</b> ColorUnits.h:77</div></div>
<div class="ttc" id="structhueplusplus_1_1_hue_saturation_html"><div class="ttname"><a href="structhueplusplus_1_1_hue_saturation.html">hueplusplus::HueSaturation</a></div><div class="ttdoc">Color in hue and saturation. </div><div class="ttdef"><b>Definition:</b> ColorUnits.h:31</div></div>
<div class="ttc" id="_brightness_strategy_8h_html"><div class="ttname"><a href="_brightness_strategy_8h.html">BrightnessStrategy.h</a></div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_ad95677b99a9cde2027789bc42c3357a3"><div class="ttname"><a href="classhueplusplus_1_1_light.html#ad95677b99a9cde2027789bc42c3357a3">hueplusplus::Light::getColorHueSaturation</a></div><div class="ttdeci">virtual HueSaturation getColorHueSaturation() const</div><div class="ttdoc">Const function that returns the current color of the light as hue and saturation. ...</div><div class="ttdef"><b>Definition:</b> Light.h:335</div></div>
<div class="ttc" id="namespacehueplusplus_html_aa4ee261126f0bc8edc07e67bc811dc43acb8141a951a917a3dc3354b079e0b251"><div class="ttname"><a href="namespacehueplusplus.html#aa4ee261126f0bc8edc07e67bc811dc43acb8141a951a917a3dc3354b079e0b251">hueplusplus::ColorType::GAMUT_B_TEMPERATURE</a></div><div class="ttdoc">light uses Gamut B and has color temperature control </div></div>
<div class="ttc" id="classhueplusplus_1_1_simple_color_temperature_strategy_html"><div class="ttname"><a href="classhueplusplus_1_1_simple_color_temperature_strategy.html">hueplusplus::SimpleColorTemperatureStrategy</a></div><div class="ttdoc">Class implementing the functions of ColorTemperatureStrategy. </div><div class="ttdef"><b>Definition:</b> SimpleColorTemperatureStrategy.h:32</div></div>
<div class="ttc" id="structhueplusplus_1_1_r_g_b_html_a97181e813bb57e23bf9c5d79229b2410"><div class="ttname"><a href="structhueplusplus_1_1_r_g_b.html#a97181e813bb57e23bf9c5d79229b2410">hueplusplus::RGB::toXY</a></div><div class="ttdeci">XYBrightness toXY() const</div><div class="ttdoc">Convert to XYBrightness without clamping. </div><div class="ttdef"><b>Definition:</b> ColorUnits.cpp:109</div></div>
<div class="ttc" id="classhueplusplus_1_1_light_html_ace958475e37b6273da1a47395076156d"><div class="ttname"><a href="classhueplusplus_1_1_light.html#ace958475e37b6273da1a47395076156d">hueplusplus::Light::setColorLoop</a></div><div class="ttdeci">virtual bool setColorLoop(bool on)</div><div class="ttdoc">Function to turn colorloop effect on/off. </div><div class="ttdef"><b>Definition:</b> Light.h:525</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>