Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FastLED/FastLED.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Garcia <danielgarcia@gmail.com>2015-08-11 09:04:34 +0300
committerDaniel Garcia <danielgarcia@gmail.com>2015-08-11 09:04:34 +0300
commit34859239375e8a3955db0182eab18d464ca8bb4a (patch)
tree5b8fb758683f2a394d64443fff3977bd1b402af8
parent47bc91d6d22db410d2c96f0b81934b05c48ba000 (diff)
Adding documentation for power management, among other things
-rw-r--r--docs/3.1/_fast_l_e_d_8h_source.html44
-rw-r--r--docs/3.1/_fast_s_p_i___l_e_d2_8h_source.html2
-rw-r--r--docs/3.1/annotated.html6
-rw-r--r--docs/3.1/bitswap_8h.html2
-rw-r--r--docs/3.1/bitswap_8h_source.html2
-rw-r--r--docs/3.1/chipsets_8h_source.html990
-rw-r--r--docs/3.1/class_a_p_a102_controller-members.html2
-rw-r--r--docs/3.1/class_a_p_a102_controller.html8
-rw-r--r--docs/3.1/class_a_p_a102_controller__coll__graph.map2
-rw-r--r--docs/3.1/class_a_p_a102_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_a_p_a104.html2
-rw-r--r--docs/3.1/class_a_v_r_software_s_p_i_output-members.html2
-rw-r--r--docs/3.1/class_a_v_r_software_s_p_i_output.html2
-rw-r--r--docs/3.1/class_c_every_n_time_periods-members.html2
-rw-r--r--docs/3.1/class_c_every_n_time_periods.html2
-rw-r--r--docs/3.1/class_c_fast_l_e_d-members.html2
-rw-r--r--docs/3.1/class_c_fast_l_e_d.html28
-rw-r--r--docs/3.1/class_c_h_s_v_palette16-members.html2
-rw-r--r--docs/3.1/class_c_h_s_v_palette16.html12
-rw-r--r--docs/3.1/class_c_h_s_v_palette16__coll__graph.map2
-rw-r--r--docs/3.1/class_c_h_s_v_palette16__coll__graph.md52
-rw-r--r--docs/3.1/class_c_h_s_v_palette256-members.html2
-rw-r--r--docs/3.1/class_c_h_s_v_palette256.html12
-rw-r--r--docs/3.1/class_c_h_s_v_palette256__coll__graph.map2
-rw-r--r--docs/3.1/class_c_h_s_v_palette256__coll__graph.md52
-rw-r--r--docs/3.1/class_c_l_e_d_controller-members.html2
-rw-r--r--docs/3.1/class_c_l_e_d_controller.html6
-rw-r--r--docs/3.1/class_c_l_e_d_controller__coll__graph.map2
-rw-r--r--docs/3.1/class_c_l_e_d_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_c_min_wait-members.html2
-rw-r--r--docs/3.1/class_c_min_wait.html2
-rw-r--r--docs/3.1/class_c_r_g_b_palette16-members.html2
-rw-r--r--docs/3.1/class_c_r_g_b_palette16.html12
-rw-r--r--docs/3.1/class_c_r_g_b_palette16__coll__graph.map2
-rw-r--r--docs/3.1/class_c_r_g_b_palette16__coll__graph.md52
-rw-r--r--docs/3.1/class_c_r_g_b_palette256-members.html2
-rw-r--r--docs/3.1/class_c_r_g_b_palette256.html12
-rw-r--r--docs/3.1/class_c_r_g_b_palette256__coll__graph.map2
-rw-r--r--docs/3.1/class_c_r_g_b_palette256__coll__graph.md52
-rw-r--r--docs/3.1/class_d_a_t_a___n_o_p-members.html2
-rw-r--r--docs/3.1/class_d_a_t_a___n_o_p.html2
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l-members.html2
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l.html6
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.map2
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.md52
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e-members.html2
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e.html6
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.map2
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.md52
-rw-r--r--docs/3.1/class_d_m_x_serial_controller-members.html2
-rw-r--r--docs/3.1/class_d_m_x_serial_controller.html6
-rw-r--r--docs/3.1/class_d_m_x_serial_controller__coll__graph.map2
-rw-r--r--docs/3.1/class_d_m_x_serial_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_d_m_x_simple_controller-members.html2
-rw-r--r--docs/3.1/class_d_m_x_simple_controller.html8
-rw-r--r--docs/3.1/class_d_m_x_simple_controller__coll__graph.map2
-rw-r--r--docs/3.1/class_d_m_x_simple_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_fast_pin-members.html2
-rw-r--r--docs/3.1/class_fast_pin.html26
-rw-r--r--docs/3.1/class_fast_pin_b_b-members.html2
-rw-r--r--docs/3.1/class_fast_pin_b_b.html26
-rw-r--r--docs/3.1/class_g_w6205.html2
-rw-r--r--docs/3.1/class_g_w6205__400.html2
-rw-r--r--docs/3.1/class_g_w6205_controller400_khz.html4
-rw-r--r--docs/3.1/class_g_w6205_controller800_khz.html4
-rw-r--r--docs/3.1/class_input_pin-members.html2
-rw-r--r--docs/3.1/class_input_pin.html50
-rw-r--r--docs/3.1/class_l_p_d1886.html2
-rw-r--r--docs/3.1/class_l_p_d1886_controller1250_khz.html4
-rw-r--r--docs/3.1/class_l_p_d8806_controller-members.html2
-rw-r--r--docs/3.1/class_l_p_d8806_controller.html8
-rw-r--r--docs/3.1/class_l_p_d8806_controller__coll__graph.map2
-rw-r--r--docs/3.1/class_l_p_d8806_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_n_e_o_p_i_x_e_l.html2
-rw-r--r--docs/3.1/class_output_pin-members.html2
-rw-r--r--docs/3.1/class_output_pin.html50
-rw-r--r--docs/3.1/class_p9813_controller-members.html2
-rw-r--r--docs/3.1/class_p9813_controller.html8
-rw-r--r--docs/3.1/class_p9813_controller__coll__graph.map2
-rw-r--r--docs/3.1/class_p9813_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_pin-members.html2
-rw-r--r--docs/3.1/class_pin.html50
-rw-r--r--docs/3.1/class_s_m16716_controller-members.html2
-rw-r--r--docs/3.1/class_s_m16716_controller.html8
-rw-r--r--docs/3.1/class_s_m16716_controller__coll__graph.map2
-rw-r--r--docs/3.1/class_s_m16716_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_s_p_i_output-members.html2
-rw-r--r--docs/3.1/class_s_p_i_output.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t0___d_a_t_a_00_01_s_p_i___u_a_r_t0___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t1___d_a_t_a_00_01_s_p_i___u_a_r_t1___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html2
-rw-r--r--docs/3.1/class_selectable-members.html2
-rw-r--r--docs/3.1/class_selectable.html2
-rw-r--r--docs/3.1/class_software_s_p_i_output-members.html2
-rw-r--r--docs/3.1/class_software_s_p_i_output.html2
-rw-r--r--docs/3.1/class_t_m1803.html2
-rw-r--r--docs/3.1/class_t_m1803_controller400_khz.html4
-rw-r--r--docs/3.1/class_t_m1804.html2
-rw-r--r--docs/3.1/class_t_m1809.html2
-rw-r--r--docs/3.1/class_t_m1809_controller800_khz.html4
-rw-r--r--docs/3.1/class_t_m1829.html2
-rw-r--r--docs/3.1/class_t_m1829_controller1600_khz.html4
-rw-r--r--docs/3.1/class_t_m1829_controller800_khz.html4
-rw-r--r--docs/3.1/class_u_c_s1903.html2
-rw-r--r--docs/3.1/class_u_c_s1903_b.html2
-rw-r--r--docs/3.1/class_u_c_s1903_b_controller800_khz.html4
-rw-r--r--docs/3.1/class_u_c_s1903_controller400_khz.html4
-rw-r--r--docs/3.1/class_u_c_s1904.html2
-rw-r--r--docs/3.1/class_u_c_s1904_controller800_khz.html4
-rw-r--r--docs/3.1/class_w_s2801_controller-members.html2
-rw-r--r--docs/3.1/class_w_s2801_controller.html8
-rw-r--r--docs/3.1/class_w_s2801_controller__coll__graph.map2
-rw-r--r--docs/3.1/class_w_s2801_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_w_s2803_controller-members.html2
-rw-r--r--docs/3.1/class_w_s2803_controller.html8
-rw-r--r--docs/3.1/class_w_s2803_controller__coll__graph.map2
-rw-r--r--docs/3.1/class_w_s2803_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_w_s2811.html2
-rw-r--r--docs/3.1/class_w_s2811__400.html2
-rw-r--r--docs/3.1/class_w_s2811_controller400_khz.html4
-rw-r--r--docs/3.1/class_w_s2811_controller800_khz.html4
-rw-r--r--docs/3.1/class_w_s2812.html2
-rw-r--r--docs/3.1/class_w_s2812_b.html2
-rw-r--r--docs/3.1/class_w_s2812_controller800_khz.html4
-rw-r--r--docs/3.1/classes.html2
-rw-r--r--docs/3.1/classq-members.html2
-rw-r--r--docs/3.1/classq.html2
-rw-r--r--docs/3.1/color_8h_source.html2
-rw-r--r--docs/3.1/colorpalettes_8h_source.html2
-rw-r--r--docs/3.1/colorutils_8h_source.html2136
-rw-r--r--docs/3.1/controller_8h_source.html4
-rw-r--r--docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html2
-rw-r--r--docs/3.1/dmx_8h_source.html212
-rw-r--r--docs/3.1/fastled__config_8h_source.html2
-rw-r--r--docs/3.1/fastled__delay_8h_source.html32
-rw-r--r--docs/3.1/fastled__progmem_8h_source.html2
-rw-r--r--docs/3.1/fastpin_8h_source.html2
-rw-r--r--docs/3.1/fastspi_8h_source.html2
-rw-r--r--docs/3.1/fastspi__bitbang_8h_source.html2
-rw-r--r--docs/3.1/fastspi__dma_8h_source.html2
-rw-r--r--docs/3.1/fastspi__nop_8h_source.html31
-rw-r--r--docs/3.1/fastspi__ref_8h_source.html4
-rw-r--r--docs/3.1/fastspi__types_8h_source.html2
-rw-r--r--docs/3.1/files.html23
-rw-r--r--docs/3.1/functions.html6
-rw-r--r--docs/3.1/functions_enum.html108
-rw-r--r--docs/3.1/functions_func.html3
-rw-r--r--docs/3.1/globals.html2
-rw-r--r--docs/3.1/globals_func.html2
-rw-r--r--docs/3.1/graph_legend.html2
-rw-r--r--docs/3.1/group___bitswap.html2
-rw-r--r--docs/3.1/group___color_enums.html2
-rw-r--r--docs/3.1/group___colorpalletes.html2
-rw-r--r--docs/3.1/group___colorutils.html10
-rw-r--r--docs/3.1/group___dimming.html2
-rw-r--r--docs/3.1/group___math.html2
-rw-r--r--docs/3.1/group___noise.html2
-rw-r--r--docs/3.1/group___pixeltypes.html355
-rw-r--r--docs/3.1/group___power.html96
-rw-r--r--docs/3.1/group___random.html2
-rw-r--r--docs/3.1/group___scaling.html2
-rw-r--r--docs/3.1/group___trig.html2
-rw-r--r--docs/3.1/group__chipsets.html148
-rw-r--r--docs/3.1/group__lib8tion.html6
-rw-r--r--docs/3.1/hierarchy.html6
-rw-r--r--docs/3.1/hsv2rgb_8h_source.html11
-rw-r--r--docs/3.1/index.html2
-rw-r--r--docs/3.1/inherit_graph_11.map2
-rw-r--r--docs/3.1/inherit_graph_11.md52
-rw-r--r--docs/3.1/inherit_graph_5.map2
-rw-r--r--docs/3.1/inherit_graph_5.md52
-rw-r--r--docs/3.1/inherits.html6
-rw-r--r--docs/3.1/led__sysdefs_8h_source.html2
-rw-r--r--docs/3.1/lib8tion_8h_source.html2
-rw-r--r--docs/3.1/math8_8h_source.html2
-rw-r--r--docs/3.1/md__p_o_r_t_i_n_g.html2
-rw-r--r--docs/3.1/md__r_e_a_d_m_e.html2
-rw-r--r--docs/3.1/md_release_notes.html4
-rw-r--r--docs/3.1/modules.html25
-rw-r--r--docs/3.1/noise_8h.html2
-rw-r--r--docs/3.1/noise_8h_source.html4
-rw-r--r--docs/3.1/pages.html2
-rw-r--r--docs/3.1/pixeltypes_8h_source.html1587
-rw-r--r--docs/3.1/platforms_8h_source.html2
-rw-r--r--docs/3.1/power__mgt_8h_source.html84
-rw-r--r--docs/3.1/random8_8h_source.html2
-rw-r--r--docs/3.1/scale8_8h_source.html2
-rw-r--r--docs/3.1/search/all_0.js2
-rw-r--r--docs/3.1/search/all_3.js4
-rw-r--r--docs/3.1/search/all_8.js5
-rw-r--r--docs/3.1/search/all_f.js3
-rw-r--r--docs/3.1/search/enums_1.js3
-rw-r--r--docs/3.1/search/enums_2.html26
-rw-r--r--docs/3.1/search/enums_2.js4
-rw-r--r--docs/3.1/search/functions_0.js2
-rw-r--r--docs/3.1/search/functions_8.js3
-rw-r--r--docs/3.1/search/groups_1.js4
-rw-r--r--docs/3.1/search/groups_5.js3
-rw-r--r--docs/3.1/search/searchdata.js2
-rw-r--r--docs/3.1/struct_c_h_s_v-members.html2
-rw-r--r--docs/3.1/struct_c_h_s_v.html21
-rw-r--r--docs/3.1/struct_c_r_g_b-members.html4
-rw-r--r--docs/3.1/struct_c_r_g_b.html58
-rw-r--r--docs/3.1/struct_multi_pixel_controller-members.html2
-rw-r--r--docs/3.1/struct_multi_pixel_controller.html4
-rw-r--r--docs/3.1/struct_multi_pixel_controller__coll__graph.map2
-rw-r--r--docs/3.1/struct_multi_pixel_controller__coll__graph.md52
-rw-r--r--docs/3.1/struct_pixel_controller-members.html2
-rw-r--r--docs/3.1/struct_pixel_controller.html4
-rw-r--r--docs/3.1/struct_pixel_controller__coll__graph.map2
-rw-r--r--docs/3.1/struct_pixel_controller__coll__graph.md52
-rw-r--r--docs/3.1/structsub4-members.html2
-rw-r--r--docs/3.1/structsub4.html2
-rw-r--r--docs/3.1/todo.html2
-rw-r--r--docs/3.1/trig8_8h_source.html2
-rw-r--r--docs/3.1/union_i_e_e_e754binary32__t-members.html2
-rw-r--r--docs/3.1/union_i_e_e_e754binary32__t.html2
-rw-r--r--docs/3.1/union_t_r_g_b_gradient_palette_entry_union-members.html2
-rw-r--r--docs/3.1/union_t_r_g_b_gradient_palette_entry_union.html2
-rw-r--r--docs/3.1/unionbitswap__type-members.html2
-rw-r--r--docs/3.1/unionbitswap__type.html2
-rw-r--r--docs/3.1/unionjust8bits-members.html2
-rw-r--r--docs/3.1/unionjust8bits.html2
-rw-r--r--docs/3.1/uniont_bytes_for_long-members.html2
-rw-r--r--docs/3.1/uniont_bytes_for_long.html2
228 files changed, 3778 insertions, 3027 deletions
diff --git a/docs/3.1/_fast_l_e_d_8h_source.html b/docs/3.1/_fast_l_e_d_8h_source.html
index 96b20ed8..01a3ee99 100644
--- a/docs/3.1/_fast_l_e_d_8h_source.html
+++ b/docs/3.1/_fast_l_e_d_8h_source.html
@@ -443,38 +443,38 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="bitswap_8h_html"><div class="ttname"><a href="bitswap_8h.html">bitswap.h</a></div><div class="ttdoc">Functions for rotating bits/bytes. </div></div>
-<div class="ttc" id="class_u_c_s1903_controller400_khz_html"><div class="ttname"><a href="class_u_c_s1903_controller400_khz.html">UCS1903Controller400Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:431</div></div>
+<div class="ttc" id="class_u_c_s1903_controller400_khz_html"><div class="ttname"><a href="class_u_c_s1903_controller400_khz.html">UCS1903Controller400Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:437</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_ac4dff92f45048399edb0812a02ab9d96"><div class="ttname"><a href="class_c_fast_l_e_d.html#ac4dff92f45048399edb0812a02ab9d96">CFastLED::addLeds</a></div><div class="ttdeci">static CLEDController &amp; addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)</div><div class="ttdoc">Add a 3rd party library based CLEDController instance to the world. </div><div class="ttdef"><b>Definition:</b> FastLED.h:292</div></div>
<div class="ttc" id="class_w_s2812_html"><div class="ttname"><a href="class_w_s2812.html">WS2812</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:81</div></div>
-<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdef"><b>Definition:</b> pixeltypes.h:83</div></div>
+<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdoc">Representation of an RGB pixel (Red, Green, Blue) </div><div class="ttdef"><b>Definition:</b> pixeltypes.h:88</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_a646128b7d8c14b5020b285dbc8bc713b"><div class="ttname"><a href="class_c_fast_l_e_d.html#a646128b7d8c14b5020b285dbc8bc713b">CFastLED::operator[]</a></div><div class="ttdeci">CLEDController &amp; operator[](int x)</div><div class="ttdoc">Get a reference to a registered controller. </div><div class="ttdef"><b>Definition:</b> FastLED.cpp:66</div></div>
<div class="ttc" id="class_l_p_d1886_html"><div class="ttname"><a href="class_l_p_d1886.html">LPD1886</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:88</div></div>
-<div class="ttc" id="class_u_c_s1904_controller800_khz_html"><div class="ttname"><a href="class_u_c_s1904_controller800_khz.html">UCS1904Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:437</div></div>
+<div class="ttc" id="class_u_c_s1904_controller800_khz_html"><div class="ttname"><a href="class_u_c_s1904_controller800_khz.html">UCS1904Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:443</div></div>
<div class="ttc" id="class_g_w6205_html"><div class="ttname"><a href="class_g_w6205.html">GW6205</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:86</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html"><div class="ttname"><a href="class_c_l_e_d_controller.html">CLEDController</a></div><div class="ttdoc">Base definition for an LED controller. </div><div class="ttdef"><b>Definition:</b> controller.h:34</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_a18fba22754d2a1a206fc5db8d24a92d0"><div class="ttname"><a href="class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0">CFastLED::size</a></div><div class="ttdeci">int size()</div><div class="ttdoc">Get the number of leds in the first controller. </div><div class="ttdef"><b>Definition:</b> FastLED.h:466</div></div>
-<div class="ttc" id="class_w_s2811_controller800_khz_html"><div class="ttname"><a href="class_w_s2811_controller800_khz.html">WS2811Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:425</div></div>
+<div class="ttc" id="class_w_s2811_controller800_khz_html"><div class="ttname"><a href="class_w_s2811_controller800_khz.html">WS2811Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:431</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_ac2615781ec12e025fb17cc0e66281716"><div class="ttname"><a href="class_c_fast_l_e_d.html#ac2615781ec12e025fb17cc0e66281716">CFastLED::getBrightness</a></div><div class="ttdeci">uint8_t getBrightness()</div><div class="ttdoc">Get the current global brightness setting. </div><div class="ttdef"><b>Definition:</b> FastLED.h:392</div></div>
-<div class="ttc" id="class_l_p_d8806_controller_html"><div class="ttname"><a href="class_l_p_d8806_controller.html">LPD8806Controller</a></div><div class="ttdoc">LPD8806 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:20</div></div>
-<div class="ttc" id="class_u_c_s1903_b_controller800_khz_html"><div class="ttname"><a href="class_u_c_s1903_b_controller800_khz.html">UCS1903BController800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:434</div></div>
-<div class="ttc" id="class_g_w6205_controller800_khz_html"><div class="ttname"><a href="class_g_w6205_controller800_khz.html">GW6205Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:452</div></div>
+<div class="ttc" id="class_l_p_d8806_controller_html"><div class="ttname"><a href="class_l_p_d8806_controller.html">LPD8806Controller</a></div><div class="ttdoc">LPD8806 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:26</div></div>
+<div class="ttc" id="class_u_c_s1903_b_controller800_khz_html"><div class="ttname"><a href="class_u_c_s1903_b_controller800_khz.html">UCS1903BController800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:440</div></div>
+<div class="ttc" id="class_g_w6205_controller800_khz_html"><div class="ttname"><a href="class_g_w6205_controller800_khz.html">GW6205Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:458</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_ae5730545ea18b1f5228172f9d246beb6"><div class="ttname"><a href="class_c_fast_l_e_d.html#ae5730545ea18b1f5228172f9d246beb6">CFastLED::count</a></div><div class="ttdeci">int count()</div><div class="ttdoc">Get how many controllers have been registered. </div><div class="ttdef"><b>Definition:</b> FastLED.cpp:56</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html"><div class="ttname"><a href="class_c_fast_l_e_d.html">CFastLED</a></div><div class="ttdoc">High level controller interface for FastLED. </div><div class="ttdef"><b>Definition:</b> FastLED.h:130</div></div>
-<div class="ttc" id="class_d_m_x_simple_controller_html"><div class="ttname"><a href="class_d_m_x_simple_controller.html">DMXSimpleController</a></div><div class="ttdef"><b>Definition:</b> dmx.h:12</div></div>
+<div class="ttc" id="class_d_m_x_simple_controller_html"><div class="ttname"><a href="class_d_m_x_simple_controller.html">DMXSimpleController</a></div><div class="ttdef"><b>Definition:</b> dmx.h:14</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9"><div class="ttname"><a href="class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9">CFastLED::addLeds</a></div><div class="ttdeci">static CLEDController &amp; addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)</div><div class="ttdoc">Add a clockless (aka 3wire, also DMX) based CLEDController instance to the world. ...</div><div class="ttdef"><b>Definition:</b> FastLED.h:244</div></div>
-<div class="ttc" id="class_w_s2812_controller800_khz_html"><div class="ttname"><a href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:422</div></div>
-<div class="ttc" id="class_t_m1803_controller400_khz_html"><div class="ttname"><a href="class_t_m1803_controller400_khz.html">TM1803Controller400Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:443</div></div>
+<div class="ttc" id="class_w_s2812_controller800_khz_html"><div class="ttname"><a href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:428</div></div>
+<div class="ttc" id="class_t_m1803_controller400_khz_html"><div class="ttname"><a href="class_t_m1803_controller400_khz.html">TM1803Controller400Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:449</div></div>
<div class="ttc" id="class_u_c_s1903_html"><div class="ttname"><a href="class_u_c_s1903.html">UCS1903</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:78</div></div>
-<div class="ttc" id="class_t_m1809_controller800_khz_html"><div class="ttname"><a href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:440</div></div>
+<div class="ttc" id="class_t_m1809_controller800_khz_html"><div class="ttname"><a href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:446</div></div>
<div class="ttc" id="class_t_m1809_html"><div class="ttname"><a href="class_t_m1809.html">TM1809</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:75</div></div>
-<div class="ttc" id="class_w_s2801_controller_html"><div class="ttname"><a href="class_w_s2801_controller.html">WS2801Controller</a></div><div class="ttdoc">WS2801 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:94</div></div>
+<div class="ttc" id="class_w_s2801_controller_html"><div class="ttname"><a href="class_w_s2801_controller.html">WS2801Controller</a></div><div class="ttdoc">WS2801 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:100</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_a7ae5d3864df01101d82d242c123ffb36"><div class="ttname"><a href="class_c_fast_l_e_d.html#a7ae5d3864df01101d82d242c123ffb36">CFastLED::setDither</a></div><div class="ttdeci">void setDither(uint8_t ditherMode=BINARY_DITHER)</div><div class="ttdoc">Set the dithering mode. </div><div class="ttdef"><b>Definition:</b> FastLED.cpp:136</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_a28c2dfb0ec592db03f3063ade135f19f"><div class="ttname"><a href="class_c_fast_l_e_d.html#a28c2dfb0ec592db03f3063ade135f19f">CFastLED::setTemperature</a></div><div class="ttdeci">void setTemperature(const struct CRGB &amp;temp)</div><div class="ttdoc">Set a global color temperature. </div><div class="ttdef"><b>Definition:</b> FastLED.cpp:120</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_aa8c3ae3381e524ce30b181ffa23b83cd"><div class="ttname"><a href="class_c_fast_l_e_d.html#aa8c3ae3381e524ce30b181ffa23b83cd">CFastLED::getFPS</a></div><div class="ttdeci">uint16_t getFPS()</div><div class="ttdoc">Get the number of frames/second being written out. </div><div class="ttdef"><b>Definition:</b> FastLED.h:454</div></div>
<div class="ttc" id="class_d_m_x_s_i_m_p_l_e_html"><div class="ttname"><a href="class_d_m_x_s_i_m_p_l_e.html">DMXSIMPLE</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:90</div></div>
-<div class="ttc" id="class_l_p_d1886_controller1250_khz_html"><div class="ttname"><a href="class_l_p_d1886_controller1250_khz.html">LPD1886Controller1250Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:418</div></div>
+<div class="ttc" id="class_l_p_d1886_controller1250_khz_html"><div class="ttname"><a href="class_l_p_d1886_controller1250_khz.html">LPD1886Controller1250Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:424</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_ae3c0a81b88fb64a65725cb2fed67f766"><div class="ttname"><a href="class_c_fast_l_e_d.html#ae3c0a81b88fb64a65725cb2fed67f766">CFastLED::leds</a></div><div class="ttdeci">CRGB * leds()</div><div class="ttdoc">Get a pointer to led data for the first controller. </div><div class="ttdef"><b>Definition:</b> FastLED.h:470</div></div>
-<div class="ttc" id="class_t_m1829_controller800_khz_html"><div class="ttname"><a href="class_t_m1829_controller800_khz.html">TM1829Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:446</div></div>
+<div class="ttc" id="class_t_m1829_controller800_khz_html"><div class="ttname"><a href="class_t_m1829_controller800_khz.html">TM1829Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:452</div></div>
<div class="ttc" id="class_t_m1829_html"><div class="ttname"><a href="class_t_m1829.html">TM1829</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:74</div></div>
<div class="ttc" id="class_n_e_o_p_i_x_e_l_html"><div class="ttname"><a href="class_n_e_o_p_i_x_e_l.html">NEOPIXEL</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:73</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_a3adb23ec5f919524928d576002cb45de"><div class="ttname"><a href="class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de">CFastLED::show</a></div><div class="ttdeci">void show()</div><div class="ttdoc">Update all our controllers with the current led colors. </div><div class="ttdef"><b>Definition:</b> FastLED.h:399</div></div>
@@ -482,20 +482,20 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_c_fast_l_e_d_html_a7315b060d295bad5fbd32e50eaaf02b0"><div class="ttname"><a href="class_c_fast_l_e_d.html#a7315b060d295bad5fbd32e50eaaf02b0">CFastLED::showColor</a></div><div class="ttdeci">void showColor(const struct CRGB &amp;color, uint8_t scale)</div><div class="ttdoc">Set all leds on all controllers to the given color/scale. </div><div class="ttdef"><b>Definition:</b> FastLED.cpp:78</div></div>
<div class="ttc" id="class_w_s2812_b_html"><div class="ttname"><a href="class_w_s2812_b.html">WS2812B</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:82</div></div>
<div class="ttc" id="class_u_c_s1904_html"><div class="ttname"><a href="class_u_c_s1904.html">UCS1904</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:80</div></div>
-<div class="ttc" id="class_p9813_controller_html"><div class="ttname"><a href="class_p9813_controller.html">P9813Controller</a></div><div class="ttdoc">P9813 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:249</div></div>
+<div class="ttc" id="class_p9813_controller_html"><div class="ttname"><a href="class_p9813_controller.html">P9813Controller</a></div><div class="ttdoc">P9813 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:255</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_afd7928d822589740af6e23b2d510cf3f"><div class="ttname"><a href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">CFastLED::addLeds</a></div><div class="ttdeci">static CLEDController &amp; addLeds(CLEDController *pLed, struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)</div><div class="ttdoc">Add a CLEDController instance to the world. </div><div class="ttdef"><b>Definition:</b> FastLED.cpp:28</div></div>
<div class="ttc" id="class_d_m_x_s_e_r_i_a_l_html"><div class="ttname"><a href="class_d_m_x_s_e_r_i_a_l.html">DMXSERIAL</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:93</div></div>
-<div class="ttc" id="class_d_m_x_serial_controller_html"><div class="ttname"><a href="class_d_m_x_serial_controller.html">DMXSerialController</a></div><div class="ttdef"><b>Definition:</b> dmx.h:63</div></div>
+<div class="ttc" id="class_d_m_x_serial_controller_html"><div class="ttname"><a href="class_d_m_x_serial_controller.html">DMXSerialController</a></div><div class="ttdef"><b>Definition:</b> dmx.h:65</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_a730ba7d967e882b4b893689cf333b2eb"><div class="ttname"><a href="class_c_fast_l_e_d.html#a730ba7d967e882b4b893689cf333b2eb">CFastLED::setBrightness</a></div><div class="ttdeci">void setBrightness(uint8_t scale)</div><div class="ttdoc">Set the global brightness scaling. </div><div class="ttdef"><b>Definition:</b> FastLED.h:388</div></div>
-<div class="ttc" id="class_g_w6205_controller400_khz_html"><div class="ttname"><a href="class_g_w6205_controller400_khz.html">GW6205Controller400Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:449</div></div>
+<div class="ttc" id="class_g_w6205_controller400_khz_html"><div class="ttname"><a href="class_g_w6205_controller400_khz.html">GW6205Controller400Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:455</div></div>
<div class="ttc" id="noise_8h_html"><div class="ttname"><a href="noise_8h.html">noise.h</a></div><div class="ttdoc">Noise functions provided by the library. </div></div>
-<div class="ttc" id="class_w_s2811_controller400_khz_html"><div class="ttname"><a href="class_w_s2811_controller400_khz.html">WS2811Controller400Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:428</div></div>
+<div class="ttc" id="class_w_s2811_controller400_khz_html"><div class="ttname"><a href="class_w_s2811_controller400_khz.html">WS2811Controller400Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:434</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_a570df74cf09e6215c3647333d2b479a9"><div class="ttname"><a href="class_c_fast_l_e_d.html#a570df74cf09e6215c3647333d2b479a9">CFastLED::showColor</a></div><div class="ttdeci">void showColor(const struct CRGB &amp;color)</div><div class="ttdoc">Set all leds on all controllers to the given color. </div><div class="ttdef"><b>Definition:</b> FastLED.h:415</div></div>
<div class="ttc" id="class_t_m1804_html"><div class="ttname"><a href="class_t_m1804.html">TM1804</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:76</div></div>
<div class="ttc" id="class_u_c_s1903_b_html"><div class="ttname"><a href="class_u_c_s1903_b.html">UCS1903B</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:79</div></div>
-<div class="ttc" id="class_a_p_a102_controller_html"><div class="ttname"><a href="class_a_p_a102_controller.html">APA102Controller</a></div><div class="ttdoc">APA102 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:150</div></div>
+<div class="ttc" id="class_a_p_a102_controller_html"><div class="ttname"><a href="class_a_p_a102_controller.html">APA102Controller</a></div><div class="ttdoc">APA102 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:156</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_a61d27e179c9b68bde89d220aebc0de32"><div class="ttname"><a href="class_c_fast_l_e_d.html#a61d27e179c9b68bde89d220aebc0de32">CFastLED::countFPS</a></div><div class="ttdeci">void countFPS(int nFrames=25)</div><div class="ttdoc">for debugging, will keep track of time between calls to countFPS, and every nFrames calls...</div><div class="ttdef"><b>Definition:</b> FastLED.cpp:189</div></div>
-<div class="ttc" id="class_w_s2803_controller_html"><div class="ttname"><a href="class_w_s2803_controller.html">WS2803Controller</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:136</div></div>
+<div class="ttc" id="class_w_s2803_controller_html"><div class="ttname"><a href="class_w_s2803_controller.html">WS2803Controller</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:142</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_a042989511cbc42390620bedc196ea956"><div class="ttname"><a href="class_c_fast_l_e_d.html#a042989511cbc42390620bedc196ea956">CFastLED::clear</a></div><div class="ttdeci">void clear(boolean writeData=false)</div><div class="ttdoc">clear the leds, optionally wiping the local array of data as well </div><div class="ttdef"><b>Definition:</b> FastLED.cpp:93</div></div>
<div class="ttc" id="class_w_s2811_html"><div class="ttname"><a href="class_w_s2811.html">WS2811</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:83</div></div>
<div class="ttc" id="class_w_s2811__400_html"><div class="ttname"><a href="class_w_s2811__400.html">WS2811_400</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:85</div></div>
@@ -503,13 +503,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="class_c_fast_l_e_d_html_ac4f613f1b3e618528dca3189df88ce80"><div class="ttname"><a href="class_c_fast_l_e_d.html#ac4f613f1b3e618528dca3189df88ce80">CFastLED::clearData</a></div><div class="ttdeci">void clearData()</div><div class="ttdoc">clear out the local data array </div><div class="ttdef"><b>Definition:</b> FastLED.cpp:100</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_a1f39e8404db214bbd6a776f52a77d8b1"><div class="ttname"><a href="class_c_fast_l_e_d.html#a1f39e8404db214bbd6a776f52a77d8b1">CFastLED::setMaxRefreshRate</a></div><div class="ttdeci">void setMaxRefreshRate(uint16_t refresh, bool constrain=false)</div><div class="ttdoc">Set the maximum refresh rate. </div><div class="ttdef"><b>Definition:</b> FastLED.cpp:202</div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_a6819ff831058a710d4582dfc09817202"><div class="ttname"><a href="class_c_fast_l_e_d.html#a6819ff831058a710d4582dfc09817202">CFastLED::delay</a></div><div class="ttdeci">void delay(unsigned long ms)</div><div class="ttdoc">Delay for the given number of milliseconds. </div><div class="ttdef"><b>Definition:</b> FastLED.cpp:108</div></div>
-<div class="ttc" id="class_s_m16716_controller_html"><div class="ttname"><a href="class_s_m16716_controller.html">SM16716Controller</a></div><div class="ttdoc">SM16716 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:339</div></div>
+<div class="ttc" id="class_s_m16716_controller_html"><div class="ttname"><a href="class_s_m16716_controller.html">SM16716Controller</a></div><div class="ttdoc">SM16716 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:345</div></div>
<div class="ttc" id="class_t_m1803_html"><div class="ttname"><a href="class_t_m1803.html">TM1803</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:77</div></div>
<div class="ttc" id="class_g_w6205__400_html"><div class="ttname"><a href="class_g_w6205__400.html">GW6205_400</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:87</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/_fast_s_p_i___l_e_d2_8h_source.html b/docs/3.1/_fast_s_p_i___l_e_d2_8h_source.html
index 1d762147..9295f5da 100644
--- a/docs/3.1/_fast_s_p_i___l_e_d2_8h_source.html
+++ b/docs/3.1/_fast_s_p_i___l_e_d2_8h_source.html
@@ -92,7 +92,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 22:49:38 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/annotated.html b/docs/3.1/annotated.html
index b7f46529..b0f21cfc 100644
--- a/docs/3.1/annotated.html
+++ b/docs/3.1/annotated.html
@@ -97,12 +97,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionbitswap__type.html" target="_self">bitswap_type</a></td><td class="desc">Union containing a full 8 bytes to swap the bit orientation on </td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_every_n_time_periods.html" target="_self">CEveryNTimePeriods</a></td><td class="desc"></td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_fast_l_e_d.html" target="_self">CFastLED</a></td><td class="desc">High level controller interface for FastLED </td></tr>
-<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_h_s_v.html" target="_self">CHSV</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_h_s_v.html" target="_self">CHSV</a></td><td class="desc">Representation of an HSV pixel (hue, saturation, value (aka brightness)) </td></tr>
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_h_s_v_palette16.html" target="_self">CHSVPalette16</a></td><td class="desc"></td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_h_s_v_palette256.html" target="_self">CHSVPalette256</a></td><td class="desc"></td></tr>
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_l_e_d_controller.html" target="_self">CLEDController</a></td><td class="desc">Base definition for an LED controller </td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_min_wait.html" target="_self">CMinWait</a></td><td class="desc">Class to ensure that a minimum amount of time has kicked since the last time run - and delay if not enough time has passed yet this should make sure that chipsets that have </td></tr>
-<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_r_g_b.html" target="_self">CRGB</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_r_g_b.html" target="_self">CRGB</a></td><td class="desc">Representation of an RGB pixel (Red, Green, Blue) </td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_r_g_b_palette16.html" target="_self">CRGBPalette16</a></td><td class="desc"></td></tr>
<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_r_g_b_palette256.html" target="_self">CRGBPalette256</a></td><td class="desc"></td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_a_t_a___n_o_p.html" target="_self">DATA_NOP</a></td><td class="desc">Some of the SPI controllers will need to perform a transform on each byte before doing anyting with it </td></tr>
@@ -170,7 +170,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/bitswap_8h.html b/docs/3.1/bitswap_8h.html
index 2003318c..b29cd601 100644
--- a/docs/3.1/bitswap_8h.html
+++ b/docs/3.1/bitswap_8h.html
@@ -120,7 +120,7 @@ Functions</h2></td></tr>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/bitswap_8h_source.html b/docs/3.1/bitswap_8h_source.html
index 79bf53ec..5c24b428 100644
--- a/docs/3.1/bitswap_8h_source.html
+++ b/docs/3.1/bitswap_8h_source.html
@@ -351,7 +351,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/chipsets_8h_source.html b/docs/3.1/chipsets_8h_source.html
index ed736d10..cb77b85e 100644
--- a/docs/3.1/chipsets_8h_source.html
+++ b/docs/3.1/chipsets_8h_source.html
@@ -93,556 +93,554 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;pixeltypes.h&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// LPD8806 controller class - takes data/clock/select pin values (N.B. should take an SPI definition?)</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(12) &gt;</div>
-<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html"> 20</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_l_p_d8806_controller.html">LPD8806Controller</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">typedef</span> <a class="code" href="class_s_p_i_output.html">SPIOutput&lt;DATA_PIN, CLOCK_PIN, SPI_SPEED&gt;</a> <a class="code" href="class_s_p_i_output.html">SPI</a>;</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">class </span>LPD8806_ADJUST {</div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="comment">// LPD8806 spec wants the high bit of every rgb data byte sent out to be set.</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t adjust(<span class="keyword">register</span> uint8_t data) { <span class="keywordflow">return</span> ((data&gt;&gt;1) | 0x80) + ((data &amp;&amp; (data&lt;254)) &amp; 0x01); }</div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> postBlock(<span class="keywordtype">int</span> len) {</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; SPI::writeBytesValueRaw(0, ((len*3+63)&gt;&gt;6));</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; }</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; };</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; SPI mSPI;</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">int</span> mClearedLeds;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">void</span> checkClear(<span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">if</span>(nLeds &gt; mClearedLeds) {</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; clearLine(nLeds);</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; mClearedLeds = nLeds;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">void</span> clearLine(<span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">int</span> n = ((nLeds*3 + 63) &gt;&gt; 6);</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; mSPI.writeBytesValue(0, n);</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; }</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="class_l_p_d8806_controller.html">LPD8806Controller</a>() {}</div>
-<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608"> 49</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608">init</a>() {</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; mSPI.init();</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; mClearedLeds = 0;</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// LPD8806 controller class - takes data/clock/select pin values (N.B. should take an SPI definition?)</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(12) &gt;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html"> 26</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_l_p_d8806_controller.html">LPD8806Controller</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">typedef</span> <a class="code" href="class_s_p_i_output.html">SPIOutput&lt;DATA_PIN, CLOCK_PIN, SPI_SPEED&gt;</a> <a class="code" href="class_s_p_i_output.html">SPI</a>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">class </span>LPD8806_ADJUST {</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="comment">// LPD8806 spec wants the high bit of every rgb data byte sent out to be set.</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t adjust(<span class="keyword">register</span> uint8_t data) { <span class="keywordflow">return</span> ((data&gt;&gt;1) | 0x80) + ((data &amp;&amp; (data&lt;254)) &amp; 0x01); }</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> postBlock(<span class="keywordtype">int</span> len) {</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; SPI::writeBytesValueRaw(0, ((len*3+63)&gt;&gt;6));</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; }</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; };</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; SPI mSPI;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">int</span> mClearedLeds;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">void</span> checkClear(<span class="keywordtype">int</span> nLeds) {</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">if</span>(nLeds &gt; mClearedLeds) {</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; clearLine(nLeds);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; mClearedLeds = nLeds;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; }</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">void</span> clearLine(<span class="keywordtype">int</span> nLeds) {</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">int</span> n = ((nLeds*3 + 63) &gt;&gt; 6);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; mSPI.writeBytesValue(0, n);</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e"> 54</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; mSPI.select();</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; mSPI.writeBytesValueRaw(0x80, nLeds * 3);</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; mSPI.writeBytesValueRaw(0, ((nLeds*3+63)&gt;&gt;6));</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; mSPI.release();</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259"> 64</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; mSPI.template writePixels&lt;0, LPD8806_ADJUST, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="class_l_p_d8806_controller.html">LPD8806Controller</a>() {}</div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608"> 55</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608">init</a>() {</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; mSPI.init();</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; mClearedLeds = 0;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e"> 60</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; mSPI.select();</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; mSPI.writeBytesValueRaw(0x80, nLeds * 3);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; mSPI.writeBytesValueRaw(0, ((nLeds*3+63)&gt;&gt;6));</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; mSPI.waitFully();</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; mSPI.release();</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5"> 68</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// TODO rgb-ize scale</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; mSPI.template writePixels&lt;0, LPD8806_ADJUST, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> CARGB *data, <span class="keywordtype">int</span> nLeds, uint8_t scale) {</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; checkClear(nLeds);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259"> 70</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; mSPI.template writePixels&lt;0, LPD8806_ADJUST, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5"> 74</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// TODO rgb-ize scale</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; mSPI.template writePixels&lt;0, LPD8806_ADJUST, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;};</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment">// WS2801 definition - takes data/clock/select pin values (N.B. should take an SPI definition?)</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(1)&gt;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html"> 94</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2801_controller.html">WS2801Controller</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">typedef</span> <a class="code" href="class_s_p_i_output.html">SPIOutput&lt;DATA_PIN, CLOCK_PIN, SPI_SPEED&gt;</a> <a class="code" href="class_s_p_i_output.html">SPI</a>;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; SPI mSPI;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="class_c_min_wait.html">CMinWait&lt;1000&gt;</a> mWaitDelay;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="class_w_s2801_controller.html">WS2801Controller</a>() {}</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4"> 101</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4">init</a>() {</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; mSPI.init();</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; mWaitDelay.mark();</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c"> 106</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; mWaitDelay.wait();</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; mSPI.writeBytesValue(0, nLeds*3);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> CARGB *data, <span class="keywordtype">int</span> nLeds, uint8_t scale) {</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; checkClear(nLeds);</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; mSPI.template writePixels&lt;0, LPD8806_ADJUST, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;};</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment">// WS2801 definition - takes data/clock/select pin values (N.B. should take an SPI definition?)</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(1)&gt;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html"> 100</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2801_controller.html">WS2801Controller</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">typedef</span> <a class="code" href="class_s_p_i_output.html">SPIOutput&lt;DATA_PIN, CLOCK_PIN, SPI_SPEED&gt;</a> <a class="code" href="class_s_p_i_output.html">SPI</a>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; SPI mSPI;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="class_c_min_wait.html">CMinWait&lt;1000&gt;</a> mWaitDelay;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="class_w_s2801_controller.html">WS2801Controller</a>() {}</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
+<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4"> 107</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4">init</a>() {</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; mSPI.init();</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; mWaitDelay.mark();</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501"> 114</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; mWaitDelay.wait();</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; mSPI.template writePixels&lt;0, DATA_NOP, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; mWaitDelay.mark();</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c"> 112</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; mWaitDelay.wait();</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; mSPI.writeBytesValue(0, nLeds*3);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; mWaitDelay.mark();</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="keyword">protected</span>:</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0"> 120</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501"> 120</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; mWaitDelay.wait();</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; mSPI.template writePixels&lt;0, DATA_NOP, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; mWaitDelay.mark();</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0"> 127</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; mWaitDelay.wait();</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; mSPI.template writePixels&lt;0, DATA_NOP, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; mWaitDelay.mark();</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;};</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(25)&gt;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_w_s2803_controller.html"> 136</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2803_controller.html">WS2803Controller</a> : <span class="keyword">public</span> <a class="code" href="class_w_s2801_controller.html">WS2801Controller</a>&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED&gt; {};</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment">// APA102 definition - takes data/clock/select pin values (N.B. should take an SPI definition?)</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = BGR, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(24)&gt;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html"> 150</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_p_a102_controller.html">APA102Controller</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">typedef</span> <a class="code" href="class_s_p_i_output.html">SPIOutput&lt;DATA_PIN, CLOCK_PIN, SPI_SPEED&gt;</a> <a class="code" href="class_s_p_i_output.html">SPI</a>;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; SPI mSPI;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">void</span> startBoundary() { mSPI.writeWord(0); mSPI.writeWord(0); }</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordtype">void</span> endBoundary(<span class="keywordtype">int</span> nLeds) { <span class="keywordtype">int</span> nBytes = (nLeds/32); <span class="keywordflow">do</span> { mSPI.writeByte(0xFF); mSPI.writeByte(0x00); mSPI.writeByte(0x00); mSPI.writeByte(0x00); } <span class="keywordflow">while</span>(nBytes--); }</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> writeLed(uint8_t b0, uint8_t b1, uint8_t b2) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) {</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; mSPI.writeByte(0xFF); mSPI.writeByte(b0); mSPI.writeByte(b1); mSPI.writeByte(b2);</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="class_a_p_a102_controller.html">APA102Controller</a>() {}</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0"> 164</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0">init</a>() {</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; mSPI.init();</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb"> 168</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428">showColor</a>(<a class="code" href="struct_c_r_g_b.html">CRGB</a>(0,0,0), nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a>(0,0,0));</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0"> 126</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; mWaitDelay.wait();</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; mSPI.template writePixels&lt;0, DATA_NOP, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; mWaitDelay.mark();</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0"> 133</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; mWaitDelay.wait();</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; mSPI.template writePixels&lt;0, DATA_NOP, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; mWaitDelay.mark();</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;};</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(25)&gt;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_w_s2803_controller.html"> 142</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2803_controller.html">WS2803Controller</a> : <span class="keyword">public</span> <a class="code" href="class_w_s2801_controller.html">WS2801Controller</a>&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED&gt; {};</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="comment">// APA102 definition - takes data/clock/select pin values (N.B. should take an SPI definition?)</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = BGR, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(24)&gt;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html"> 156</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_p_a102_controller.html">APA102Controller</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">typedef</span> <a class="code" href="class_s_p_i_output.html">SPIOutput&lt;DATA_PIN, CLOCK_PIN, SPI_SPEED&gt;</a> <a class="code" href="class_s_p_i_output.html">SPI</a>;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; SPI mSPI;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordtype">void</span> startBoundary() { mSPI.writeWord(0); mSPI.writeWord(0); }</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">void</span> endBoundary(<span class="keywordtype">int</span> nLeds) { <span class="keywordtype">int</span> nBytes = (nLeds/32); <span class="keywordflow">do</span> { mSPI.writeByte(0xFF); mSPI.writeByte(0x00); mSPI.writeByte(0x00); mSPI.writeByte(0x00); } <span class="keywordflow">while</span>(nBytes--); }</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> writeLed(uint8_t b0, uint8_t b1, uint8_t b2) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) {</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; mSPI.writeByte(0xFF); mSPI.writeByte(b0); mSPI.writeByte(b1); mSPI.writeByte(b2);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="class_a_p_a102_controller.html">APA102Controller</a>() {}</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0"> 170</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0">init</a>() {</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; mSPI.init();</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428"> 174</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> pixels(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>());</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; mSPI.select();</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; startBoundary();</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; uint8_t b = pixels.loadAndScale0(); </div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; mSPI.writeWord(0xFF00 | b); </div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; uint16_t w = pixels.loadAndScale1() &lt;&lt; 8; </div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; w |= pixels.loadAndScale2(); </div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; mSPI.writeWord(w); </div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; pixels.stepDithering();</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; endBoundary(nLeds);</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; mSPI.release();</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332"> 194</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> pixels(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>());</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; mSPI.select();</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; startBoundary();</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; uint16_t b = 0xFF00 | (uint16_t)pixels.loadAndScale0(); </div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; mSPI.writeWord(b); </div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; uint16_t w = pixels.loadAndScale1() &lt;&lt; 8; </div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; w |= pixels.loadAndScale2(); </div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; mSPI.writeWord(w); </div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; pixels.advanceData();</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; pixels.stepDithering();</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; endBoundary(nLeds);</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; mSPI.release();</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332"> 215</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> pixels(data, nLeds,, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>());</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; mSPI.select();</div>
+<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb"> 174</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428">showColor</a>(<a class="code" href="struct_c_r_g_b.html">CRGB</a>(0,0,0), nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a>(0,0,0));</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428"> 180</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> pixels(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>());</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; mSPI.select();</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; startBoundary();</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; uint8_t b = pixels.loadAndScale0();</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; mSPI.writeWord(0xFF00 | b);</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; uint16_t w = pixels.loadAndScale1() &lt;&lt; 8;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; w |= pixels.loadAndScale2();</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; mSPI.writeWord(w);</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; pixels.stepDithering();</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; endBoundary(nLeds);</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; mSPI.waitFully();</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; mSPI.release();</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332"> 200</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> pixels(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>());</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; mSPI.select();</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; startBoundary();</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; uint16_t b = 0xFF00 | (uint16_t)pixels.loadAndScale0();</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; mSPI.writeWord(b);</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; uint16_t w = pixels.loadAndScale1() &lt;&lt; 8;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; w |= pixels.loadAndScale2();</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; mSPI.writeWord(w);</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; pixels.advanceData();</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; pixels.stepDithering();</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; endBoundary(nLeds);</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; mSPI.waitFully();</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; mSPI.release();</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; startBoundary();</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; mSPI.writeByte(0xFF); </div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; uint8_t b = pixels.loadAndScale0(); mSPI.writeByte(b); </div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; b = pixels.loadAndScale1(); mSPI.writeByte(b); </div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; b = pixels.loadAndScale2(); mSPI.writeByte(b); </div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; pixels.advanceData();</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; pixels.stepDithering();</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; }</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; endBoundary(nLeds);</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; mSPI.release();</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;};</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment">// P9813 definition - takes data/clock/select pin values (N.B. should take an SPI definition?)</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(10)&gt;</div>
-<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="class_p9813_controller.html"> 249</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_p9813_controller.html">P9813Controller</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">typedef</span> <a class="code" href="class_s_p_i_output.html">SPIOutput&lt;DATA_PIN, CLOCK_PIN, SPI_SPEED&gt;</a> <a class="code" href="class_s_p_i_output.html">SPI</a>;</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; SPI mSPI;</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordtype">void</span> writeBoundary() { mSPI.writeWord(0); mSPI.writeWord(0); }</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> writeLed(uint8_t r, uint8_t g, uint8_t b) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) {</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">register</span> uint8_t top = 0xC0 | ((~b &amp; 0xC0) &gt;&gt; 2) | ((~g &amp; 0xC0) &gt;&gt; 4) | ((~r &amp; 0xC0) &gt;&gt; 6);</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; mSPI.writeByte(top); mSPI.writeByte(b); mSPI.writeByte(g); mSPI.writeByte(r);</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="class_p9813_controller.html">P9813Controller</a>() {}</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a"> 263</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a">init</a>() {</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; mSPI.init();</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
-<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c"> 267</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a">showColor</a>(<a class="code" href="struct_c_r_g_b.html">CRGB</a>(0,0,0), nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a>(0,0,0));</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332"> 221</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> pixels(data, nLeds,, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>());</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; mSPI.select();</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; startBoundary();</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; mSPI.writeByte(0xFF);</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; uint8_t b = pixels.loadAndScale0(); mSPI.writeByte(b);</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; b = pixels.loadAndScale1(); mSPI.writeByte(b);</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; b = pixels.loadAndScale2(); mSPI.writeByte(b);</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; pixels.advanceData();</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; pixels.stepDithering();</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; endBoundary(nLeds);</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; mSPI.waitFully();</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; mSPI.release();</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;};</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment">// P9813 definition - takes data/clock/select pin values (N.B. should take an SPI definition?)</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(10)&gt;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="class_p9813_controller.html"> 255</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_p9813_controller.html">P9813Controller</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">typedef</span> <a class="code" href="class_s_p_i_output.html">SPIOutput&lt;DATA_PIN, CLOCK_PIN, SPI_SPEED&gt;</a> <a class="code" href="class_s_p_i_output.html">SPI</a>;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; SPI mSPI;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordtype">void</span> writeBoundary() { mSPI.writeWord(0); mSPI.writeWord(0); }</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> writeLed(uint8_t r, uint8_t g, uint8_t b) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) {</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">register</span> uint8_t top = 0xC0 | ((~b &amp; 0xC0) &gt;&gt; 2) | ((~g &amp; 0xC0) &gt;&gt; 4) | ((~r &amp; 0xC0) &gt;&gt; 6);</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; mSPI.writeByte(top); mSPI.writeByte(b); mSPI.writeByte(g); mSPI.writeByte(r);</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="class_p9813_controller.html">P9813Controller</a>() {}</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a"> 269</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a">init</a>() {</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; mSPI.init();</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; }</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
-<div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a"> 273</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> pixels(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>());</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; mSPI.select();</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; writeBoundary();</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">while</span>(nLeds--) {</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; writeLed(pixels.loadAndScale0(), pixels.loadAndScale1(), pixels.loadAndScale2());</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; pixels.stepDithering();</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; writeBoundary();</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; mSPI.release();</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; }</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81"> 289</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> pixels(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>());</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; mSPI.select();</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; writeBoundary();</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; writeLed(pixels.loadAndScale0(), pixels.loadAndScale1(), pixels.loadAndScale2());</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; pixels.advanceData();</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; pixels.stepDithering();</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div>
+<div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c"> 273</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a">showColor</a>(<a class="code" href="struct_c_r_g_b.html">CRGB</a>(0,0,0), nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a>(0,0,0));</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a"> 279</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> pixels(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>());</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; mSPI.select();</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; writeBoundary();</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">while</span>(nLeds--) {</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; writeLed(pixels.loadAndScale0(), pixels.loadAndScale1(), pixels.loadAndScale2());</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; pixels.stepDithering();</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; writeBoundary();</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; mSPI.waitFully();</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; mSPI.release();</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
+<div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81"> 295</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> pixels(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>());</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; mSPI.select();</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; writeBoundary();</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; mSPI.release();</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81"> 307</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> pixels(data, nLeds,, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>());</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; mSPI.select();</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; writeLed(pixels.loadAndScale0(), pixels.loadAndScale1(), pixels.loadAndScale2());</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; pixels.advanceData();</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; pixels.stepDithering();</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; writeBoundary();</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; mSPI.waitFully();</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; mSPI.release();</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; writeBoundary();</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; writeLed(pixels.loadAndScale0(), pixels.loadAndScale1(), pixels.loadAndScale2());</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; pixels.advanceData();</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; pixels.stepDithering();</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81"> 313</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> pixels(data, nLeds,, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>());</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; mSPI.select();</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; writeBoundary();</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; mSPI.release();</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;};</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; writeLed(pixels.loadAndScale0(), pixels.loadAndScale1(), pixels.loadAndScale2());</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; pixels.advanceData();</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; pixels.stepDithering();</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; writeBoundary();</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; mSPI.waitFully();</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="comment">// SM16716 definition - takes data/clock/select pin values (N.B. should take an SPI definition?)</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(16)&gt;</div>
-<div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html"> 339</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_m16716_controller.html">SM16716Controller</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">typedef</span> <a class="code" href="class_s_p_i_output.html">SPIOutput&lt;DATA_PIN, CLOCK_PIN, SPI_SPEED&gt;</a> <a class="code" href="class_s_p_i_output.html">SPI</a>;</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; SPI mSPI;</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordtype">void</span> writeHeader() {</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="comment">// Write out 50 zeros to the spi line (6 blocks of 8 followed by two single bit writes)</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; mSPI.select();</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; mSPI.writeBytesValueRaw(0, 6);</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; mSPI.release();</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; }</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <a class="code" href="class_s_m16716_controller.html">SM16716Controller</a>() {}</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div>
-<div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591"> 356</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591">init</a>() {</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; mSPI.init();</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; }</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div>
-<div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8"> 360</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; mSPI.select();</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">while</span>(nLeds--) {</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; mSPI.template writeBit&lt;0&gt;(1);</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; mSPI.writeByte(0);</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; mSPI.writeByte(0);</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; mSPI.writeByte(0);</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; mSPI.release();</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; writeHeader();</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; }</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677"> 375</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; mSPI.template writePixels&lt;FLAG_START_BIT, DATA_NOP, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; writeHeader();</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; }</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d"> 380</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="comment">// Make sure the FLAG_START_BIT flag is set to ensure that an extra 1 bit is sent at the start</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="comment">// of each triplet of bytes for rgb data</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="comment">// writeHeader();</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; mSPI.template writePixels&lt;FLAG_START_BIT, DATA_NOP, RGB_ORDER&gt;( <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; writeHeader();</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; }</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> CARGB *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; mSPI.writeBytesValue(0, 6);</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; mSPI.release();</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;};</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="comment">// SM16716 definition - takes data/clock/select pin values (N.B. should take an SPI definition?)</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(16)&gt;</div>
+<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html"> 345</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_m16716_controller.html">SM16716Controller</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keyword">typedef</span> <a class="code" href="class_s_p_i_output.html">SPIOutput&lt;DATA_PIN, CLOCK_PIN, SPI_SPEED&gt;</a> <a class="code" href="class_s_p_i_output.html">SPI</a>;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; SPI mSPI;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordtype">void</span> writeHeader() {</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="comment">// Write out 50 zeros to the spi line (6 blocks of 8 followed by two single bit writes)</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; mSPI.select();</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; mSPI.writeBytesValueRaw(0, 6);</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; mSPI.waitFully();</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; mSPI.release();</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <a class="code" href="class_s_m16716_controller.html">SM16716Controller</a>() {}</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div>
+<div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591"> 362</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591">init</a>() {</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; mSPI.init();</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8"> 366</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; mSPI.select();</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">while</span>(nLeds--) {</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; mSPI.template writeBit&lt;0&gt;(1);</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; mSPI.writeByte(0);</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; mSPI.writeByte(0);</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; mSPI.writeByte(0);</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; }</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; mSPI.waitFully();</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; mSPI.release();</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; writeHeader();</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; }</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div>
+<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677"> 381</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; mSPI.template writePixels&lt;FLAG_START_BIT, DATA_NOP, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; writeHeader();</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d"> 386</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="comment">// Make sure the FLAG_START_BIT flag is set to ensure that an extra 1 bit is sent at the start</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="comment">// of each triplet of bytes for rgb data</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="comment">// writeHeader();</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; mSPI.template writePixels&lt;FLAG_START_BIT, DATA_NOP, RGB_ORDER&gt;( <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; writeHeader();</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="comment">// Make sure the FLAG_START_BIT flag is set to ensure that an extra 1 bit is sent at the start</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="comment">// of each triplet of bytes for rgb data</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; mSPI.template writePixels&lt;FLAG_START_BIT, DATA_NOP, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;};</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="comment">// Clockless template instantiations - see clockless.h for how the timing values are used</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor">#ifdef FASTLED_HAS_CLOCKLESS</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="comment">// We want to force all avr&#39;s to use the Trinket controller when running at 8Mhz, because even the 328&#39;s at 8Mhz</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="comment">// need the more tightly defined timeframes.</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="preprocessor">#if (F_CPU == 8000000 || F_CPU == 16000000 || F_CPU == 24000000) // || F_CPU == 48000000 || F_CPU == 96000000) // 125ns/clock</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="preprocessor">#define FMUL (F_CPU/8000000)</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="comment">// LPD1886</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="class_l_p_d1886_controller1250_khz.html"> 418</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_l_p_d1886_controller1250_khz.html">LPD1886Controller1250Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 2 * FMUL, 3 * FMUL, 2 * FMUL, RGB_ORDER, 4&gt; {};</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="comment">// WS2811@800khz 2 clocks, 5 clocks, 3 clocks</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="class_w_s2812_controller800_khz.html"> 422</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 2 * FMUL, 5 * FMUL, 3 * FMUL, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="class_w_s2811_controller800_khz.html"> 425</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2811_controller800_khz.html">WS2811Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 3 * FMUL, 4 * FMUL, 3 * FMUL, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> CARGB *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; mSPI.writeBytesValue(0, 6);</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="comment">// Make sure the FLAG_START_BIT flag is set to ensure that an extra 1 bit is sent at the start</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="comment">// of each triplet of bytes for rgb data</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; mSPI.template writePixels&lt;FLAG_START_BIT, DATA_NOP, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;};</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="comment">// Clockless template instantiations - see clockless.h for how the timing values are used</span></div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="preprocessor">#ifdef FASTLED_HAS_CLOCKLESS</span></div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="comment">// We want to force all avr&#39;s to use the Trinket controller when running at 8Mhz, because even the 328&#39;s at 8Mhz</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="comment">// need the more tightly defined timeframes.</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="preprocessor">#if (F_CPU == 8000000 || F_CPU == 16000000 || F_CPU == 24000000) // || F_CPU == 48000000 || F_CPU == 96000000) // 125ns/clock</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor">#define FMUL (F_CPU/8000000)</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="comment">// LPD1886</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="class_l_p_d1886_controller1250_khz.html"> 424</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_l_p_d1886_controller1250_khz.html">LPD1886Controller1250Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 2 * FMUL, 3 * FMUL, 2 * FMUL, RGB_ORDER, 4&gt; {};</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="comment">// WS2811@800khz 2 clocks, 5 clocks, 3 clocks</span></div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="class_w_s2811_controller400_khz.html"> 428</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2811_controller400_khz.html">WS2811Controller400Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 4 * FMUL, 10 * FMUL, 6 * FMUL, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="class_w_s2812_controller800_khz.html"> 428</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 2 * FMUL, 5 * FMUL, 3 * FMUL, RGB_ORDER&gt; {};</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="class_u_c_s1903_controller400_khz.html"> 431</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_c_s1903_controller400_khz.html">UCS1903Controller400Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 4 * FMUL, 12 * FMUL, 4 * FMUL, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="class_w_s2811_controller800_khz.html"> 431</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2811_controller800_khz.html">WS2811Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 3 * FMUL, 4 * FMUL, 3 * FMUL, RGB_ORDER&gt; {};</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="class_u_c_s1903_b_controller800_khz.html"> 434</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_c_s1903_b_controller800_khz.html">UCS1903BController800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 2 * FMUL, 4 * FMUL, 4 * FMUL, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="class_w_s2811_controller400_khz.html"> 434</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2811_controller400_khz.html">WS2811Controller400Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 4 * FMUL, 10 * FMUL, 6 * FMUL, RGB_ORDER&gt; {};</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="class_u_c_s1904_controller800_khz.html"> 437</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_c_s1904_controller800_khz.html">UCS1904Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 3 * FMUL, 3 * FMUL, 4 * FMUL, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="class_u_c_s1903_controller400_khz.html"> 437</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_c_s1903_controller400_khz.html">UCS1903Controller400Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 4 * FMUL, 12 * FMUL, 4 * FMUL, RGB_ORDER&gt; {};</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="class_t_m1809_controller800_khz.html"> 440</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 2 * FMUL, 5 * FMUL, 3 * FMUL, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="class_u_c_s1903_b_controller800_khz.html"> 440</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_c_s1903_b_controller800_khz.html">UCS1903BController800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 2 * FMUL, 4 * FMUL, 4 * FMUL, RGB_ORDER&gt; {};</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00443"></a><span class="lineno"><a class="line" href="class_t_m1803_controller400_khz.html"> 443</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_t_m1803_controller400_khz.html">TM1803Controller400Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 6 * FMUL, 9 * FMUL, 6 * FMUL, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00443"></a><span class="lineno"><a class="line" href="class_u_c_s1904_controller800_khz.html"> 443</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_c_s1904_controller800_khz.html">UCS1904Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 3 * FMUL, 3 * FMUL, 4 * FMUL, RGB_ORDER&gt; {};</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="class_t_m1829_controller800_khz.html"> 446</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_t_m1829_controller800_khz.html">TM1829Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 2 * FMUL, 5 * FMUL, 3 * FMUL, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="class_t_m1809_controller800_khz.html"> 446</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 2 * FMUL, 5 * FMUL, 3 * FMUL, RGB_ORDER&gt; {};</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="class_g_w6205_controller400_khz.html"> 449</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_g_w6205_controller400_khz.html">GW6205Controller400Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 6 * FMUL, 7 * FMUL, 6 * FMUL, RGB_ORDER, 4&gt; {};</div>
+<div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="class_t_m1803_controller400_khz.html"> 449</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_t_m1803_controller400_khz.html">TM1803Controller400Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 6 * FMUL, 9 * FMUL, 6 * FMUL, RGB_ORDER&gt; {};</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="class_g_w6205_controller800_khz.html"> 452</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_g_w6205_controller800_khz.html">GW6205Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 2 * FMUL, 4 * FMUL, 4 * FMUL, RGB_ORDER, 4&gt; {};</div>
+<div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="class_t_m1829_controller800_khz.html"> 452</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_t_m1829_controller800_khz.html">TM1829Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 2 * FMUL, 5 * FMUL, 3 * FMUL, RGB_ORDER&gt; {};</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="comment">// GW6205@400khz - 800ns, 800ns, 800ns</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="keyword">class </span><a class="code" href="class_g_w6205_controller400_khz.html">GW6205Controller400Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(800), NS(800), NS(800), RGB_ORDER, 4&gt; {};</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;<span class="preprocessor">#if NO_TIME(800, 800, 800)</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the GW6205@400khz&quot;</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="comment">// GW6205@400khz - 400ns, 400ns, 400ns</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="keyword">class </span><a class="code" href="class_g_w6205_controller800_khz.html">GW6205Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(400), NS(400), NS(400), RGB_ORDER, 4&gt; {};</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor">#if NO_TIME(400, 400, 400)</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the GW6205@400khz&quot;</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="comment">// UCS1903 - 500ns, 1500ns, 500ns</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="keyword">class </span><a class="code" href="class_u_c_s1903_controller400_khz.html">UCS1903Controller400Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(500), NS(1500), NS(500), RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="preprocessor">#if NO_TIME(500, 1500, 500)</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the UCS1903@400khz&quot;</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="comment">// UCS1903B - 400ns, 450ns, 450ns</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="keyword">class </span><a class="code" href="class_u_c_s1903_b_controller800_khz.html">UCS1903BController800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(400), NS(450), NS(450), RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="preprocessor">#if NO_TIME(400, 450, 450)</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the UCS1903B@800khz&quot;</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="comment">// UCS1904 - 400ns, 400ns, 450ns</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="keyword">class </span><a class="code" href="class_u_c_s1904_controller800_khz.html">UCS1904Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(400), NS(400), NS(450), RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor">#if NO_TIME(400, 400, 450)</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the UCS1904@800khz&quot;</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="comment">// TM1809 - 350ns, 350ns, 550ns</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="keyword">class </span><a class="code" href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(350), NS(350), NS(450), RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="preprocessor">#if NO_TIME(350, 350, 550)</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the TM1809&quot;</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="comment">// WS2811 - 320ns, 320ns, 640ns</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2811_controller800_khz.html">WS2811Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(320), NS(320), NS(640), RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor">#if NO_TIME(320, 320, 640)</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the WS2811 (800khz)&quot;</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="comment">// WS2812 - 250ns, 625ns, 375ns</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(250), NS(625), NS(375), RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor">#if NO_TIME(250, 625, 375)</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the WS2812 (800khz)&quot;</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="comment">// WS2811@400khz - 800ns, 800ns, 900ns</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2811_controller400_khz.html">WS2811Controller400Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(800), NS(800), NS(900), RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor">#if NO_TIME(800, 800, 900)</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the WS2811 (400Khz)&quot;</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="comment">// 750NS, 750NS, 750NS</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="keyword">class </span><a class="code" href="class_t_m1803_controller400_khz.html">TM1803Controller400Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(700), NS(1100), NS(700), RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor">#if NO_TIME(750, 750, 750)</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the TM1803&quot;</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="class_g_w6205_controller400_khz.html"> 455</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_g_w6205_controller400_khz.html">GW6205Controller400Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 6 * FMUL, 7 * FMUL, 6 * FMUL, RGB_ORDER, 4&gt; {};</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="class_g_w6205_controller800_khz.html"> 458</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_g_w6205_controller800_khz.html">GW6205Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 2 * FMUL, 4 * FMUL, 4 * FMUL, RGB_ORDER, 4&gt; {};</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;<span class="comment">// GW6205@400khz - 800ns, 800ns, 800ns</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="keyword">class </span><a class="code" href="class_g_w6205_controller400_khz.html">GW6205Controller400Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(800), NS(800), NS(800), RGB_ORDER, 4&gt; {};</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="preprocessor">#if NO_TIME(800, 800, 800)</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the GW6205@400khz&quot;</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="comment">// GW6205@400khz - 400ns, 400ns, 400ns</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="keyword">class </span><a class="code" href="class_g_w6205_controller800_khz.html">GW6205Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(400), NS(400), NS(400), RGB_ORDER, 4&gt; {};</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="preprocessor">#if NO_TIME(400, 400, 400)</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the GW6205@400khz&quot;</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="comment">// UCS1903 - 500ns, 1500ns, 500ns</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="keyword">class </span><a class="code" href="class_u_c_s1903_controller400_khz.html">UCS1903Controller400Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(500), NS(1500), NS(500), RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="preprocessor">#if NO_TIME(500, 1500, 500)</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the UCS1903@400khz&quot;</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="comment">// UCS1903B - 400ns, 450ns, 450ns</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="keyword">class </span><a class="code" href="class_u_c_s1903_b_controller800_khz.html">UCS1903BController800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(400), NS(450), NS(450), RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor">#if NO_TIME(400, 450, 450)</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the UCS1903B@800khz&quot;</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="comment">// UCS1904 - 400ns, 400ns, 450ns</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="keyword">class </span><a class="code" href="class_u_c_s1904_controller800_khz.html">UCS1904Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(400), NS(400), NS(450), RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor">#if NO_TIME(400, 400, 450)</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the UCS1904@800khz&quot;</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="comment">// TM1809 - 350ns, 350ns, 550ns</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="keyword">class </span><a class="code" href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(350), NS(350), NS(450), RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="preprocessor">#if NO_TIME(350, 350, 550)</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the TM1809&quot;</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="comment">// WS2811 - 320ns, 320ns, 640ns</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2811_controller800_khz.html">WS2811Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(320), NS(320), NS(640), RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor">#if NO_TIME(320, 320, 640)</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the WS2811 (800khz)&quot;</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="comment">// WS2812 - 250ns, 625ns, 375ns</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(250), NS(625), NS(375), RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor">#if NO_TIME(250, 625, 375)</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the WS2812 (800khz)&quot;</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="comment">// WS2811@400khz - 800ns, 800ns, 900ns</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2811_controller400_khz.html">WS2811Controller400Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(800), NS(800), NS(900), RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor">#if NO_TIME(800, 800, 900)</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the WS2811 (400Khz)&quot;</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="comment">// 750NS, 750NS, 750NS</span></div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="keyword">class </span><a class="code" href="class_t_m1829_controller800_khz.html">TM1829Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(340), NS(340), NS(550), RGB_ORDER, 0, true, 500&gt; {};</div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;</div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="class_t_m1829_controller1600_khz.html"> 529</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_t_m1829_controller1600_khz.html">TM1829Controller1600Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(100), NS(300), NS(200), RGB_ORDER, 0, true, 500&gt; {};</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor">#if NO_TIME(100, 300, 200)</span></div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for TM1829@1.6Mhz&quot;</span></div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;<span class="keyword">class </span><a class="code" href="class_t_m1803_controller400_khz.html">TM1803Controller400Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(700), NS(1100), NS(700), RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="preprocessor">#if NO_TIME(750, 750, 750)</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the TM1803&quot;</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="keyword">class </span><a class="code" href="class_t_m1829_controller800_khz.html">TM1829Controller800Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(340), NS(340), NS(550), RGB_ORDER, 0, true, 500&gt; {};</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="keyword">class </span><a class="code" href="class_l_p_d1886_controller1250_khz.html">LPD1886Controller1250Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(200), NS(400), NS(200), RGB_ORDER, 4&gt; {};</div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor">#if NO_TIME(200,400,200)</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles for LPD1886&quot;</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno"><a class="line" href="class_t_m1829_controller1600_khz.html"> 535</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_t_m1829_controller1600_khz.html">TM1829Controller1600Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(100), NS(300), NS(200), RGB_ORDER, 0, true, 500&gt; {};</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="preprocessor">#if NO_TIME(100, 300, 200)</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for TM1829@1.6Mhz&quot;</span></div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;</div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;FASTLED_NAMESPACE_END</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;<span class="keyword">class </span><a class="code" href="class_l_p_d1886_controller1250_khz.html">LPD1886Controller1250Khz</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(200), NS(400), NS(200), RGB_ORDER, 4&gt; {};</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;<span class="preprocessor">#if NO_TIME(200,400,200)</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles for LPD1886&quot;</span></div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_s_p_i_output_html"><div class="ttname"><a href="class_s_p_i_output.html">SPIOutput&lt; DATA_PIN, CLOCK_PIN, SPI_SPEED &gt;</a></div></div>
-<div class="ttc" id="class_u_c_s1903_controller400_khz_html"><div class="ttname"><a href="class_u_c_s1903_controller400_khz.html">UCS1903Controller400Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:431</div></div>
-<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdef"><b>Definition:</b> pixeltypes.h:83</div></div>
-<div class="ttc" id="class_u_c_s1904_controller800_khz_html"><div class="ttname"><a href="class_u_c_s1904_controller800_khz.html">UCS1904Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:437</div></div>
+<div class="ttc" id="class_u_c_s1903_controller400_khz_html"><div class="ttname"><a href="class_u_c_s1903_controller400_khz.html">UCS1903Controller400Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:437</div></div>
+<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdoc">Representation of an RGB pixel (Red, Green, Blue) </div><div class="ttdef"><b>Definition:</b> pixeltypes.h:88</div></div>
+<div class="ttc" id="class_u_c_s1904_controller800_khz_html"><div class="ttname"><a href="class_u_c_s1904_controller800_khz.html">UCS1904Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:443</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html"><div class="ttname"><a href="class_c_l_e_d_controller.html">CLEDController</a></div><div class="ttdoc">Base definition for an LED controller. </div><div class="ttdef"><b>Definition:</b> controller.h:34</div></div>
-<div class="ttc" id="class_w_s2801_controller_html_ad6187b68bccb831cd5cab3cffbd6bdb4"><div class="ttname"><a href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4">WS2801Controller::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:101</div></div>
-<div class="ttc" id="class_l_p_d8806_controller_html_a4f6471eddcfe5445502b02f1f3179259"><div class="ttname"><a href="class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259">LPD8806Controller::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)</div><div class="ttdoc">set all the leds on the controller to a given color </div><div class="ttdef"><b>Definition:</b> chipsets.h:64</div></div>
-<div class="ttc" id="class_w_s2811_controller800_khz_html"><div class="ttname"><a href="class_w_s2811_controller800_khz.html">WS2811Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:425</div></div>
-<div class="ttc" id="class_t_m1829_controller1600_khz_html"><div class="ttname"><a href="class_t_m1829_controller1600_khz.html">TM1829Controller1600Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:529</div></div>
-<div class="ttc" id="class_l_p_d8806_controller_html_a7da0ecf67004256c83131406b2f4889e"><div class="ttname"><a href="class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e">LPD8806Controller::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)</div><div class="ttdoc">clear out/zero out the given number of leds. </div><div class="ttdef"><b>Definition:</b> chipsets.h:54</div></div>
-<div class="ttc" id="class_l_p_d8806_controller_html"><div class="ttname"><a href="class_l_p_d8806_controller.html">LPD8806Controller</a></div><div class="ttdoc">LPD8806 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:20</div></div>
-<div class="ttc" id="class_a_p_a102_controller_html_a245148d2621eb73999ab673852c49332"><div class="ttname"><a href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332">APA102Controller::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:194</div></div>
-<div class="ttc" id="class_u_c_s1903_b_controller800_khz_html"><div class="ttname"><a href="class_u_c_s1903_b_controller800_khz.html">UCS1903BController800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:434</div></div>
-<div class="ttc" id="class_p9813_controller_html_ad6fcb36b9378df660721ae24ed857b8a"><div class="ttname"><a href="class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a">P9813Controller::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:263</div></div>
-<div class="ttc" id="class_s_m16716_controller_html_a1ba5a4e3f00b2235f278b9fb9aeb1591"><div class="ttname"><a href="class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591">SM16716Controller::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:356</div></div>
-<div class="ttc" id="class_g_w6205_controller800_khz_html"><div class="ttname"><a href="class_g_w6205_controller800_khz.html">GW6205Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:452</div></div>
-<div class="ttc" id="class_a_p_a102_controller_html_a0e875981e076baf9cd1c5e7599b83cd0"><div class="ttname"><a href="class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0">APA102Controller::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:164</div></div>
-<div class="ttc" id="class_l_p_d8806_controller_html_abe5be69b938d0709cfc77fcf57c75608"><div class="ttname"><a href="class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608">LPD8806Controller::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:49</div></div>
-<div class="ttc" id="class_p9813_controller_html_ae60dbfc4d27c62448032c61e7730ec8a"><div class="ttname"><a href="class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a">P9813Controller::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)</div><div class="ttdoc">set all the leds on the controller to a given color </div><div class="ttdef"><b>Definition:</b> chipsets.h:273</div></div>
-<div class="ttc" id="class_s_m16716_controller_html_a89d3d5ef2239a9d452bc2478b0549ad8"><div class="ttname"><a href="class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8">SM16716Controller::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)</div><div class="ttdoc">clear out/zero out the given number of leds. </div><div class="ttdef"><b>Definition:</b> chipsets.h:360</div></div>
+<div class="ttc" id="class_w_s2801_controller_html_ad6187b68bccb831cd5cab3cffbd6bdb4"><div class="ttname"><a href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4">WS2801Controller::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:107</div></div>
+<div class="ttc" id="class_l_p_d8806_controller_html_a4f6471eddcfe5445502b02f1f3179259"><div class="ttname"><a href="class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259">LPD8806Controller::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)</div><div class="ttdoc">set all the leds on the controller to a given color </div><div class="ttdef"><b>Definition:</b> chipsets.h:70</div></div>
+<div class="ttc" id="class_w_s2811_controller800_khz_html"><div class="ttname"><a href="class_w_s2811_controller800_khz.html">WS2811Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:431</div></div>
+<div class="ttc" id="class_t_m1829_controller1600_khz_html"><div class="ttname"><a href="class_t_m1829_controller1600_khz.html">TM1829Controller1600Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:535</div></div>
+<div class="ttc" id="class_l_p_d8806_controller_html_a7da0ecf67004256c83131406b2f4889e"><div class="ttname"><a href="class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e">LPD8806Controller::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)</div><div class="ttdoc">clear out/zero out the given number of leds. </div><div class="ttdef"><b>Definition:</b> chipsets.h:60</div></div>
+<div class="ttc" id="class_l_p_d8806_controller_html"><div class="ttname"><a href="class_l_p_d8806_controller.html">LPD8806Controller</a></div><div class="ttdoc">LPD8806 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:26</div></div>
+<div class="ttc" id="class_a_p_a102_controller_html_a245148d2621eb73999ab673852c49332"><div class="ttname"><a href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332">APA102Controller::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:200</div></div>
+<div class="ttc" id="class_u_c_s1903_b_controller800_khz_html"><div class="ttname"><a href="class_u_c_s1903_b_controller800_khz.html">UCS1903BController800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:440</div></div>
+<div class="ttc" id="class_p9813_controller_html_ad6fcb36b9378df660721ae24ed857b8a"><div class="ttname"><a href="class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a">P9813Controller::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:269</div></div>
+<div class="ttc" id="class_s_m16716_controller_html_a1ba5a4e3f00b2235f278b9fb9aeb1591"><div class="ttname"><a href="class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591">SM16716Controller::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:362</div></div>
+<div class="ttc" id="class_g_w6205_controller800_khz_html"><div class="ttname"><a href="class_g_w6205_controller800_khz.html">GW6205Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:458</div></div>
+<div class="ttc" id="class_a_p_a102_controller_html_a0e875981e076baf9cd1c5e7599b83cd0"><div class="ttname"><a href="class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0">APA102Controller::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:170</div></div>
+<div class="ttc" id="class_l_p_d8806_controller_html_abe5be69b938d0709cfc77fcf57c75608"><div class="ttname"><a href="class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608">LPD8806Controller::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:55</div></div>
+<div class="ttc" id="class_p9813_controller_html_ae60dbfc4d27c62448032c61e7730ec8a"><div class="ttname"><a href="class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a">P9813Controller::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)</div><div class="ttdoc">set all the leds on the controller to a given color </div><div class="ttdef"><b>Definition:</b> chipsets.h:279</div></div>
+<div class="ttc" id="class_s_m16716_controller_html_a89d3d5ef2239a9d452bc2478b0549ad8"><div class="ttname"><a href="class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8">SM16716Controller::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)</div><div class="ttdoc">clear out/zero out the given number of leds. </div><div class="ttdef"><b>Definition:</b> chipsets.h:366</div></div>
<div class="ttc" id="struct_pixel_controller_html"><div class="ttname"><a href="struct_pixel_controller.html">PixelController</a></div><div class="ttdoc">Pixel controller class. </div><div class="ttdef"><b>Definition:</b> controller.h:181</div></div>
-<div class="ttc" id="class_w_s2812_controller800_khz_html"><div class="ttname"><a href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:422</div></div>
-<div class="ttc" id="class_t_m1803_controller400_khz_html"><div class="ttname"><a href="class_t_m1803_controller400_khz.html">TM1803Controller400Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:443</div></div>
-<div class="ttc" id="class_p9813_controller_html_aac4f48b0da93055c0da7285839c4ce81"><div class="ttname"><a href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81">P9813Controller::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:289</div></div>
-<div class="ttc" id="class_t_m1809_controller800_khz_html"><div class="ttname"><a href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:440</div></div>
-<div class="ttc" id="class_a_p_a102_controller_html_aadcdde1b8fc6c680504fe9455ceff0fb"><div class="ttname"><a href="class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb">APA102Controller::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)</div><div class="ttdoc">clear out/zero out the given number of leds. </div><div class="ttdef"><b>Definition:</b> chipsets.h:168</div></div>
-<div class="ttc" id="class_w_s2801_controller_html"><div class="ttname"><a href="class_w_s2801_controller.html">WS2801Controller</a></div><div class="ttdoc">WS2801 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:94</div></div>
-<div class="ttc" id="class_l_p_d1886_controller1250_khz_html"><div class="ttname"><a href="class_l_p_d1886_controller1250_khz.html">LPD1886Controller1250Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:418</div></div>
-<div class="ttc" id="class_w_s2801_controller_html_a867d4249b5921e0d717c6c21038bb11c"><div class="ttname"><a href="class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c">WS2801Controller::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)</div><div class="ttdoc">clear out/zero out the given number of leds. </div><div class="ttdef"><b>Definition:</b> chipsets.h:106</div></div>
-<div class="ttc" id="class_t_m1829_controller800_khz_html"><div class="ttname"><a href="class_t_m1829_controller800_khz.html">TM1829Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:446</div></div>
+<div class="ttc" id="class_w_s2812_controller800_khz_html"><div class="ttname"><a href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:428</div></div>
+<div class="ttc" id="class_t_m1803_controller400_khz_html"><div class="ttname"><a href="class_t_m1803_controller400_khz.html">TM1803Controller400Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:449</div></div>
+<div class="ttc" id="class_p9813_controller_html_aac4f48b0da93055c0da7285839c4ce81"><div class="ttname"><a href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81">P9813Controller::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:295</div></div>
+<div class="ttc" id="class_t_m1809_controller800_khz_html"><div class="ttname"><a href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:446</div></div>
+<div class="ttc" id="class_a_p_a102_controller_html_aadcdde1b8fc6c680504fe9455ceff0fb"><div class="ttname"><a href="class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb">APA102Controller::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)</div><div class="ttdoc">clear out/zero out the given number of leds. </div><div class="ttdef"><b>Definition:</b> chipsets.h:174</div></div>
+<div class="ttc" id="class_w_s2801_controller_html"><div class="ttname"><a href="class_w_s2801_controller.html">WS2801Controller</a></div><div class="ttdoc">WS2801 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:100</div></div>
+<div class="ttc" id="class_l_p_d1886_controller1250_khz_html"><div class="ttname"><a href="class_l_p_d1886_controller1250_khz.html">LPD1886Controller1250Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:424</div></div>
+<div class="ttc" id="class_w_s2801_controller_html_a867d4249b5921e0d717c6c21038bb11c"><div class="ttname"><a href="class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c">WS2801Controller::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)</div><div class="ttdoc">clear out/zero out the given number of leds. </div><div class="ttdef"><b>Definition:</b> chipsets.h:112</div></div>
+<div class="ttc" id="class_t_m1829_controller800_khz_html"><div class="ttname"><a href="class_t_m1829_controller800_khz.html">TM1829Controller800Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:452</div></div>
<div class="ttc" id="class_c_min_wait_html"><div class="ttname"><a href="class_c_min_wait.html">CMinWait&lt; 1000 &gt;</a></div></div>
-<div class="ttc" id="class_l_p_d8806_controller_html_a31d4e01a823682556e26748193f722e5"><div class="ttname"><a href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5">LPD8806Controller::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:68</div></div>
-<div class="ttc" id="class_w_s2801_controller_html_a615609bf16dd4c8fcc9ccf286ca52501"><div class="ttname"><a href="class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501">WS2801Controller::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)</div><div class="ttdoc">set all the leds on the controller to a given color </div><div class="ttdef"><b>Definition:</b> chipsets.h:114</div></div>
-<div class="ttc" id="class_p9813_controller_html_ac2fddaa8ac8860649da9865b58dca13c"><div class="ttname"><a href="class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c">P9813Controller::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)</div><div class="ttdoc">clear out/zero out the given number of leds. </div><div class="ttdef"><b>Definition:</b> chipsets.h:267</div></div>
-<div class="ttc" id="class_p9813_controller_html"><div class="ttname"><a href="class_p9813_controller.html">P9813Controller</a></div><div class="ttdoc">P9813 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:249</div></div>
-<div class="ttc" id="class_s_m16716_controller_html_a3d720053186fd61d6ad90d48cac3d57d"><div class="ttname"><a href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d">SM16716Controller::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:380</div></div>
-<div class="ttc" id="class_a_p_a102_controller_html_a0aa9f2896fe8b23554623fd3de0d5428"><div class="ttname"><a href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428">APA102Controller::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)</div><div class="ttdoc">set all the leds on the controller to a given color </div><div class="ttdef"><b>Definition:</b> chipsets.h:174</div></div>
-<div class="ttc" id="class_g_w6205_controller400_khz_html"><div class="ttname"><a href="class_g_w6205_controller400_khz.html">GW6205Controller400Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:449</div></div>
-<div class="ttc" id="class_w_s2811_controller400_khz_html"><div class="ttname"><a href="class_w_s2811_controller400_khz.html">WS2811Controller400Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:428</div></div>
+<div class="ttc" id="class_l_p_d8806_controller_html_a31d4e01a823682556e26748193f722e5"><div class="ttname"><a href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5">LPD8806Controller::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:74</div></div>
+<div class="ttc" id="class_w_s2801_controller_html_a615609bf16dd4c8fcc9ccf286ca52501"><div class="ttname"><a href="class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501">WS2801Controller::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)</div><div class="ttdoc">set all the leds on the controller to a given color </div><div class="ttdef"><b>Definition:</b> chipsets.h:120</div></div>
+<div class="ttc" id="class_p9813_controller_html_ac2fddaa8ac8860649da9865b58dca13c"><div class="ttname"><a href="class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c">P9813Controller::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)</div><div class="ttdoc">clear out/zero out the given number of leds. </div><div class="ttdef"><b>Definition:</b> chipsets.h:273</div></div>
+<div class="ttc" id="class_p9813_controller_html"><div class="ttname"><a href="class_p9813_controller.html">P9813Controller</a></div><div class="ttdoc">P9813 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:255</div></div>
+<div class="ttc" id="class_s_m16716_controller_html_a3d720053186fd61d6ad90d48cac3d57d"><div class="ttname"><a href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d">SM16716Controller::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:386</div></div>
+<div class="ttc" id="class_a_p_a102_controller_html_a0aa9f2896fe8b23554623fd3de0d5428"><div class="ttname"><a href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428">APA102Controller::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)</div><div class="ttdoc">set all the leds on the controller to a given color </div><div class="ttdef"><b>Definition:</b> chipsets.h:180</div></div>
+<div class="ttc" id="class_g_w6205_controller400_khz_html"><div class="ttname"><a href="class_g_w6205_controller400_khz.html">GW6205Controller400Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:455</div></div>
+<div class="ttc" id="class_w_s2811_controller400_khz_html"><div class="ttname"><a href="class_w_s2811_controller400_khz.html">WS2811Controller400Khz</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:434</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_a676f705adf93898739a405b85150a3e7"><div class="ttname"><a href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">CLEDController::getDither</a></div><div class="ttdeci">uint8_t getDither()</div><div class="ttdoc">get the dithering option currently set for this controller </div><div class="ttdef"><b>Definition:</b> controller.h:135</div></div>
-<div class="ttc" id="class_a_p_a102_controller_html"><div class="ttname"><a href="class_a_p_a102_controller.html">APA102Controller</a></div><div class="ttdoc">APA102 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:150</div></div>
-<div class="ttc" id="class_w_s2803_controller_html"><div class="ttname"><a href="class_w_s2803_controller.html">WS2803Controller</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:136</div></div>
+<div class="ttc" id="class_a_p_a102_controller_html"><div class="ttname"><a href="class_a_p_a102_controller.html">APA102Controller</a></div><div class="ttdoc">APA102 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:156</div></div>
+<div class="ttc" id="class_w_s2803_controller_html"><div class="ttname"><a href="class_w_s2803_controller.html">WS2803Controller</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:142</div></div>
<div class="ttc" id="group___bitswap_html_ga01396a2e40133293c3badab349ac99f0"><div class="ttname"><a href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline void swapbits8(bitswap_type in</div><div class="ttdoc">Do an 8byte by 8bit rotation. </div><div class="ttdef"><b>Definition:</b> fastled_delay.h:82</div></div>
-<div class="ttc" id="class_s_m16716_controller_html_a7df8b8a34e0dc067c69aa056deca9677"><div class="ttname"><a href="class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677">SM16716Controller::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)</div><div class="ttdoc">set all the leds on the controller to a given color </div><div class="ttdef"><b>Definition:</b> chipsets.h:375</div></div>
-<div class="ttc" id="class_s_m16716_controller_html"><div class="ttname"><a href="class_s_m16716_controller.html">SM16716Controller</a></div><div class="ttdoc">SM16716 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:339</div></div>
-<div class="ttc" id="class_w_s2801_controller_html_a69fca4db95f5f60f27d7d1a8c7fa16a0"><div class="ttname"><a href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">WS2801Controller::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:120</div></div>
+<div class="ttc" id="class_s_m16716_controller_html_a7df8b8a34e0dc067c69aa056deca9677"><div class="ttname"><a href="class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677">SM16716Controller::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)</div><div class="ttdoc">set all the leds on the controller to a given color </div><div class="ttdef"><b>Definition:</b> chipsets.h:381</div></div>
+<div class="ttc" id="class_s_m16716_controller_html"><div class="ttname"><a href="class_s_m16716_controller.html">SM16716Controller</a></div><div class="ttdoc">SM16716 controller class. </div><div class="ttdef"><b>Definition:</b> chipsets.h:345</div></div>
+<div class="ttc" id="class_w_s2801_controller_html_a69fca4db95f5f60f27d7d1a8c7fa16a0"><div class="ttname"><a href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">WS2801Controller::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div><div class="ttdef"><b>Definition:</b> chipsets.h:126</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_a_p_a102_controller-members.html b/docs/3.1/class_a_p_a102_controller-members.html
index db5d92eb..590224fc 100644
--- a/docs/3.1/class_a_p_a102_controller-members.html
+++ b/docs/3.1/class_a_p_a102_controller-members.html
@@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_a_p_a102_controller.html b/docs/3.1/class_a_p_a102_controller.html
index 384d9c3c..2458889c 100644
--- a/docs/3.1/class_a_p_a102_controller.html
+++ b/docs/3.1/class_a_p_a102_controller.html
@@ -90,7 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="class_a_p_a102_controller-members.html">List of all members</a> </div>
<div class="headertitle">
-<div class="title">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt; Class Template Reference</div> </div>
+<div class="title">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
@@ -110,7 +110,7 @@ Collaboration diagram for APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, S
<div class="dyncontent">
<div class="center"><img src="class_a_p_a102_controller__coll__graph.png" border="0" usemap="#_a_p_a102_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_a_p_a102_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" id="_a_p_a102_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="CRGB" alt="" coords="90,5,149,32"/></map>
+<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -165,7 +165,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class
<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e86c45c89ebfb7b21f9045790302399"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a> ()</td></tr>
-<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html">CRGB</a> array for this controller. <br /></td></tr>
+<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
<tr class="separator:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a278a429964bec69b3c91486665e61c0a inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a278a429964bec69b3c91486665e61c0a"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a> (int x)</td></tr>
@@ -444,7 +444,7 @@ template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = BGR, uint8_t
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_a_p_a102_controller__coll__graph.map b/docs/3.1/class_a_p_a102_controller__coll__graph.map
index b75d7ffc..07a606fb 100644
--- a/docs/3.1/class_a_p_a102_controller__coll__graph.map
+++ b/docs/3.1/class_a_p_a102_controller__coll__graph.map
@@ -1,4 +1,4 @@
<map id="APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/>
-<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="CRGB" alt="" coords="90,5,149,32"/>
+<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/>
</map>
diff --git a/docs/3.1/class_a_p_a102_controller__coll__graph.md5 b/docs/3.1/class_a_p_a102_controller__coll__graph.md5
index 45e2e627..929fdd5a 100644
--- a/docs/3.1/class_a_p_a102_controller__coll__graph.md5
+++ b/docs/3.1/class_a_p_a102_controller__coll__graph.md5
@@ -1 +1 @@
-8f2706a9960ae7985102eede2cbec149 \ No newline at end of file
+3073f1e294e7db54c2482c856e7bf5bc \ No newline at end of file
diff --git a/docs/3.1/class_a_p_a104.html b/docs/3.1/class_a_p_a104.html
index f4ca40ee..06800183 100644
--- a/docs/3.1/class_a_p_a104.html
+++ b/docs/3.1/class_a_p_a104.html
@@ -109,7 +109,7 @@ Collaboration diagram for APA104&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_a_v_r_software_s_p_i_output-members.html b/docs/3.1/class_a_v_r_software_s_p_i_output-members.html
index e585396e..f8e3836e 100644
--- a/docs/3.1/class_a_v_r_software_s_p_i_output-members.html
+++ b/docs/3.1/class_a_v_r_software_s_p_i_output-members.html
@@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_a_v_r_software_s_p_i_output.html b/docs/3.1/class_a_v_r_software_s_p_i_output.html
index 4c14e60d..5728bf45 100644
--- a/docs/3.1/class_a_v_r_software_s_p_i_output.html
+++ b/docs/3.1/class_a_v_r_software_s_p_i_output.html
@@ -140,7 +140,7 @@ static void&#160;</td><td class="memItemRight" valign="bottom"><b>writeByte</b>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_every_n_time_periods-members.html b/docs/3.1/class_c_every_n_time_periods-members.html
index e5d8002a..9fb75d07 100644
--- a/docs/3.1/class_c_every_n_time_periods-members.html
+++ b/docs/3.1/class_c_every_n_time_periods-members.html
@@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_every_n_time_periods.html b/docs/3.1/class_c_every_n_time_periods.html
index 09b1ec71..85114046 100644
--- a/docs/3.1/class_c_every_n_time_periods.html
+++ b/docs/3.1/class_c_every_n_time_periods.html
@@ -145,7 +145,7 @@ timeType&#160;</td><td class="memItemRight" valign="bottom"><b>mPeriod</b></td><
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_fast_l_e_d-members.html b/docs/3.1/class_c_fast_l_e_d-members.html
index 4130066d..a6cc7796 100644
--- a/docs/3.1/class_c_fast_l_e_d-members.html
+++ b/docs/3.1/class_c_fast_l_e_d-members.html
@@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_fast_l_e_d.html b/docs/3.1/class_c_fast_l_e_d.html
index 37beb200..dcaff46a 100644
--- a/docs/3.1/class_c_fast_l_e_d.html
+++ b/docs/3.1/class_c_fast_l_e_d.html
@@ -296,10 +296,10 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES&gt; </td></tr>
</div><div class="memdoc">
<p>Add a <a class="el" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. ">CLEDController</a> instance to the world. </p>
-<p>Exposed to the public to allow people to implement their own <a class="el" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. ">CLEDController</a> objects or instances. There are two ways to call this method (as well as the other addLeds) variations. The first is with 3 arguments, in which case the arguments are the controller, a pointer to led data, and the number of leds used by this controller. The seocond is with 4 arguments, in which case the first two arguments are the same, the third argument is an offset into the <a class="el" href="struct_c_r_g_b.html">CRGB</a> data where this controller's <a class="el" href="struct_c_r_g_b.html">CRGB</a> data begins, and the fourth argument is the number of leds for this controller object. </p><dl class="params"><dt>Parameters</dt><dd>
+<p>Exposed to the public to allow people to implement their own <a class="el" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. ">CLEDController</a> objects or instances. There are two ways to call this method (as well as the other addLeds) variations. The first is with 3 arguments, in which case the arguments are the controller, a pointer to led data, and the number of leds used by this controller. The seocond is with 4 arguments, in which case the first two arguments are the same, the third argument is an offset into the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> data where this controller's <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> data begins, and the fourth argument is the number of leds for this controller object. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pLed</td><td>- the led controller being added </td></tr>
- <tr><td class="paramname">data</td><td>- base point to an array of <a class="el" href="struct_c_r_g_b.html">CRGB</a> data structures </td></tr>
+ <tr><td class="paramname">data</td><td>- base point to an array of <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> data structures </td></tr>
<tr><td class="paramname">nLedsOrOffset</td><td>- number of leds (3 argument version) or offset into the data array </td></tr>
<tr><td class="paramname">nLedsIfOffset</td><td>- number of leds (4 argument version) </td></tr>
</table>
@@ -350,10 +350,10 @@ template&lt;ESPIChipsets CHIPSET, uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RG
</div><div class="memdoc">
<p>Add an SPI based <a class="el" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. ">CLEDController</a> instance to the world. </p>
-<p>There are two ways to call this method (as well as the other addLeds) variations. The first is with 2 arguments, in which case the arguments are a pointer to led data, and the number of leds used by this controller. The seocond is with 3 arguments, in which case the first argument is the same, the second argument is an offset into the <a class="el" href="struct_c_r_g_b.html">CRGB</a> data where this controller's <a class="el" href="struct_c_r_g_b.html">CRGB</a> data begins, and the third argument is the number of leds for this controller object.</p>
+<p>There are two ways to call this method (as well as the other addLeds) variations. The first is with 2 arguments, in which case the arguments are a pointer to led data, and the number of leds used by this controller. The seocond is with 3 arguments, in which case the first argument is the same, the second argument is an offset into the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> data where this controller's <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> data begins, and the third argument is the number of leds for this controller object.</p>
<p>This method also takes a 1 to 5 template parameters for identifying the specific chipset, data and clock pins, RGB ordering, and SPI data rate </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">data</td><td>- base point to an array of <a class="el" href="struct_c_r_g_b.html">CRGB</a> data structures </td></tr>
+ <tr><td class="paramname">data</td><td>- base point to an array of <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> data structures </td></tr>
<tr><td class="paramname">nLedsOrOffset</td><td>- number of leds (3 argument version) or offset into the data array </td></tr>
<tr><td class="paramname">nLedsIfOffset</td><td>- number of leds (4 argument version) </td></tr>
</table>
@@ -414,10 +414,10 @@ template&lt;template&lt; uint8_t DATA_PIN, EOrder RGB_ORDER &gt; class CHIPSET,
</div><div class="memdoc">
<p>Add a clockless (aka 3wire, also DMX) based <a class="el" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. ">CLEDController</a> instance to the world. </p>
-<p>There are two ways to call this method (as well as the other addLeds) variations. The first is with 2 arguments, in which case the arguments are a pointer to led data, and the number of leds used by this controller. The seocond is with 3 arguments, in which case the first argument is the same, the second argument is an offset into the <a class="el" href="struct_c_r_g_b.html">CRGB</a> data where this controller's <a class="el" href="struct_c_r_g_b.html">CRGB</a> data begins, and the third argument is the number of leds for this controller object.</p>
+<p>There are two ways to call this method (as well as the other addLeds) variations. The first is with 2 arguments, in which case the arguments are a pointer to led data, and the number of leds used by this controller. The seocond is with 3 arguments, in which case the first argument is the same, the second argument is an offset into the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> data where this controller's <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> data begins, and the third argument is the number of leds for this controller object.</p>
<p>This method also takes a 2 to 3 template parameters for identifying the specific chipset, data pin, and rgb ordering RGB ordering, and SPI data rate </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">data</td><td>- base point to an array of <a class="el" href="struct_c_r_g_b.html">CRGB</a> data structures </td></tr>
+ <tr><td class="paramname">data</td><td>- base point to an array of <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> data structures </td></tr>
<tr><td class="paramname">nLedsOrOffset</td><td>- number of leds (3 argument version) or offset into the data array </td></tr>
<tr><td class="paramname">nLedsIfOffset</td><td>- number of leds (4 argument version) </td></tr>
</table>
@@ -476,10 +476,10 @@ template&lt;template&lt; EOrder RGB_ORDER &gt; class CHIPSET, EOrder RGB_ORDER&g
</div><div class="memdoc">
<p>Add a 3rd party library based <a class="el" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. ">CLEDController</a> instance to the world. </p>
-<p>There are two ways to call this method (as well as the other addLeds) variations. The first is with 2 arguments, in which case the arguments are a pointer to led data, and the number of leds used by this controller. The seocond is with 3 arguments, in which case the first argument is the same, the second argument is an offset into the <a class="el" href="struct_c_r_g_b.html">CRGB</a> data where this controller's <a class="el" href="struct_c_r_g_b.html">CRGB</a> data begins, and the third argument is the number of leds for this controller object. This class includes the SmartMatrix and OctoWS2811 based controllers</p>
+<p>There are two ways to call this method (as well as the other addLeds) variations. The first is with 2 arguments, in which case the arguments are a pointer to led data, and the number of leds used by this controller. The seocond is with 3 arguments, in which case the first argument is the same, the second argument is an offset into the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> data where this controller's <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> data begins, and the third argument is the number of leds for this controller object. This class includes the SmartMatrix and OctoWS2811 based controllers</p>
<p>This method also takes a 1 to 2 template parameters for identifying the specific chipset and rgb ordering RGB ordering, and SPI data rate </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">data</td><td>- base point to an array of <a class="el" href="struct_c_r_g_b.html">CRGB</a> data structures </td></tr>
+ <tr><td class="paramname">data</td><td>- base point to an array of <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> data structures </td></tr>
<tr><td class="paramname">nLedsOrOffset</td><td>- number of leds (3 argument version) or offset into the data array </td></tr>
<tr><td class="paramname">nLedsIfOffset</td><td>- number of leds (4 argument version) </td></tr>
</table>
@@ -537,10 +537,10 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</div><div class="memdoc">
<p>Add a block based <a class="el" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. ">CLEDController</a> instance to the world. </p>
-<p>There are two ways to call this method (as well as the other addLeds) variations. The first is with 2 arguments, in which case the arguments are a pointer to led data, and the number of leds used by this controller. The seocond is with 3 arguments, in which case the first argument is the same, the second argument is an offset into the <a class="el" href="struct_c_r_g_b.html">CRGB</a> data where this controller's <a class="el" href="struct_c_r_g_b.html">CRGB</a> data begins, and the third argument is the number of leds for this controller object.</p>
+<p>There are two ways to call this method (as well as the other addLeds) variations. The first is with 2 arguments, in which case the arguments are a pointer to led data, and the number of leds used by this controller. The seocond is with 3 arguments, in which case the first argument is the same, the second argument is an offset into the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> data where this controller's <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> data begins, and the third argument is the number of leds for this controller object.</p>
<p>This method also takes a 2 to 3 template parameters for identifying the specific chipset and rgb ordering RGB ordering, and SPI data rate </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">data</td><td>- base point to an array of <a class="el" href="struct_c_r_g_b.html">CRGB</a> data structures </td></tr>
+ <tr><td class="paramname">data</td><td>- base point to an array of <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> data structures </td></tr>
<tr><td class="paramname">nLedsOrOffset</td><td>- number of leds (3 argument version) or offset into the data array </td></tr>
<tr><td class="paramname">nLedsIfOffset</td><td>- number of leds (4 argument version) </td></tr>
</table>
@@ -723,7 +723,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</div><div class="memdoc">
<p>Get a pointer to led data for the first controller. </p>
-<dl class="section return"><dt>Returns</dt><dd>pointer to the <a class="el" href="struct_c_r_g_b.html">CRGB</a> buffer for the first controller </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>pointer to the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> buffer for the first controller </dd></dl>
</div>
</div>
@@ -795,7 +795,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
<p>Set a global color correction. </p>
<p>Sets the color correction for all added led strips, overriding whatever previous color correction those controllers may have had. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">correction</td><td>A <a class="el" href="struct_c_r_g_b.html">CRGB</a> structure describin the color correction. </td></tr>
+ <tr><td class="paramname">correction</td><td>A <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> structure describin the color correction. </td></tr>
</table>
</dd>
</dl>
@@ -878,7 +878,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
<p>Set a global color temperature. </p>
<p>Sets the color temperature for all added led strips, overriding whatever previous color temperature those controllers may have had </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">temp</td><td>A <a class="el" href="struct_c_r_g_b.html">CRGB</a> structure describing the color temperature </td></tr>
+ <tr><td class="paramname">temp</td><td>A <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> structure describing the color temperature </td></tr>
</table>
</dd>
</dl>
@@ -1009,7 +1009,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_h_s_v_palette16-members.html b/docs/3.1/class_c_h_s_v_palette16-members.html
index 2e3ec6f4..00a1c9ec 100644
--- a/docs/3.1/class_c_h_s_v_palette16-members.html
+++ b/docs/3.1/class_c_h_s_v_palette16-members.html
@@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_h_s_v_palette16.html b/docs/3.1/class_c_h_s_v_palette16.html
index d3803f32..7204f332 100644
--- a/docs/3.1/class_c_h_s_v_palette16.html
+++ b/docs/3.1/class_c_h_s_v_palette16.html
@@ -98,7 +98,7 @@ Collaboration diagram for CHSVPalette16:</div>
<div class="dyncontent">
<div class="center"><img src="class_c_h_s_v_palette16__coll__graph.png" border="0" usemap="#_c_h_s_v_palette16_coll__map" alt="Collaboration graph"/></div>
<map name="_c_h_s_v_palette16_coll__map" id="_c_h_s_v_palette16_coll__map">
-<area shape="rect" id="node2" href="struct_c_h_s_v.html" title="CHSV" alt="" coords="33,5,92,32"/></map>
+<area shape="rect" id="node2" href="struct_c_h_s_v.html" title="Representation of an HSV pixel (hue, saturation, value (aka brightness)). " alt="" coords="33,5,92,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -119,16 +119,16 @@ Public Member Functions</h2></td></tr>
<a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const TProgmemHSVPalette16 &amp;rhs)</td></tr>
<tr class="separator:a6fc8bf192a46e1ab12f37bfe46a4e900"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc45313f03375b3ac440e5cf07024bcd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abc45313f03375b3ac440e5cf07024bcd"></a>
-<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:abc45313f03375b3ac440e5cf07024bcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c3ebb778f44e3674b5d367112e4f7c5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c3ebb778f44e3674b5d367112e4f7c5"></a>
-const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) const <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) const <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a4c3ebb778f44e3674b5d367112e4f7c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5021e6638a568b7a743ceeafdc7374ef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5021e6638a568b7a743ceeafdc7374ef"></a>
-<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a5021e6638a568b7a743ceeafdc7374ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6858c6d53deb94205b8835e903799cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab6858c6d53deb94205b8835e903799cd"></a>
-const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) const <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) const <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ab6858c6d53deb94205b8835e903799cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c43a80ad28000fffc27f6e1c136d60c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3c43a80ad28000fffc27f6e1c136d60c"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>operator CHSV *</b> ()</td></tr>
@@ -158,7 +158,7 @@ Public Attributes</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_h_s_v_palette16__coll__graph.map b/docs/3.1/class_c_h_s_v_palette16__coll__graph.map
index 0956b126..16f2ea6c 100644
--- a/docs/3.1/class_c_h_s_v_palette16__coll__graph.map
+++ b/docs/3.1/class_c_h_s_v_palette16__coll__graph.map
@@ -1,3 +1,3 @@
<map id="CHSVPalette16" name="CHSVPalette16">
-<area shape="rect" id="node2" href="$struct_c_h_s_v.html" title="CHSV" alt="" coords="33,5,92,32"/>
+<area shape="rect" id="node2" href="$struct_c_h_s_v.html" title="Representation of an HSV pixel (hue, saturation, value (aka brightness)). " alt="" coords="33,5,92,32"/>
</map>
diff --git a/docs/3.1/class_c_h_s_v_palette16__coll__graph.md5 b/docs/3.1/class_c_h_s_v_palette16__coll__graph.md5
index ea8389b4..fae1146a 100644
--- a/docs/3.1/class_c_h_s_v_palette16__coll__graph.md5
+++ b/docs/3.1/class_c_h_s_v_palette16__coll__graph.md5
@@ -1 +1 @@
-b415ed0a54a6da36738c35afafd6f0e8 \ No newline at end of file
+5497f92936755dcf396a279aaa2c7dd6 \ No newline at end of file
diff --git a/docs/3.1/class_c_h_s_v_palette256-members.html b/docs/3.1/class_c_h_s_v_palette256-members.html
index 001e6a31..92f9c621 100644
--- a/docs/3.1/class_c_h_s_v_palette256-members.html
+++ b/docs/3.1/class_c_h_s_v_palette256-members.html
@@ -113,7 +113,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_h_s_v_palette256.html b/docs/3.1/class_c_h_s_v_palette256.html
index f124140a..dc6c1f72 100644
--- a/docs/3.1/class_c_h_s_v_palette256.html
+++ b/docs/3.1/class_c_h_s_v_palette256.html
@@ -98,7 +98,7 @@ Collaboration diagram for CHSVPalette256:</div>
<div class="dyncontent">
<div class="center"><img src="class_c_h_s_v_palette256__coll__graph.png" border="0" usemap="#_c_h_s_v_palette256_coll__map" alt="Collaboration graph"/></div>
<map name="_c_h_s_v_palette256_coll__map" id="_c_h_s_v_palette256_coll__map">
-<area shape="rect" id="node2" href="struct_c_h_s_v.html" title="CHSV" alt="" coords="37,5,96,32"/></map>
+<area shape="rect" id="node2" href="struct_c_h_s_v.html" title="Representation of an HSV pixel (hue, saturation, value (aka brightness)). " alt="" coords="37,5,96,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -125,16 +125,16 @@ Public Member Functions</h2></td></tr>
<a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const TProgmemRGBPalette16 &amp;rhs)</td></tr>
<tr class="separator:ad9fec4dcc878ff77a0891fd15422e2f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0b600ebace4995abe6ed6a7d1dd372c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af0b600ebace4995abe6ed6a7d1dd372c"></a>
-<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:af0b600ebace4995abe6ed6a7d1dd372c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ef173864aeea1c6a86dc48c42e0a469"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7ef173864aeea1c6a86dc48c42e0a469"></a>
-const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) const <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) const <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a7ef173864aeea1c6a86dc48c42e0a469"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f02611688545b798c9335197d78084b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f02611688545b798c9335197d78084b"></a>
-<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a2f02611688545b798c9335197d78084b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a694e8b280618a63d808eb2b68218d6ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a694e8b280618a63d808eb2b68218d6ac"></a>
-const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) const <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) const <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a694e8b280618a63d808eb2b68218d6ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2e94a07280c6720c649fbc29d88764c0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2e94a07280c6720c649fbc29d88764c0"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>operator CHSV *</b> ()</td></tr>
@@ -164,7 +164,7 @@ Public Attributes</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_h_s_v_palette256__coll__graph.map b/docs/3.1/class_c_h_s_v_palette256__coll__graph.map
index ada7e283..7c3a68c7 100644
--- a/docs/3.1/class_c_h_s_v_palette256__coll__graph.map
+++ b/docs/3.1/class_c_h_s_v_palette256__coll__graph.map
@@ -1,3 +1,3 @@
<map id="CHSVPalette256" name="CHSVPalette256">
-<area shape="rect" id="node2" href="$struct_c_h_s_v.html" title="CHSV" alt="" coords="37,5,96,32"/>
+<area shape="rect" id="node2" href="$struct_c_h_s_v.html" title="Representation of an HSV pixel (hue, saturation, value (aka brightness)). " alt="" coords="37,5,96,32"/>
</map>
diff --git a/docs/3.1/class_c_h_s_v_palette256__coll__graph.md5 b/docs/3.1/class_c_h_s_v_palette256__coll__graph.md5
index f3dfb809..2447495b 100644
--- a/docs/3.1/class_c_h_s_v_palette256__coll__graph.md5
+++ b/docs/3.1/class_c_h_s_v_palette256__coll__graph.md5
@@ -1 +1 @@
-04e7b59630861af007025f93c3026d36 \ No newline at end of file
+81df6c0fe750410ae8aa46802b697b43 \ No newline at end of file
diff --git a/docs/3.1/class_c_l_e_d_controller-members.html b/docs/3.1/class_c_l_e_d_controller-members.html
index ac31ac09..cdb83d77 100644
--- a/docs/3.1/class_c_l_e_d_controller-members.html
+++ b/docs/3.1/class_c_l_e_d_controller-members.html
@@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_l_e_d_controller.html b/docs/3.1/class_c_l_e_d_controller.html
index fa8f12c0..111f83c6 100644
--- a/docs/3.1/class_c_l_e_d_controller.html
+++ b/docs/3.1/class_c_l_e_d_controller.html
@@ -114,7 +114,7 @@ Collaboration diagram for CLEDController:</div>
<div class="dyncontent">
<div class="center"><img src="class_c_l_e_d_controller__coll__graph.png" border="0" usemap="#_c_l_e_d_controller_coll__map" alt="Collaboration graph"/></div>
<map name="_c_l_e_d_controller_coll__map" id="_c_l_e_d_controller_coll__map">
-<area shape="rect" id="node2" href="struct_c_r_g_b.html" title="CRGB" alt="" coords="33,5,92,32"/></map>
+<area shape="rect" id="node2" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="33,5,92,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -168,7 +168,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class
<tr class="separator:a8840496d231f1fe0fa640970dc14db08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e86c45c89ebfb7b21f9045790302399"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e86c45c89ebfb7b21f9045790302399"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a> ()</td></tr>
-<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html">CRGB</a> array for this controller. <br /></td></tr>
+<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
<tr class="separator:a5e86c45c89ebfb7b21f9045790302399"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a278a429964bec69b3c91486665e61c0a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a278a429964bec69b3c91486665e61c0a"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a> (int x)</td></tr>
@@ -384,7 +384,7 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>CFastLED</b></td></t
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_l_e_d_controller__coll__graph.map b/docs/3.1/class_c_l_e_d_controller__coll__graph.map
index 898c3b7b..18be4414 100644
--- a/docs/3.1/class_c_l_e_d_controller__coll__graph.map
+++ b/docs/3.1/class_c_l_e_d_controller__coll__graph.map
@@ -1,3 +1,3 @@
<map id="CLEDController" name="CLEDController">
-<area shape="rect" id="node2" href="$struct_c_r_g_b.html" title="CRGB" alt="" coords="33,5,92,32"/>
+<area shape="rect" id="node2" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="33,5,92,32"/>
</map>
diff --git a/docs/3.1/class_c_l_e_d_controller__coll__graph.md5 b/docs/3.1/class_c_l_e_d_controller__coll__graph.md5
index 785729c3..30554d2c 100644
--- a/docs/3.1/class_c_l_e_d_controller__coll__graph.md5
+++ b/docs/3.1/class_c_l_e_d_controller__coll__graph.md5
@@ -1 +1 @@
-392d8212399ff994b0c5fe4caa6e9988 \ No newline at end of file
+184169d2f1682ea1cae421ee441c6b7d \ No newline at end of file
diff --git a/docs/3.1/class_c_min_wait-members.html b/docs/3.1/class_c_min_wait-members.html
index 8a023994..73bf5871 100644
--- a/docs/3.1/class_c_min_wait-members.html
+++ b/docs/3.1/class_c_min_wait-members.html
@@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_min_wait.html b/docs/3.1/class_c_min_wait.html
index e6ca8912..6bcd222c 100644
--- a/docs/3.1/class_c_min_wait.html
+++ b/docs/3.1/class_c_min_wait.html
@@ -118,7 +118,7 @@ class CMinWait&lt; WAIT &gt;</h3>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_r_g_b_palette16-members.html b/docs/3.1/class_c_r_g_b_palette16-members.html
index 2e2c5d34..eac9ab2c 100644
--- a/docs/3.1/class_c_r_g_b_palette16-members.html
+++ b/docs/3.1/class_c_r_g_b_palette16-members.html
@@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_r_g_b_palette16.html b/docs/3.1/class_c_r_g_b_palette16.html
index e02c2b67..8e23090c 100644
--- a/docs/3.1/class_c_r_g_b_palette16.html
+++ b/docs/3.1/class_c_r_g_b_palette16.html
@@ -98,7 +98,7 @@ Collaboration diagram for CRGBPalette16:</div>
<div class="dyncontent">
<div class="center"><img src="class_c_r_g_b_palette16__coll__graph.png" border="0" usemap="#_c_r_g_b_palette16_coll__map" alt="Collaboration graph"/></div>
<map name="_c_r_g_b_palette16_coll__map" id="_c_r_g_b_palette16_coll__map">
-<area shape="rect" id="node2" href="struct_c_r_g_b.html" title="CRGB" alt="" coords="34,5,93,32"/></map>
+<area shape="rect" id="node2" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="34,5,93,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -125,16 +125,16 @@ Public Member Functions</h2></td></tr>
<a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const TProgmemRGBPalette16 &amp;rhs)</td></tr>
<tr class="separator:a1e2866fd76857f99b6174a0bfa794328"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71d9faa920f5ce3acd7fb96b24e30f86"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a71d9faa920f5ce3acd7fb96b24e30f86"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a71d9faa920f5ce3acd7fb96b24e30f86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6189bc29bd39b2eef24953f16b1e86be"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6189bc29bd39b2eef24953f16b1e86be"></a>
-const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) const <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) const <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a6189bc29bd39b2eef24953f16b1e86be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5dfbe59ccffa74d95f23caca4a7a50e6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5dfbe59ccffa74d95f23caca4a7a50e6"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a5dfbe59ccffa74d95f23caca4a7a50e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a280eb7af64c9a6ae4ef14029240f81b2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a280eb7af64c9a6ae4ef14029240f81b2"></a>
-const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) const <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) const <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a280eb7af64c9a6ae4ef14029240f81b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7214b8bb0070f864dbc0d64d93250904"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7214b8bb0070f864dbc0d64d93250904"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>operator CRGB *</b> ()</td></tr>
@@ -185,7 +185,7 @@ Public Attributes</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_r_g_b_palette16__coll__graph.map b/docs/3.1/class_c_r_g_b_palette16__coll__graph.map
index 883ff4ec..8874817b 100644
--- a/docs/3.1/class_c_r_g_b_palette16__coll__graph.map
+++ b/docs/3.1/class_c_r_g_b_palette16__coll__graph.map
@@ -1,3 +1,3 @@
<map id="CRGBPalette16" name="CRGBPalette16">
-<area shape="rect" id="node2" href="$struct_c_r_g_b.html" title="CRGB" alt="" coords="34,5,93,32"/>
+<area shape="rect" id="node2" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="34,5,93,32"/>
</map>
diff --git a/docs/3.1/class_c_r_g_b_palette16__coll__graph.md5 b/docs/3.1/class_c_r_g_b_palette16__coll__graph.md5
index d42515a6..b383d87b 100644
--- a/docs/3.1/class_c_r_g_b_palette16__coll__graph.md5
+++ b/docs/3.1/class_c_r_g_b_palette16__coll__graph.md5
@@ -1 +1 @@
-8ab43662319222bf17542691e47f37bd \ No newline at end of file
+7033cd7d5b550f8ca06429b25b26c04d \ No newline at end of file
diff --git a/docs/3.1/class_c_r_g_b_palette256-members.html b/docs/3.1/class_c_r_g_b_palette256-members.html
index 3cb8737c..f0d9d544 100644
--- a/docs/3.1/class_c_r_g_b_palette256-members.html
+++ b/docs/3.1/class_c_r_g_b_palette256-members.html
@@ -122,7 +122,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_r_g_b_palette256.html b/docs/3.1/class_c_r_g_b_palette256.html
index b45dd25a..8216d5a6 100644
--- a/docs/3.1/class_c_r_g_b_palette256.html
+++ b/docs/3.1/class_c_r_g_b_palette256.html
@@ -98,7 +98,7 @@ Collaboration diagram for CRGBPalette256:</div>
<div class="dyncontent">
<div class="center"><img src="class_c_r_g_b_palette256__coll__graph.png" border="0" usemap="#_c_r_g_b_palette256_coll__map" alt="Collaboration graph"/></div>
<map name="_c_r_g_b_palette256_coll__map" id="_c_r_g_b_palette256_coll__map">
-<area shape="rect" id="node2" href="struct_c_r_g_b.html" title="CRGB" alt="" coords="37,5,96,32"/></map>
+<area shape="rect" id="node2" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="37,5,96,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -131,16 +131,16 @@ Public Member Functions</h2></td></tr>
<a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const TProgmemRGBPalette16 &amp;rhs)</td></tr>
<tr class="separator:a9cb19dd01548c2c902e5217188552730"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99bfa25583d04e68e6ef4d1626fff96b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a99bfa25583d04e68e6ef4d1626fff96b"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a99bfa25583d04e68e6ef4d1626fff96b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09bdede77e2a926e433548d2e8703d7d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a09bdede77e2a926e433548d2e8703d7d"></a>
-const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) const <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) const <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a09bdede77e2a926e433548d2e8703d7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69b16089d8497f5fa0864623e7224e9b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69b16089d8497f5fa0864623e7224e9b"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a69b16089d8497f5fa0864623e7224e9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed56d2958abee33002ef25cb00e3044c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aed56d2958abee33002ef25cb00e3044c"></a>
-const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) const <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) const <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:aed56d2958abee33002ef25cb00e3044c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a860d9e7e0e2f309fc644ae76ed964744"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a860d9e7e0e2f309fc644ae76ed964744"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>operator CRGB *</b> ()</td></tr>
@@ -191,7 +191,7 @@ Public Attributes</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_c_r_g_b_palette256__coll__graph.map b/docs/3.1/class_c_r_g_b_palette256__coll__graph.map
index 1df9671f..862f8caa 100644
--- a/docs/3.1/class_c_r_g_b_palette256__coll__graph.map
+++ b/docs/3.1/class_c_r_g_b_palette256__coll__graph.map
@@ -1,3 +1,3 @@
<map id="CRGBPalette256" name="CRGBPalette256">
-<area shape="rect" id="node2" href="$struct_c_r_g_b.html" title="CRGB" alt="" coords="37,5,96,32"/>
+<area shape="rect" id="node2" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="37,5,96,32"/>
</map>
diff --git a/docs/3.1/class_c_r_g_b_palette256__coll__graph.md5 b/docs/3.1/class_c_r_g_b_palette256__coll__graph.md5
index 688194c6..c29bdfcf 100644
--- a/docs/3.1/class_c_r_g_b_palette256__coll__graph.md5
+++ b/docs/3.1/class_c_r_g_b_palette256__coll__graph.md5
@@ -1 +1 @@
-d9a70b892ec7a162fb1687170682ab70 \ No newline at end of file
+9b53a33092652f3a8903338a9e08c673 \ No newline at end of file
diff --git a/docs/3.1/class_d_a_t_a___n_o_p-members.html b/docs/3.1/class_d_a_t_a___n_o_p-members.html
index 52138542..2aeab8c9 100644
--- a/docs/3.1/class_d_a_t_a___n_o_p-members.html
+++ b/docs/3.1/class_d_a_t_a___n_o_p-members.html
@@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_a_t_a___n_o_p.html b/docs/3.1/class_d_a_t_a___n_o_p.html
index 3dfdf983..559f5515 100644
--- a/docs/3.1/class_d_a_t_a___n_o_p.html
+++ b/docs/3.1/class_d_a_t_a___n_o_p.html
@@ -127,7 +127,7 @@ static register uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>sc
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_s_e_r_i_a_l-members.html b/docs/3.1/class_d_m_x_s_e_r_i_a_l-members.html
index 45825e28..b0910d76 100644
--- a/docs/3.1/class_d_m_x_s_e_r_i_a_l-members.html
+++ b/docs/3.1/class_d_m_x_s_e_r_i_a_l-members.html
@@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_s_e_r_i_a_l.html b/docs/3.1/class_d_m_x_s_e_r_i_a_l.html
index f73aeb0c..36c337a9 100644
--- a/docs/3.1/class_d_m_x_s_e_r_i_a_l.html
+++ b/docs/3.1/class_d_m_x_s_e_r_i_a_l.html
@@ -103,7 +103,7 @@ Collaboration diagram for DMXSERIAL&lt; RGB_ORDER &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="class_d_m_x_s_e_r_i_a_l__coll__graph.png" border="0" usemap="#_d_m_x_s_e_r_i_a_l_3_01_r_g_b___o_r_d_e_r_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_d_m_x_s_e_r_i_a_l_3_01_r_g_b___o_r_d_e_r_01_4_coll__map" id="_d_m_x_s_e_r_i_a_l_3_01_r_g_b___o_r_d_e_r_01_4_coll__map">
-<area shape="rect" id="node2" href="class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,219,180,261"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="50,133,165,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="CRGB" alt="" coords="78,5,137,32"/></map>
+<area shape="rect" id="node2" href="class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,219,180,261"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="50,133,165,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="78,5,137,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
@@ -168,7 +168,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class
<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e86c45c89ebfb7b21f9045790302399"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a> ()</td></tr>
-<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html">CRGB</a> array for this controller. <br /></td></tr>
+<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
<tr class="separator:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a278a429964bec69b3c91486665e61c0a inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a278a429964bec69b3c91486665e61c0a"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a> (int x)</td></tr>
@@ -255,7 +255,7 @@ static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.map b/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.map
index 8c44a1b6..e6ccbdcc 100644
--- a/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.map
+++ b/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.map
@@ -1,5 +1,5 @@
<map id="DMXSERIAL&lt; RGB_ORDER &gt;" name="DMXSERIAL&lt; RGB_ORDER &gt;">
<area shape="rect" id="node2" href="$class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,219,180,261"/>
<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="50,133,165,160"/>
-<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="CRGB" alt="" coords="78,5,137,32"/>
+<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="78,5,137,32"/>
</map>
diff --git a/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.md5 b/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.md5
index 1b687dd6..2947de38 100644
--- a/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.md5
+++ b/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.md5
@@ -1 +1 @@
-3b95cb81af7771c1330a1747cce1c247 \ No newline at end of file
+c1f0d580b0204a69a393bf3ae08d2a9a \ No newline at end of file
diff --git a/docs/3.1/class_d_m_x_s_i_m_p_l_e-members.html b/docs/3.1/class_d_m_x_s_i_m_p_l_e-members.html
index c118bf6d..00da1a85 100644
--- a/docs/3.1/class_d_m_x_s_i_m_p_l_e-members.html
+++ b/docs/3.1/class_d_m_x_s_i_m_p_l_e-members.html
@@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_s_i_m_p_l_e.html b/docs/3.1/class_d_m_x_s_i_m_p_l_e.html
index bf4071b5..ffe8b1d1 100644
--- a/docs/3.1/class_d_m_x_s_i_m_p_l_e.html
+++ b/docs/3.1/class_d_m_x_s_i_m_p_l_e.html
@@ -103,7 +103,7 @@ Collaboration diagram for DMXSIMPLE&lt; DATA_PIN, RGB_ORDER &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="class_d_m_x_s_i_m_p_l_e__coll__graph.png" border="0" usemap="#_d_m_x_s_i_m_p_l_e_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_d_m_x_s_i_m_p_l_e_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map" id="_d_m_x_s_i_m_p_l_e_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map">
-<area shape="rect" id="node2" href="class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="5,219,208,261"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="CRGB" alt="" coords="77,5,136,32"/></map>
+<area shape="rect" id="node2" href="class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="5,219,208,261"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
@@ -159,7 +159,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class
<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e86c45c89ebfb7b21f9045790302399"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a> ()</td></tr>
-<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html">CRGB</a> array for this controller. <br /></td></tr>
+<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
<tr class="separator:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a278a429964bec69b3c91486665e61c0a inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a278a429964bec69b3c91486665e61c0a"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a> (int x)</td></tr>
@@ -256,7 +256,7 @@ static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.map b/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.map
index ad36571b..36549b12 100644
--- a/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.map
+++ b/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.map
@@ -1,5 +1,5 @@
<map id="DMXSIMPLE&lt; DATA_PIN, RGB_ORDER &gt;" name="DMXSIMPLE&lt; DATA_PIN, RGB_ORDER &gt;">
<area shape="rect" id="node2" href="$class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="5,219,208,261"/>
<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/>
-<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="CRGB" alt="" coords="77,5,136,32"/>
+<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/>
</map>
diff --git a/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.md5 b/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.md5
index b30e03f4..a67dea97 100644
--- a/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.md5
+++ b/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.md5
@@ -1 +1 @@
-54f974ccb4f7d3079dafbdd88aab9e41 \ No newline at end of file
+34a1a14c2a2700eede342dad949a802c \ No newline at end of file
diff --git a/docs/3.1/class_d_m_x_serial_controller-members.html b/docs/3.1/class_d_m_x_serial_controller-members.html
index 5e12f71b..5a0fc3e2 100644
--- a/docs/3.1/class_d_m_x_serial_controller-members.html
+++ b/docs/3.1/class_d_m_x_serial_controller-members.html
@@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_serial_controller.html b/docs/3.1/class_d_m_x_serial_controller.html
index fb0c20fd..219b7089 100644
--- a/docs/3.1/class_d_m_x_serial_controller.html
+++ b/docs/3.1/class_d_m_x_serial_controller.html
@@ -104,7 +104,7 @@ Collaboration diagram for DMXSerialController&lt; RGB_ORDER &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="class_d_m_x_serial_controller__coll__graph.png" border="0" usemap="#_d_m_x_serial_controller_3_01_r_g_b___o_r_d_e_r_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_d_m_x_serial_controller_3_01_r_g_b___o_r_d_e_r_01_4_coll__map" id="_d_m_x_serial_controller_3_01_r_g_b___o_r_d_e_r_01_4_coll__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="19,133,135,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="CRGB" alt="" coords="47,5,107,32"/></map>
+<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="19,133,135,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="47,5,107,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -168,7 +168,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class
<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e86c45c89ebfb7b21f9045790302399"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a> ()</td></tr>
-<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html">CRGB</a> array for this controller. <br /></td></tr>
+<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
<tr class="separator:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a278a429964bec69b3c91486665e61c0a inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a278a429964bec69b3c91486665e61c0a"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a> (int x)</td></tr>
@@ -367,7 +367,7 @@ template&lt;EOrder RGB_ORDER = RGB&gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_serial_controller__coll__graph.map b/docs/3.1/class_d_m_x_serial_controller__coll__graph.map
index 0d2d5167..a5af5136 100644
--- a/docs/3.1/class_d_m_x_serial_controller__coll__graph.map
+++ b/docs/3.1/class_d_m_x_serial_controller__coll__graph.map
@@ -1,4 +1,4 @@
<map id="DMXSerialController&lt; RGB_ORDER &gt;" name="DMXSerialController&lt; RGB_ORDER &gt;">
<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="19,133,135,160"/>
-<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="CRGB" alt="" coords="47,5,107,32"/>
+<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="47,5,107,32"/>
</map>
diff --git a/docs/3.1/class_d_m_x_serial_controller__coll__graph.md5 b/docs/3.1/class_d_m_x_serial_controller__coll__graph.md5
index 8b240387..18c24d1d 100644
--- a/docs/3.1/class_d_m_x_serial_controller__coll__graph.md5
+++ b/docs/3.1/class_d_m_x_serial_controller__coll__graph.md5
@@ -1 +1 @@
-bf58bef4924d3e4a61c16255a6087452 \ No newline at end of file
+1b8f92baab4d075d71e2dc9c5f4e84bf \ No newline at end of file
diff --git a/docs/3.1/class_d_m_x_simple_controller-members.html b/docs/3.1/class_d_m_x_simple_controller-members.html
index 6081d1f8..b7e6de6a 100644
--- a/docs/3.1/class_d_m_x_simple_controller-members.html
+++ b/docs/3.1/class_d_m_x_simple_controller-members.html
@@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_simple_controller.html b/docs/3.1/class_d_m_x_simple_controller.html
index 562ecd28..2e2c76f3 100644
--- a/docs/3.1/class_d_m_x_simple_controller.html
+++ b/docs/3.1/class_d_m_x_simple_controller.html
@@ -90,7 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="class_d_m_x_simple_controller-members.html">List of all members</a> </div>
<div class="headertitle">
-<div class="title">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+<div class="title">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -105,7 +105,7 @@ Collaboration diagram for DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;:</div
<div class="dyncontent">
<div class="center"><img src="class_d_m_x_simple_controller__coll__graph.png" border="0" usemap="#_d_m_x_simple_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_d_m_x_simple_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map" id="_d_m_x_simple_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="CRGB" alt="" coords="77,5,136,32"/></map>
+<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -160,7 +160,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class
<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e86c45c89ebfb7b21f9045790302399"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a> ()</td></tr>
-<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html">CRGB</a> array for this controller. <br /></td></tr>
+<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
<tr class="separator:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a278a429964bec69b3c91486665e61c0a inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a278a429964bec69b3c91486665e61c0a"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a> (int x)</td></tr>
@@ -371,7 +371,7 @@ template&lt;uint8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_d_m_x_simple_controller__coll__graph.map b/docs/3.1/class_d_m_x_simple_controller__coll__graph.map
index 9f8b3a7a..c4d72d80 100644
--- a/docs/3.1/class_d_m_x_simple_controller__coll__graph.map
+++ b/docs/3.1/class_d_m_x_simple_controller__coll__graph.map
@@ -1,4 +1,4 @@
<map id="DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;" name="DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;">
<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/>
-<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="CRGB" alt="" coords="77,5,136,32"/>
+<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/>
</map>
diff --git a/docs/3.1/class_d_m_x_simple_controller__coll__graph.md5 b/docs/3.1/class_d_m_x_simple_controller__coll__graph.md5
index c1873113..a4635631 100644
--- a/docs/3.1/class_d_m_x_simple_controller__coll__graph.md5
+++ b/docs/3.1/class_d_m_x_simple_controller__coll__graph.md5
@@ -1 +1 @@
-8aa293046aee7a1a9354d54c25ea19b0 \ No newline at end of file
+19f55c2458eee7fb00a1b5d725976a81 \ No newline at end of file
diff --git a/docs/3.1/class_fast_pin-members.html b/docs/3.1/class_fast_pin-members.html
index f5331364..4c6e97e1 100644
--- a/docs/3.1/class_fast_pin-members.html
+++ b/docs/3.1/class_fast_pin-members.html
@@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_fast_pin.html b/docs/3.1/class_fast_pin.html
index 9dd37d8b..3e5041de 100644
--- a/docs/3.1/class_fast_pin.html
+++ b/docs/3.1/class_fast_pin.html
@@ -124,40 +124,40 @@ static void&#160;</td><td class="memItemRight" valign="bottom"><b>setOutput</b>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>setInput</b> ()</td></tr>
<tr class="separator:af0543e3ac851ca56f30150fbaf1a109d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7693f53f66b9b6f6e4ecbe03ad0fea6b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7693f53f66b9b6f6e4ecbe03ad0fea6b"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a7693f53f66b9b6f6e4ecbe03ad0fea6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2321395038a879e2f1adccae8afce5b5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2321395038a879e2f1adccae8afce5b5"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a2321395038a879e2f1adccae8afce5b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69b8d94e33ca56dfec3fa249affbac32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69b8d94e33ca56dfec3fa249affbac32"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>strobe</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>strobe</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a69b8d94e33ca56dfec3fa249affbac32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8de59c1701bd256fb9b25bd88f92bd61"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8de59c1701bd256fb9b25bd88f92bd61"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>toggle</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>toggle</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a8de59c1701bd256fb9b25bd88f92bd61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdb303c3de97f6b2a0b1ac5369dec87f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abdb303c3de97f6b2a0b1ac5369dec87f"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> (register port_ptr_t port) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> (register port_ptr_t port) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:abdb303c3de97f6b2a0b1ac5369dec87f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca5b2f25bbbd4fa61f435ff2577fb728"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aca5b2f25bbbd4fa61f435ff2577fb728"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> (register port_ptr_t port) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> (register port_ptr_t port) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:aca5b2f25bbbd4fa61f435ff2577fb728"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6416c88feed72cc5a59b012ad45902b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af6416c88feed72cc5a59b012ad45902b"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (register port_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (register port_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:af6416c88feed72cc5a59b012ad45902b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8bea00ff59320915271dace678c6e00"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8bea00ff59320915271dace678c6e00"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>fastset</b> (register port_ptr_t port, register port_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>fastset</b> (register port_ptr_t port, register port_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:af8bea00ff59320915271dace678c6e00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab365936a660e1432e8c93eb4be01f7a6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab365936a660e1432e8c93eb4be01f7a6"></a>
-static port_t&#160;</td><td class="memItemRight" valign="bottom"><b>hival</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static port_t&#160;</td><td class="memItemRight" valign="bottom"><b>hival</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ab365936a660e1432e8c93eb4be01f7a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1668395cdbe4f93d24e789fdc6501279"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1668395cdbe4f93d24e789fdc6501279"></a>
-static port_t&#160;</td><td class="memItemRight" valign="bottom"><b>loval</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static port_t&#160;</td><td class="memItemRight" valign="bottom"><b>loval</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a1668395cdbe4f93d24e789fdc6501279"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5256244d2cb8e4404bcfec58e6c64f6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5256244d2cb8e4404bcfec58e6c64f6"></a>
-static port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ae5256244d2cb8e4404bcfec58e6c64f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace4b21f3980bbca6a4be16130053e8f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace4b21f3980bbca6a4be16130053e8f3"></a>
-static port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ace4b21f3980bbca6a4be16130053e8f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -175,7 +175,7 @@ class FastPin&lt; PIN &gt;</h3>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_fast_pin_b_b-members.html b/docs/3.1/class_fast_pin_b_b-members.html
index 41c69dcd..20ce956f 100644
--- a/docs/3.1/class_fast_pin_b_b-members.html
+++ b/docs/3.1/class_fast_pin_b_b-members.html
@@ -111,7 +111,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_fast_pin_b_b.html b/docs/3.1/class_fast_pin_b_b.html
index 4f098e02..010fe80b 100644
--- a/docs/3.1/class_fast_pin_b_b.html
+++ b/docs/3.1/class_fast_pin_b_b.html
@@ -123,40 +123,40 @@ static void&#160;</td><td class="memItemRight" valign="bottom"><b>setOutput</b>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>setInput</b> ()</td></tr>
<tr class="separator:af0543e3ac851ca56f30150fbaf1a109d inherit pub_static_methods_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7693f53f66b9b6f6e4ecbe03ad0fea6b inherit pub_static_methods_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7693f53f66b9b6f6e4ecbe03ad0fea6b"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a7693f53f66b9b6f6e4ecbe03ad0fea6b inherit pub_static_methods_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2321395038a879e2f1adccae8afce5b5 inherit pub_static_methods_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2321395038a879e2f1adccae8afce5b5"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a2321395038a879e2f1adccae8afce5b5 inherit pub_static_methods_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69b8d94e33ca56dfec3fa249affbac32 inherit pub_static_methods_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69b8d94e33ca56dfec3fa249affbac32"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>strobe</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>strobe</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a69b8d94e33ca56dfec3fa249affbac32 inherit pub_static_methods_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8de59c1701bd256fb9b25bd88f92bd61 inherit pub_static_methods_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8de59c1701bd256fb9b25bd88f92bd61"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>toggle</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>toggle</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a8de59c1701bd256fb9b25bd88f92bd61 inherit pub_static_methods_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdb303c3de97f6b2a0b1ac5369dec87f inherit pub_static_methods_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abdb303c3de97f6b2a0b1ac5369dec87f"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> (register port_ptr_t port) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> (register port_ptr_t port) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:abdb303c3de97f6b2a0b1ac5369dec87f inherit pub_static_methods_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca5b2f25bbbd4fa61f435ff2577fb728 inherit pub_static_methods_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aca5b2f25bbbd4fa61f435ff2577fb728"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> (register port_ptr_t port) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> (register port_ptr_t port) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:aca5b2f25bbbd4fa61f435ff2577fb728 inherit pub_static_methods_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6416c88feed72cc5a59b012ad45902b inherit pub_static_methods_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af6416c88feed72cc5a59b012ad45902b"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (register port_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (register port_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:af6416c88feed72cc5a59b012ad45902b inherit pub_static_methods_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8bea00ff59320915271dace678c6e00 inherit pub_static_methods_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af8bea00ff59320915271dace678c6e00"></a>
-static void&#160;</td><td class="memItemRight" valign="bottom"><b>fastset</b> (register port_ptr_t port, register port_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>fastset</b> (register port_ptr_t port, register port_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:af8bea00ff59320915271dace678c6e00 inherit pub_static_methods_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab365936a660e1432e8c93eb4be01f7a6 inherit pub_static_methods_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab365936a660e1432e8c93eb4be01f7a6"></a>
-static port_t&#160;</td><td class="memItemRight" valign="bottom"><b>hival</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static port_t&#160;</td><td class="memItemRight" valign="bottom"><b>hival</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ab365936a660e1432e8c93eb4be01f7a6 inherit pub_static_methods_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1668395cdbe4f93d24e789fdc6501279 inherit pub_static_methods_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1668395cdbe4f93d24e789fdc6501279"></a>
-static port_t&#160;</td><td class="memItemRight" valign="bottom"><b>loval</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static port_t&#160;</td><td class="memItemRight" valign="bottom"><b>loval</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a1668395cdbe4f93d24e789fdc6501279 inherit pub_static_methods_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5256244d2cb8e4404bcfec58e6c64f6 inherit pub_static_methods_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae5256244d2cb8e4404bcfec58e6c64f6"></a>
-static port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ae5256244d2cb8e4404bcfec58e6c64f6 inherit pub_static_methods_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace4b21f3980bbca6a4be16130053e8f3 inherit pub_static_methods_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ace4b21f3980bbca6a4be16130053e8f3"></a>
-static port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+static port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ace4b21f3980bbca6a4be16130053e8f3 inherit pub_static_methods_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/>The documentation for this class was generated from the following file:<ul>
@@ -165,7 +165,7 @@ static port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> ()
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_g_w6205.html b/docs/3.1/class_g_w6205.html
index 07d36af2..3e97e3d8 100644
--- a/docs/3.1/class_g_w6205.html
+++ b/docs/3.1/class_g_w6205.html
@@ -109,7 +109,7 @@ Collaboration diagram for GW6205&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_g_w6205__400.html b/docs/3.1/class_g_w6205__400.html
index 7360a2cb..fc44a184 100644
--- a/docs/3.1/class_g_w6205__400.html
+++ b/docs/3.1/class_g_w6205__400.html
@@ -109,7 +109,7 @@ Collaboration diagram for GW6205_400&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_g_w6205_controller400_khz.html b/docs/3.1/class_g_w6205_controller400_khz.html
index aac7ed8a..ef0f6e04 100644
--- a/docs/3.1/class_g_w6205_controller400_khz.html
+++ b/docs/3.1/class_g_w6205_controller400_khz.html
@@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">GW6205Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+<div class="title">GW6205Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -107,7 +107,7 @@ Collaboration diagram for GW6205Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_g_w6205_controller800_khz.html b/docs/3.1/class_g_w6205_controller800_khz.html
index b27aab79..040c7e38 100644
--- a/docs/3.1/class_g_w6205_controller800_khz.html
+++ b/docs/3.1/class_g_w6205_controller800_khz.html
@@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">GW6205Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+<div class="title">GW6205Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -107,7 +107,7 @@ Collaboration diagram for GW6205Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_input_pin-members.html b/docs/3.1/class_input_pin-members.html
index 3f33dab1..f608ece7 100644
--- a/docs/3.1/class_input_pin-members.html
+++ b/docs/3.1/class_input_pin-members.html
@@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_input_pin.html b/docs/3.1/class_input_pin.html
index c307d0e0..71d09856 100644
--- a/docs/3.1/class_input_pin.html
+++ b/docs/3.1/class_input_pin.html
@@ -126,40 +126,40 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>setOutput</b> ()</td>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setInput</b> ()</td></tr>
<tr class="separator:a3b1c3fa3480cd4a57c065f2e8811543a inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3b2ecbaab2e22b18da807c7c5aa147a inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3b2ecbaab2e22b18da807c7c5aa147a"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ad3b2ecbaab2e22b18da807c7c5aa147a inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a575b9e3dbf144bb98fc14ee06e219f7d inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a575b9e3dbf144bb98fc14ee06e219f7d"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a575b9e3dbf144bb98fc14ee06e219f7d inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafa819baff64cf2a594a53fbff947f3e inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafa819baff64cf2a594a53fbff947f3e"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>strobe</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>strobe</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:aafa819baff64cf2a594a53fbff947f3e inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308662200bc1be2513c9ac65ddaa43b0 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a308662200bc1be2513c9ac65ddaa43b0"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>toggle</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>toggle</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a308662200bc1be2513c9ac65ddaa43b0 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36d9f8ffbfb6547a076039fd1761200a inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36d9f8ffbfb6547a076039fd1761200a"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> (register port_ptr_t port) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> (register port_ptr_t port) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a36d9f8ffbfb6547a076039fd1761200a inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8453327e641cbdc1413d0f5acf9d5195 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8453327e641cbdc1413d0f5acf9d5195"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> (register port_ptr_t port) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> (register port_ptr_t port) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a8453327e641cbdc1413d0f5acf9d5195 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf67a98d2bca9b9d27a3c24b8cc1a58b inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf67a98d2bca9b9d27a3c24b8cc1a58b"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (register port_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (register port_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:abf67a98d2bca9b9d27a3c24b8cc1a58b inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a063487a763fe9a6fa795265480311c7c inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a063487a763fe9a6fa795265480311c7c"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fastset</b> (register port_ptr_t port, register port_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>fastset</b> (register port_ptr_t port, register port_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a063487a763fe9a6fa795265480311c7c inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70597f67481a4368727ae7d692a6e434 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70597f67481a4368727ae7d692a6e434"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>hival</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>hival</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a70597f67481a4368727ae7d692a6e434 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91f5a6b9d254eab57c6baa4f3bce6518 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91f5a6b9d254eab57c6baa4f3bce6518"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>loval</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>loval</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a91f5a6b9d254eab57c6baa4f3bce6518 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab462ca53d0eda5e199e30886e6329142 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab462ca53d0eda5e199e30886e6329142"></a>
-port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ab462ca53d0eda5e199e30886e6329142 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf184984e35f57f6f7f722736095f658 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf184984e35f57f6f7f722736095f658"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:abf184984e35f57f6f7f722736095f658 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7135576a0f7cd2df8d49af5a001c59c1 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7135576a0f7cd2df8d49af5a001c59c1"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>select</b> ()</td></tr>
@@ -183,40 +183,40 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>setOutput</b> ()</td>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setInput</b> ()</td></tr>
<tr class="separator:a3b1c3fa3480cd4a57c065f2e8811543a inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3b2ecbaab2e22b18da807c7c5aa147a inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3b2ecbaab2e22b18da807c7c5aa147a"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ad3b2ecbaab2e22b18da807c7c5aa147a inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a575b9e3dbf144bb98fc14ee06e219f7d inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a575b9e3dbf144bb98fc14ee06e219f7d"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a575b9e3dbf144bb98fc14ee06e219f7d inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafa819baff64cf2a594a53fbff947f3e inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafa819baff64cf2a594a53fbff947f3e"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>strobe</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>strobe</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:aafa819baff64cf2a594a53fbff947f3e inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308662200bc1be2513c9ac65ddaa43b0 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a308662200bc1be2513c9ac65ddaa43b0"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>toggle</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>toggle</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a308662200bc1be2513c9ac65ddaa43b0 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36d9f8ffbfb6547a076039fd1761200a inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36d9f8ffbfb6547a076039fd1761200a"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> (register port_ptr_t port) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> (register port_ptr_t port) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a36d9f8ffbfb6547a076039fd1761200a inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8453327e641cbdc1413d0f5acf9d5195 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8453327e641cbdc1413d0f5acf9d5195"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> (register port_ptr_t port) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> (register port_ptr_t port) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a8453327e641cbdc1413d0f5acf9d5195 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf67a98d2bca9b9d27a3c24b8cc1a58b inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf67a98d2bca9b9d27a3c24b8cc1a58b"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (register port_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (register port_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:abf67a98d2bca9b9d27a3c24b8cc1a58b inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a063487a763fe9a6fa795265480311c7c inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a063487a763fe9a6fa795265480311c7c"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fastset</b> (register port_ptr_t port, register port_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>fastset</b> (register port_ptr_t port, register port_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a063487a763fe9a6fa795265480311c7c inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70597f67481a4368727ae7d692a6e434 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70597f67481a4368727ae7d692a6e434"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>hival</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>hival</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a70597f67481a4368727ae7d692a6e434 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91f5a6b9d254eab57c6baa4f3bce6518 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91f5a6b9d254eab57c6baa4f3bce6518"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>loval</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>loval</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a91f5a6b9d254eab57c6baa4f3bce6518 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab462ca53d0eda5e199e30886e6329142 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab462ca53d0eda5e199e30886e6329142"></a>
-port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ab462ca53d0eda5e199e30886e6329142 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf184984e35f57f6f7f722736095f658 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf184984e35f57f6f7f722736095f658"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:abf184984e35f57f6f7f722736095f658 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7135576a0f7cd2df8d49af5a001c59c1 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7135576a0f7cd2df8d49af5a001c59c1"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>select</b> ()</td></tr>
@@ -250,7 +250,7 @@ typedef RwReg&#160;</td><td class="memItemRight" valign="bottom"><b>port_t</b></
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_l_p_d1886.html b/docs/3.1/class_l_p_d1886.html
index 3002d6f3..42d85d37 100644
--- a/docs/3.1/class_l_p_d1886.html
+++ b/docs/3.1/class_l_p_d1886.html
@@ -109,7 +109,7 @@ Collaboration diagram for LPD1886&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_l_p_d1886_controller1250_khz.html b/docs/3.1/class_l_p_d1886_controller1250_khz.html
index f87246d4..96bc0d99 100644
--- a/docs/3.1/class_l_p_d1886_controller1250_khz.html
+++ b/docs/3.1/class_l_p_d1886_controller1250_khz.html
@@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">LPD1886Controller1250Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+<div class="title">LPD1886Controller1250Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -107,7 +107,7 @@ Collaboration diagram for LPD1886Controller1250Khz&lt; DATA_PIN, RGB_ORDER &gt;:
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_l_p_d8806_controller-members.html b/docs/3.1/class_l_p_d8806_controller-members.html
index fd240418..95cc87e4 100644
--- a/docs/3.1/class_l_p_d8806_controller-members.html
+++ b/docs/3.1/class_l_p_d8806_controller-members.html
@@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_l_p_d8806_controller.html b/docs/3.1/class_l_p_d8806_controller.html
index d87be1a2..c69d0054 100644
--- a/docs/3.1/class_l_p_d8806_controller.html
+++ b/docs/3.1/class_l_p_d8806_controller.html
@@ -91,7 +91,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="class_l_p_d8806_controller-members.html">List of all members</a> </div>
<div class="headertitle">
-<div class="title">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt; Class Template Reference</div> </div>
+<div class="title">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
@@ -111,7 +111,7 @@ Collaboration diagram for LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER,
<div class="dyncontent">
<div class="center"><img src="class_l_p_d8806_controller__coll__graph.png" border="0" usemap="#_l_p_d8806_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_l_p_d8806_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" id="_l_p_d8806_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="CRGB" alt="" coords="77,5,136,32"/></map>
+<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -166,7 +166,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class
<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e86c45c89ebfb7b21f9045790302399"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a> ()</td></tr>
-<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html">CRGB</a> array for this controller. <br /></td></tr>
+<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
<tr class="separator:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a278a429964bec69b3c91486665e61c0a inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a278a429964bec69b3c91486665e61c0a"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a> (int x)</td></tr>
@@ -391,7 +391,7 @@ template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_l_p_d8806_controller__coll__graph.map b/docs/3.1/class_l_p_d8806_controller__coll__graph.map
index bcd16806..ceab78b1 100644
--- a/docs/3.1/class_l_p_d8806_controller__coll__graph.map
+++ b/docs/3.1/class_l_p_d8806_controller__coll__graph.map
@@ -1,4 +1,4 @@
<map id="LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/>
-<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="CRGB" alt="" coords="77,5,136,32"/>
+<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/>
</map>
diff --git a/docs/3.1/class_l_p_d8806_controller__coll__graph.md5 b/docs/3.1/class_l_p_d8806_controller__coll__graph.md5
index 3518abc3..6c101676 100644
--- a/docs/3.1/class_l_p_d8806_controller__coll__graph.md5
+++ b/docs/3.1/class_l_p_d8806_controller__coll__graph.md5
@@ -1 +1 @@
-d7c33beba0a1a08885a10f718fd755fd \ No newline at end of file
+5f913f82ce922b88a87346fcdece7f1e \ No newline at end of file
diff --git a/docs/3.1/class_n_e_o_p_i_x_e_l.html b/docs/3.1/class_n_e_o_p_i_x_e_l.html
index 965f0006..031ecafa 100644
--- a/docs/3.1/class_n_e_o_p_i_x_e_l.html
+++ b/docs/3.1/class_n_e_o_p_i_x_e_l.html
@@ -109,7 +109,7 @@ Collaboration diagram for NEOPIXEL&lt; DATA_PIN &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_output_pin-members.html b/docs/3.1/class_output_pin-members.html
index 1372ebec..3ca46a54 100644
--- a/docs/3.1/class_output_pin-members.html
+++ b/docs/3.1/class_output_pin-members.html
@@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_output_pin.html b/docs/3.1/class_output_pin.html
index ee151425..5abf00ec 100644
--- a/docs/3.1/class_output_pin.html
+++ b/docs/3.1/class_output_pin.html
@@ -126,40 +126,40 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>setOutput</b> ()</td>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setInput</b> ()</td></tr>
<tr class="separator:a3b1c3fa3480cd4a57c065f2e8811543a inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3b2ecbaab2e22b18da807c7c5aa147a inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3b2ecbaab2e22b18da807c7c5aa147a"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ad3b2ecbaab2e22b18da807c7c5aa147a inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a575b9e3dbf144bb98fc14ee06e219f7d inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a575b9e3dbf144bb98fc14ee06e219f7d"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a575b9e3dbf144bb98fc14ee06e219f7d inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafa819baff64cf2a594a53fbff947f3e inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafa819baff64cf2a594a53fbff947f3e"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>strobe</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>strobe</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:aafa819baff64cf2a594a53fbff947f3e inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308662200bc1be2513c9ac65ddaa43b0 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a308662200bc1be2513c9ac65ddaa43b0"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>toggle</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>toggle</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a308662200bc1be2513c9ac65ddaa43b0 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36d9f8ffbfb6547a076039fd1761200a inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36d9f8ffbfb6547a076039fd1761200a"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> (register port_ptr_t port) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> (register port_ptr_t port) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a36d9f8ffbfb6547a076039fd1761200a inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8453327e641cbdc1413d0f5acf9d5195 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8453327e641cbdc1413d0f5acf9d5195"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> (register port_ptr_t port) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> (register port_ptr_t port) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a8453327e641cbdc1413d0f5acf9d5195 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf67a98d2bca9b9d27a3c24b8cc1a58b inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf67a98d2bca9b9d27a3c24b8cc1a58b"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (register port_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (register port_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:abf67a98d2bca9b9d27a3c24b8cc1a58b inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a063487a763fe9a6fa795265480311c7c inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a063487a763fe9a6fa795265480311c7c"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fastset</b> (register port_ptr_t port, register port_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>fastset</b> (register port_ptr_t port, register port_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a063487a763fe9a6fa795265480311c7c inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70597f67481a4368727ae7d692a6e434 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70597f67481a4368727ae7d692a6e434"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>hival</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>hival</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a70597f67481a4368727ae7d692a6e434 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91f5a6b9d254eab57c6baa4f3bce6518 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91f5a6b9d254eab57c6baa4f3bce6518"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>loval</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>loval</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a91f5a6b9d254eab57c6baa4f3bce6518 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab462ca53d0eda5e199e30886e6329142 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab462ca53d0eda5e199e30886e6329142"></a>
-port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ab462ca53d0eda5e199e30886e6329142 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf184984e35f57f6f7f722736095f658 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf184984e35f57f6f7f722736095f658"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:abf184984e35f57f6f7f722736095f658 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7135576a0f7cd2df8d49af5a001c59c1 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7135576a0f7cd2df8d49af5a001c59c1"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>select</b> ()</td></tr>
@@ -183,40 +183,40 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>setOutput</b> ()</td>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setInput</b> ()</td></tr>
<tr class="separator:a3b1c3fa3480cd4a57c065f2e8811543a inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3b2ecbaab2e22b18da807c7c5aa147a inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3b2ecbaab2e22b18da807c7c5aa147a"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ad3b2ecbaab2e22b18da807c7c5aa147a inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a575b9e3dbf144bb98fc14ee06e219f7d inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a575b9e3dbf144bb98fc14ee06e219f7d"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a575b9e3dbf144bb98fc14ee06e219f7d inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafa819baff64cf2a594a53fbff947f3e inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafa819baff64cf2a594a53fbff947f3e"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>strobe</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>strobe</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:aafa819baff64cf2a594a53fbff947f3e inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308662200bc1be2513c9ac65ddaa43b0 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a308662200bc1be2513c9ac65ddaa43b0"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>toggle</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>toggle</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a308662200bc1be2513c9ac65ddaa43b0 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36d9f8ffbfb6547a076039fd1761200a inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36d9f8ffbfb6547a076039fd1761200a"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> (register port_ptr_t port) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> (register port_ptr_t port) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a36d9f8ffbfb6547a076039fd1761200a inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8453327e641cbdc1413d0f5acf9d5195 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8453327e641cbdc1413d0f5acf9d5195"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> (register port_ptr_t port) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> (register port_ptr_t port) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a8453327e641cbdc1413d0f5acf9d5195 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf67a98d2bca9b9d27a3c24b8cc1a58b inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf67a98d2bca9b9d27a3c24b8cc1a58b"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (register port_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (register port_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:abf67a98d2bca9b9d27a3c24b8cc1a58b inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a063487a763fe9a6fa795265480311c7c inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a063487a763fe9a6fa795265480311c7c"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fastset</b> (register port_ptr_t port, register port_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>fastset</b> (register port_ptr_t port, register port_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a063487a763fe9a6fa795265480311c7c inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70597f67481a4368727ae7d692a6e434 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70597f67481a4368727ae7d692a6e434"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>hival</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>hival</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a70597f67481a4368727ae7d692a6e434 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91f5a6b9d254eab57c6baa4f3bce6518 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91f5a6b9d254eab57c6baa4f3bce6518"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>loval</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>loval</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a91f5a6b9d254eab57c6baa4f3bce6518 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab462ca53d0eda5e199e30886e6329142 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab462ca53d0eda5e199e30886e6329142"></a>
-port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ab462ca53d0eda5e199e30886e6329142 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf184984e35f57f6f7f722736095f658 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf184984e35f57f6f7f722736095f658"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:abf184984e35f57f6f7f722736095f658 inherit pub_methods_class_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7135576a0f7cd2df8d49af5a001c59c1 inherit pub_methods_class_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7135576a0f7cd2df8d49af5a001c59c1"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>select</b> ()</td></tr>
@@ -250,7 +250,7 @@ typedef RwReg&#160;</td><td class="memItemRight" valign="bottom"><b>port_t</b></
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_p9813_controller-members.html b/docs/3.1/class_p9813_controller-members.html
index ef576e6a..1144f917 100644
--- a/docs/3.1/class_p9813_controller-members.html
+++ b/docs/3.1/class_p9813_controller-members.html
@@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_p9813_controller.html b/docs/3.1/class_p9813_controller.html
index 178ee2fc..4251b377 100644
--- a/docs/3.1/class_p9813_controller.html
+++ b/docs/3.1/class_p9813_controller.html
@@ -90,7 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="class_p9813_controller-members.html">List of all members</a> </div>
<div class="headertitle">
-<div class="title">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt; Class Template Reference</div> </div>
+<div class="title">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
@@ -110,7 +110,7 @@ Collaboration diagram for P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SP
<div class="dyncontent">
<div class="center"><img src="class_p9813_controller__coll__graph.png" border="0" usemap="#_p9813_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_p9813_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" id="_p9813_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="33,133,148,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="CRGB" alt="" coords="61,5,120,32"/></map>
+<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="33,133,148,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="61,5,120,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -165,7 +165,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class
<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e86c45c89ebfb7b21f9045790302399"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a> ()</td></tr>
-<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html">CRGB</a> array for this controller. <br /></td></tr>
+<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
<tr class="separator:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a278a429964bec69b3c91486665e61c0a inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a278a429964bec69b3c91486665e61c0a"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a> (int x)</td></tr>
@@ -444,7 +444,7 @@ template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_p9813_controller__coll__graph.map b/docs/3.1/class_p9813_controller__coll__graph.map
index 0a085953..ee127e81 100644
--- a/docs/3.1/class_p9813_controller__coll__graph.map
+++ b/docs/3.1/class_p9813_controller__coll__graph.map
@@ -1,4 +1,4 @@
<map id="P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="33,133,148,160"/>
-<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="CRGB" alt="" coords="61,5,120,32"/>
+<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="61,5,120,32"/>
</map>
diff --git a/docs/3.1/class_p9813_controller__coll__graph.md5 b/docs/3.1/class_p9813_controller__coll__graph.md5
index fcaff021..a330b5c4 100644
--- a/docs/3.1/class_p9813_controller__coll__graph.md5
+++ b/docs/3.1/class_p9813_controller__coll__graph.md5
@@ -1 +1 @@
-44d516423dd3a7f70808b0b1924c8497 \ No newline at end of file
+19f5271f84193bdb1c53b062c4aca039 \ No newline at end of file
diff --git a/docs/3.1/class_pin-members.html b/docs/3.1/class_pin-members.html
index 771ea2de..5b40fcf4 100644
--- a/docs/3.1/class_pin-members.html
+++ b/docs/3.1/class_pin-members.html
@@ -136,7 +136,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_pin.html b/docs/3.1/class_pin.html
index 3b0d3b1e..a9943e9a 100644
--- a/docs/3.1/class_pin.html
+++ b/docs/3.1/class_pin.html
@@ -135,40 +135,40 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>setOutput</b> ()</td>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setInput</b> ()</td></tr>
<tr class="separator:a3b1c3fa3480cd4a57c065f2e8811543a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3b2ecbaab2e22b18da807c7c5aa147a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3b2ecbaab2e22b18da807c7c5aa147a"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ad3b2ecbaab2e22b18da807c7c5aa147a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a575b9e3dbf144bb98fc14ee06e219f7d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a575b9e3dbf144bb98fc14ee06e219f7d"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a575b9e3dbf144bb98fc14ee06e219f7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafa819baff64cf2a594a53fbff947f3e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafa819baff64cf2a594a53fbff947f3e"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>strobe</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>strobe</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:aafa819baff64cf2a594a53fbff947f3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308662200bc1be2513c9ac65ddaa43b0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a308662200bc1be2513c9ac65ddaa43b0"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>toggle</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>toggle</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a308662200bc1be2513c9ac65ddaa43b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36d9f8ffbfb6547a076039fd1761200a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36d9f8ffbfb6547a076039fd1761200a"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> (register port_ptr_t port) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> (register port_ptr_t port) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a36d9f8ffbfb6547a076039fd1761200a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8453327e641cbdc1413d0f5acf9d5195"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8453327e641cbdc1413d0f5acf9d5195"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> (register port_ptr_t port) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> (register port_ptr_t port) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a8453327e641cbdc1413d0f5acf9d5195"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf67a98d2bca9b9d27a3c24b8cc1a58b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf67a98d2bca9b9d27a3c24b8cc1a58b"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (register port_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (register port_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:abf67a98d2bca9b9d27a3c24b8cc1a58b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a063487a763fe9a6fa795265480311c7c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a063487a763fe9a6fa795265480311c7c"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fastset</b> (register port_ptr_t port, register port_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>fastset</b> (register port_ptr_t port, register port_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a063487a763fe9a6fa795265480311c7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70597f67481a4368727ae7d692a6e434"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70597f67481a4368727ae7d692a6e434"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>hival</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>hival</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a70597f67481a4368727ae7d692a6e434"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91f5a6b9d254eab57c6baa4f3bce6518"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91f5a6b9d254eab57c6baa4f3bce6518"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>loval</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>loval</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a91f5a6b9d254eab57c6baa4f3bce6518"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab462ca53d0eda5e199e30886e6329142"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab462ca53d0eda5e199e30886e6329142"></a>
-port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ab462ca53d0eda5e199e30886e6329142"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf184984e35f57f6f7f722736095f658"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf184984e35f57f6f7f722736095f658"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:abf184984e35f57f6f7f722736095f658"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7135576a0f7cd2df8d49af5a001c59c1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7135576a0f7cd2df8d49af5a001c59c1"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>select</b> ()</td></tr>
@@ -192,40 +192,40 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>setOutput</b> ()</td>
void&#160;</td><td class="memItemRight" valign="bottom"><b>setInput</b> ()</td></tr>
<tr class="separator:a3b1c3fa3480cd4a57c065f2e8811543a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3b2ecbaab2e22b18da807c7c5aa147a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad3b2ecbaab2e22b18da807c7c5aa147a"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ad3b2ecbaab2e22b18da807c7c5aa147a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a575b9e3dbf144bb98fc14ee06e219f7d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a575b9e3dbf144bb98fc14ee06e219f7d"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a575b9e3dbf144bb98fc14ee06e219f7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafa819baff64cf2a594a53fbff947f3e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafa819baff64cf2a594a53fbff947f3e"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>strobe</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>strobe</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:aafa819baff64cf2a594a53fbff947f3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a308662200bc1be2513c9ac65ddaa43b0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a308662200bc1be2513c9ac65ddaa43b0"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>toggle</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>toggle</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a308662200bc1be2513c9ac65ddaa43b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36d9f8ffbfb6547a076039fd1761200a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36d9f8ffbfb6547a076039fd1761200a"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> (register port_ptr_t port) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>hi</b> (register port_ptr_t port) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a36d9f8ffbfb6547a076039fd1761200a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8453327e641cbdc1413d0f5acf9d5195"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8453327e641cbdc1413d0f5acf9d5195"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> (register port_ptr_t port) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>lo</b> (register port_ptr_t port) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a8453327e641cbdc1413d0f5acf9d5195"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf67a98d2bca9b9d27a3c24b8cc1a58b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf67a98d2bca9b9d27a3c24b8cc1a58b"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (register port_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>set</b> (register port_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:abf67a98d2bca9b9d27a3c24b8cc1a58b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a063487a763fe9a6fa795265480311c7c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a063487a763fe9a6fa795265480311c7c"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fastset</b> (register port_ptr_t port, register port_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>fastset</b> (register port_ptr_t port, register port_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a063487a763fe9a6fa795265480311c7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70597f67481a4368727ae7d692a6e434"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a70597f67481a4368727ae7d692a6e434"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>hival</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>hival</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a70597f67481a4368727ae7d692a6e434"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91f5a6b9d254eab57c6baa4f3bce6518"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91f5a6b9d254eab57c6baa4f3bce6518"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>loval</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>loval</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a91f5a6b9d254eab57c6baa4f3bce6518"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab462ca53d0eda5e199e30886e6329142"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab462ca53d0eda5e199e30886e6329142"></a>
-port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ab462ca53d0eda5e199e30886e6329142"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf184984e35f57f6f7f722736095f658"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf184984e35f57f6f7f722736095f658"></a>
-port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:abf184984e35f57f6f7f722736095f658"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7135576a0f7cd2df8d49af5a001c59c1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7135576a0f7cd2df8d49af5a001c59c1"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>select</b> ()</td></tr>
@@ -243,7 +243,7 @@ virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>isSelected</b
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_m16716_controller-members.html b/docs/3.1/class_s_m16716_controller-members.html
index 3a0e6fcc..556bae9c 100644
--- a/docs/3.1/class_s_m16716_controller-members.html
+++ b/docs/3.1/class_s_m16716_controller-members.html
@@ -132,7 +132,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_m16716_controller.html b/docs/3.1/class_s_m16716_controller.html
index 8750f88d..58e2b463 100644
--- a/docs/3.1/class_s_m16716_controller.html
+++ b/docs/3.1/class_s_m16716_controller.html
@@ -90,7 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="class_s_m16716_controller-members.html">List of all members</a> </div>
<div class="headertitle">
-<div class="title">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt; Class Template Reference</div> </div>
+<div class="title">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
@@ -110,7 +110,7 @@ Collaboration diagram for SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER,
<div class="dyncontent">
<div class="center"><img src="class_s_m16716_controller__coll__graph.png" border="0" usemap="#_s_m16716_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_s_m16716_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" id="_s_m16716_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="CRGB" alt="" coords="77,5,136,32"/></map>
+<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -165,7 +165,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class
<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e86c45c89ebfb7b21f9045790302399"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a> ()</td></tr>
-<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html">CRGB</a> array for this controller. <br /></td></tr>
+<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
<tr class="separator:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a278a429964bec69b3c91486665e61c0a inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a278a429964bec69b3c91486665e61c0a"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a> (int x)</td></tr>
@@ -386,7 +386,7 @@ template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_m16716_controller__coll__graph.map b/docs/3.1/class_s_m16716_controller__coll__graph.map
index b4372ba1..0dc7b506 100644
--- a/docs/3.1/class_s_m16716_controller__coll__graph.map
+++ b/docs/3.1/class_s_m16716_controller__coll__graph.map
@@ -1,4 +1,4 @@
<map id="SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/>
-<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="CRGB" alt="" coords="77,5,136,32"/>
+<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/>
</map>
diff --git a/docs/3.1/class_s_m16716_controller__coll__graph.md5 b/docs/3.1/class_s_m16716_controller__coll__graph.md5
index cad9518f..a480586d 100644
--- a/docs/3.1/class_s_m16716_controller__coll__graph.md5
+++ b/docs/3.1/class_s_m16716_controller__coll__graph.md5
@@ -1 +1 @@
-4b2a1ab5a02c026583959c8363aa5f35 \ No newline at end of file
+d1c9268fb6cfca674d343d3c982e9c59 \ No newline at end of file
diff --git a/docs/3.1/class_s_p_i_output-members.html b/docs/3.1/class_s_p_i_output-members.html
index 670d325e..6a453181 100644
--- a/docs/3.1/class_s_p_i_output-members.html
+++ b/docs/3.1/class_s_p_i_output-members.html
@@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_p_i_output.html b/docs/3.1/class_s_p_i_output.html
index 21c2cf6c..7dde1b16 100644
--- a/docs/3.1/class_s_p_i_output.html
+++ b/docs/3.1/class_s_p_i_output.html
@@ -150,7 +150,7 @@ static void&#160;</td><td class="memItemRight" valign="bottom"><b>writeByte</b>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html b/docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
index 41b4357a..4b419bd0 100644
--- a/docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
+++ b/docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
@@ -105,7 +105,7 @@ Collaboration diagram for SPIOutput&lt; SPI2_DATA, SPI2_CLOCK, SPI_SPEED &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html b/docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
index baac38dc..1ca29a7c 100644
--- a/docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
+++ b/docs/3.1/class_s_p_i_output_3_01_s_p_i2___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
@@ -105,7 +105,7 @@ Collaboration diagram for SPIOutput&lt; SPI2_DATA, SPI_CLOCK, SPI_SPEED &gt;:</d
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html b/docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
index 28d89d5b..6311ecda 100644
--- a/docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
+++ b/docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i2___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
@@ -105,7 +105,7 @@ Collaboration diagram for SPIOutput&lt; SPI_DATA, SPI2_CLOCK, SPI_SPEED &gt;:</d
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html b/docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
index d9fe6abf..8ad7b2cf 100644
--- a/docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
+++ b/docs/3.1/class_s_p_i_output_3_01_s_p_i___d_a_t_a_00_01_s_p_i___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
@@ -105,7 +105,7 @@ Collaboration diagram for SPIOutput&lt; SPI_DATA, SPI_CLOCK, SPI_SPEED &gt;:</di
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t0___d_a_t_a_00_01_s_p_i___u_a_r_t0___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html b/docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t0___d_a_t_a_00_01_s_p_i___u_a_r_t0___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
index d85c2e33..3bbcc863 100644
--- a/docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t0___d_a_t_a_00_01_s_p_i___u_a_r_t0___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
+++ b/docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t0___d_a_t_a_00_01_s_p_i___u_a_r_t0___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
@@ -105,7 +105,7 @@ Collaboration diagram for SPIOutput&lt; SPI_UART0_DATA, SPI_UART0_CLOCK, SPI_SPE
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t1___d_a_t_a_00_01_s_p_i___u_a_r_t1___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html b/docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t1___d_a_t_a_00_01_s_p_i___u_a_r_t1___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
index 9b6a76fc..4e4ca66e 100644
--- a/docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t1___d_a_t_a_00_01_s_p_i___u_a_r_t1___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
+++ b/docs/3.1/class_s_p_i_output_3_01_s_p_i___u_a_r_t1___d_a_t_a_00_01_s_p_i___u_a_r_t1___c_l_o_c_k_00_01_s_p_i___s_p_e_e_d_01_4.html
@@ -105,7 +105,7 @@ Collaboration diagram for SPIOutput&lt; SPI_UART1_DATA, SPI_UART1_CLOCK, SPI_SPE
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_selectable-members.html b/docs/3.1/class_selectable-members.html
index 47f76596..8d61df65 100644
--- a/docs/3.1/class_selectable-members.html
+++ b/docs/3.1/class_selectable-members.html
@@ -98,7 +98,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_selectable.html b/docs/3.1/class_selectable.html
index abc20543..400b8e47 100644
--- a/docs/3.1/class_selectable.html
+++ b/docs/3.1/class_selectable.html
@@ -118,7 +118,7 @@ virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>isSelected</b
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_software_s_p_i_output-members.html b/docs/3.1/class_software_s_p_i_output-members.html
index dc73f472..70c3e406 100644
--- a/docs/3.1/class_software_s_p_i_output-members.html
+++ b/docs/3.1/class_software_s_p_i_output-members.html
@@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_software_s_p_i_output.html b/docs/3.1/class_software_s_p_i_output.html
index a857caa8..402477c4 100644
--- a/docs/3.1/class_software_s_p_i_output.html
+++ b/docs/3.1/class_software_s_p_i_output.html
@@ -150,7 +150,7 @@ static void&#160;</td><td class="memItemRight" valign="bottom"><b>writeByte</b>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_t_m1803.html b/docs/3.1/class_t_m1803.html
index 92c47aca..58670bac 100644
--- a/docs/3.1/class_t_m1803.html
+++ b/docs/3.1/class_t_m1803.html
@@ -109,7 +109,7 @@ Collaboration diagram for TM1803&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_t_m1803_controller400_khz.html b/docs/3.1/class_t_m1803_controller400_khz.html
index 4d71e844..584cb58c 100644
--- a/docs/3.1/class_t_m1803_controller400_khz.html
+++ b/docs/3.1/class_t_m1803_controller400_khz.html
@@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">TM1803Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+<div class="title">TM1803Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -107,7 +107,7 @@ Collaboration diagram for TM1803Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_t_m1804.html b/docs/3.1/class_t_m1804.html
index 2bc88fdb..d20e087f 100644
--- a/docs/3.1/class_t_m1804.html
+++ b/docs/3.1/class_t_m1804.html
@@ -109,7 +109,7 @@ Collaboration diagram for TM1804&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_t_m1809.html b/docs/3.1/class_t_m1809.html
index 6971bd80..2a8da171 100644
--- a/docs/3.1/class_t_m1809.html
+++ b/docs/3.1/class_t_m1809.html
@@ -109,7 +109,7 @@ Collaboration diagram for TM1809&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_t_m1809_controller800_khz.html b/docs/3.1/class_t_m1809_controller800_khz.html
index fc06033c..3b630c36 100644
--- a/docs/3.1/class_t_m1809_controller800_khz.html
+++ b/docs/3.1/class_t_m1809_controller800_khz.html
@@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">TM1809Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+<div class="title">TM1809Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -107,7 +107,7 @@ Collaboration diagram for TM1809Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_t_m1829.html b/docs/3.1/class_t_m1829.html
index a6271df0..e9f5ef24 100644
--- a/docs/3.1/class_t_m1829.html
+++ b/docs/3.1/class_t_m1829.html
@@ -109,7 +109,7 @@ Collaboration diagram for TM1829&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_t_m1829_controller1600_khz.html b/docs/3.1/class_t_m1829_controller1600_khz.html
index dd6d5714..3457505e 100644
--- a/docs/3.1/class_t_m1829_controller1600_khz.html
+++ b/docs/3.1/class_t_m1829_controller1600_khz.html
@@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">TM1829Controller1600Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+<div class="title">TM1829Controller1600Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -105,7 +105,7 @@ Collaboration diagram for TM1829Controller1600Khz&lt; DATA_PIN, RGB_ORDER &gt;:<
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_t_m1829_controller800_khz.html b/docs/3.1/class_t_m1829_controller800_khz.html
index 1e969f4d..f36bccfd 100644
--- a/docs/3.1/class_t_m1829_controller800_khz.html
+++ b/docs/3.1/class_t_m1829_controller800_khz.html
@@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">TM1829Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+<div class="title">TM1829Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -107,7 +107,7 @@ Collaboration diagram for TM1829Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_u_c_s1903.html b/docs/3.1/class_u_c_s1903.html
index aefc00e7..b482e1dd 100644
--- a/docs/3.1/class_u_c_s1903.html
+++ b/docs/3.1/class_u_c_s1903.html
@@ -109,7 +109,7 @@ Collaboration diagram for UCS1903&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_u_c_s1903_b.html b/docs/3.1/class_u_c_s1903_b.html
index 5603e4e2..696fc39d 100644
--- a/docs/3.1/class_u_c_s1903_b.html
+++ b/docs/3.1/class_u_c_s1903_b.html
@@ -109,7 +109,7 @@ Collaboration diagram for UCS1903B&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_u_c_s1903_b_controller800_khz.html b/docs/3.1/class_u_c_s1903_b_controller800_khz.html
index 3d852c00..3d586ed9 100644
--- a/docs/3.1/class_u_c_s1903_b_controller800_khz.html
+++ b/docs/3.1/class_u_c_s1903_b_controller800_khz.html
@@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">UCS1903BController800Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+<div class="title">UCS1903BController800Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -107,7 +107,7 @@ Collaboration diagram for UCS1903BController800Khz&lt; DATA_PIN, RGB_ORDER &gt;:
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_u_c_s1903_controller400_khz.html b/docs/3.1/class_u_c_s1903_controller400_khz.html
index db7a7ec8..4d9c7371 100644
--- a/docs/3.1/class_u_c_s1903_controller400_khz.html
+++ b/docs/3.1/class_u_c_s1903_controller400_khz.html
@@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">UCS1903Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+<div class="title">UCS1903Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -107,7 +107,7 @@ Collaboration diagram for UCS1903Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;:<
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_u_c_s1904.html b/docs/3.1/class_u_c_s1904.html
index 534cd970..404ba649 100644
--- a/docs/3.1/class_u_c_s1904.html
+++ b/docs/3.1/class_u_c_s1904.html
@@ -109,7 +109,7 @@ Collaboration diagram for UCS1904&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_u_c_s1904_controller800_khz.html b/docs/3.1/class_u_c_s1904_controller800_khz.html
index 4833cea3..0a3537be 100644
--- a/docs/3.1/class_u_c_s1904_controller800_khz.html
+++ b/docs/3.1/class_u_c_s1904_controller800_khz.html
@@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">UCS1904Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+<div class="title">UCS1904Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -107,7 +107,7 @@ Collaboration diagram for UCS1904Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;:<
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2801_controller-members.html b/docs/3.1/class_w_s2801_controller-members.html
index ffeaff48..dff689ea 100644
--- a/docs/3.1/class_w_s2801_controller-members.html
+++ b/docs/3.1/class_w_s2801_controller-members.html
@@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2801_controller.html b/docs/3.1/class_w_s2801_controller.html
index accb03a8..d326fb18 100644
--- a/docs/3.1/class_w_s2801_controller.html
+++ b/docs/3.1/class_w_s2801_controller.html
@@ -90,7 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="class_w_s2801_controller-members.html">List of all members</a> </div>
<div class="headertitle">
-<div class="title">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt; Class Template Reference</div> </div>
+<div class="title">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
@@ -110,7 +110,7 @@ Collaboration diagram for WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, S
<div class="dyncontent">
<div class="center"><img src="class_w_s2801_controller__coll__graph.png" border="0" usemap="#_w_s2801_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_w_s2801_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" id="_w_s2801_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="CRGB" alt="" coords="90,5,149,32"/></map>
+<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -165,7 +165,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class
<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e86c45c89ebfb7b21f9045790302399"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a> ()</td></tr>
-<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html">CRGB</a> array for this controller. <br /></td></tr>
+<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
<tr class="separator:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a278a429964bec69b3c91486665e61c0a inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a278a429964bec69b3c91486665e61c0a"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a> (int x)</td></tr>
@@ -444,7 +444,7 @@ template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2801_controller__coll__graph.map b/docs/3.1/class_w_s2801_controller__coll__graph.map
index 54f1dcbc..9b1366f0 100644
--- a/docs/3.1/class_w_s2801_controller__coll__graph.map
+++ b/docs/3.1/class_w_s2801_controller__coll__graph.map
@@ -1,4 +1,4 @@
<map id="WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/>
-<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="CRGB" alt="" coords="90,5,149,32"/>
+<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/>
</map>
diff --git a/docs/3.1/class_w_s2801_controller__coll__graph.md5 b/docs/3.1/class_w_s2801_controller__coll__graph.md5
index ec8ae06a..f47865c6 100644
--- a/docs/3.1/class_w_s2801_controller__coll__graph.md5
+++ b/docs/3.1/class_w_s2801_controller__coll__graph.md5
@@ -1 +1 @@
-f5a4dc5782762683856fea9549ed8b3b \ No newline at end of file
+15f67174055a2bc91bafcfa29a000a8b \ No newline at end of file
diff --git a/docs/3.1/class_w_s2803_controller-members.html b/docs/3.1/class_w_s2803_controller-members.html
index eadcf69b..288a5fe6 100644
--- a/docs/3.1/class_w_s2803_controller-members.html
+++ b/docs/3.1/class_w_s2803_controller-members.html
@@ -133,7 +133,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2803_controller.html b/docs/3.1/class_w_s2803_controller.html
index 1f650fb9..ea17146a 100644
--- a/docs/3.1/class_w_s2803_controller.html
+++ b/docs/3.1/class_w_s2803_controller.html
@@ -88,7 +88,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="summary">
<a href="class_w_s2803_controller-members.html">List of all members</a> </div>
<div class="headertitle">
-<div class="title">WS2803Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt; Class Template Reference</div> </div>
+<div class="title">WS2803Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -103,7 +103,7 @@ Collaboration diagram for WS2803Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, S
<div class="dyncontent">
<div class="center"><img src="class_w_s2803_controller__coll__graph.png" border="0" usemap="#_w_s2803_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_w_s2803_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" id="_w_s2803_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map">
-<area shape="rect" id="node2" href="class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="5,219,235,275"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="CRGB" alt="" coords="90,5,149,32"/></map>
+<area shape="rect" id="node2" href="class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="5,219,235,275"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
@@ -159,7 +159,7 @@ int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class
<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e86c45c89ebfb7b21f9045790302399"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a> ()</td></tr>
-<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html">CRGB</a> array for this controller. <br /></td></tr>
+<tr class="memdesc:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
<tr class="separator:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a278a429964bec69b3c91486665e61c0a inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a278a429964bec69b3c91486665e61c0a"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a> (int x)</td></tr>
@@ -256,7 +256,7 @@ static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2803_controller__coll__graph.map b/docs/3.1/class_w_s2803_controller__coll__graph.map
index 6b78f2a6..41a6a4fa 100644
--- a/docs/3.1/class_w_s2803_controller__coll__graph.map
+++ b/docs/3.1/class_w_s2803_controller__coll__graph.map
@@ -1,5 +1,5 @@
<map id="WS2803Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="WS2803Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
<area shape="rect" id="node2" href="$class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="5,219,235,275"/>
<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/>
-<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="CRGB" alt="" coords="90,5,149,32"/>
+<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/>
</map>
diff --git a/docs/3.1/class_w_s2803_controller__coll__graph.md5 b/docs/3.1/class_w_s2803_controller__coll__graph.md5
index 363af7db..206445ce 100644
--- a/docs/3.1/class_w_s2803_controller__coll__graph.md5
+++ b/docs/3.1/class_w_s2803_controller__coll__graph.md5
@@ -1 +1 @@
-80bdac2b5b4c660d17efcac3a4116f6c \ No newline at end of file
+2dab56d987a974b1bdeaa585fdab2f46 \ No newline at end of file
diff --git a/docs/3.1/class_w_s2811.html b/docs/3.1/class_w_s2811.html
index e287865a..4d4eb950 100644
--- a/docs/3.1/class_w_s2811.html
+++ b/docs/3.1/class_w_s2811.html
@@ -109,7 +109,7 @@ Collaboration diagram for WS2811&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2811__400.html b/docs/3.1/class_w_s2811__400.html
index afe0c1fa..cbd29ab0 100644
--- a/docs/3.1/class_w_s2811__400.html
+++ b/docs/3.1/class_w_s2811__400.html
@@ -109,7 +109,7 @@ Collaboration diagram for WS2811_400&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2811_controller400_khz.html b/docs/3.1/class_w_s2811_controller400_khz.html
index 9a45edae..f9084643 100644
--- a/docs/3.1/class_w_s2811_controller400_khz.html
+++ b/docs/3.1/class_w_s2811_controller400_khz.html
@@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">WS2811Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+<div class="title">WS2811Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -107,7 +107,7 @@ Collaboration diagram for WS2811Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2811_controller800_khz.html b/docs/3.1/class_w_s2811_controller800_khz.html
index 49bf2511..0ab60285 100644
--- a/docs/3.1/class_w_s2811_controller800_khz.html
+++ b/docs/3.1/class_w_s2811_controller800_khz.html
@@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">WS2811Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+<div class="title">WS2811Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -107,7 +107,7 @@ Collaboration diagram for WS2811Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2812.html b/docs/3.1/class_w_s2812.html
index 9ee1ee85..f55b8602 100644
--- a/docs/3.1/class_w_s2812.html
+++ b/docs/3.1/class_w_s2812.html
@@ -109,7 +109,7 @@ Collaboration diagram for WS2812&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2812_b.html b/docs/3.1/class_w_s2812_b.html
index 093bf729..a50d5f2b 100644
--- a/docs/3.1/class_w_s2812_b.html
+++ b/docs/3.1/class_w_s2812_b.html
@@ -109,7 +109,7 @@ Collaboration diagram for WS2812B&lt; DATA_PIN, RGB_ORDER &gt;:</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/class_w_s2812_controller800_khz.html b/docs/3.1/class_w_s2812_controller800_khz.html
index 1f57f578..a02582dd 100644
--- a/docs/3.1/class_w_s2812_controller800_khz.html
+++ b/docs/3.1/class_w_s2812_controller800_khz.html
@@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">WS2812Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+<div class="title">WS2812Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
</div><!--header-->
<div class="contents">
<div class="dynheader">
@@ -107,7 +107,7 @@ Collaboration diagram for WS2812Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;:</
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/classes.html b/docs/3.1/classes.html
index 3c3c16bf..e6b62823 100644
--- a/docs/3.1/classes.html
+++ b/docs/3.1/classes.html
@@ -141,7 +141,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/classq-members.html b/docs/3.1/classq-members.html
index 7ff97c5b..4db41bb6 100644
--- a/docs/3.1/classq-members.html
+++ b/docs/3.1/classq-members.html
@@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/classq.html b/docs/3.1/classq.html
index 2fc4e9e8..a9f20cc7 100644
--- a/docs/3.1/classq.html
+++ b/docs/3.1/classq.html
@@ -133,7 +133,7 @@ class q&lt; T, F, I &gt;</h3>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/color_8h_source.html b/docs/3.1/color_8h_source.html
index 1871208d..bd4e5c91 100644
--- a/docs/3.1/color_8h_source.html
+++ b/docs/3.1/color_8h_source.html
@@ -151,7 +151,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/colorpalettes_8h_source.html b/docs/3.1/colorpalettes_8h_source.html
index d3f6e342..11359ea5 100644
--- a/docs/3.1/colorpalettes_8h_source.html
+++ b/docs/3.1/colorpalettes_8h_source.html
@@ -120,7 +120,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/colorutils_8h_source.html b/docs/3.1/colorutils_8h_source.html
index 6c3292bc..0e45d229 100644
--- a/docs/3.1/colorutils_8h_source.html
+++ b/docs/3.1/colorutils_8h_source.html
@@ -141,1097 +141,1097 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#define saccum87 int16_t</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98"> 89</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( T* targetArray,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; uint16_t startpos, <a class="code" href="struct_c_h_s_v.html">CHSV</a> startcolor,</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; uint16_t endpos, <a class="code" href="struct_c_h_s_v.html">CHSV</a> endcolor,</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// if the points are in the wrong order, straighten them</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span>( endpos &lt; startpos ) {</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; uint16_t t = endpos;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> tc = endcolor;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; startpos = t;</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; startcolor = tc;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; endcolor = startcolor;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; endpos = startpos;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// If we&#39;re fading toward black (val=0) or white (sat=0),</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">// then set the endhue to the starthue.</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// This lets us ramp smoothly to black or white, regardless</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// of what &#39;hue&#39; was set in the endcolor (since it doesn&#39;t matter)</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span>( endcolor.value == 0 || endcolor.saturation == 0) {</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; endcolor.hue = startcolor.hue;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// Similarly, if we&#39;re fading in from black (val=0) or white (sat=0)</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// then set the starthue to the endhue.</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// This lets us ramp smoothly up from black or white, regardless</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// of what &#39;hue&#39; was set in the startcolor (since it doesn&#39;t matter)</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>( startcolor.value == 0 || startcolor.saturation == 0) {</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; startcolor.hue = endcolor.hue;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; saccum87 huedistance87;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; saccum87 satdistance87;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; saccum87 valdistance87;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; satdistance87 = (endcolor.sat - startcolor.sat) &lt;&lt; 7;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; valdistance87 = (endcolor.val - startcolor.val) &lt;&lt; 7;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; uint8_t huedelta8 = endcolor.hue - startcolor.hue;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98"> 91</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( T* targetArray,</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; uint16_t startpos, <a class="code" href="struct_c_h_s_v.html">CHSV</a> startcolor,</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; uint16_t endpos, <a class="code" href="struct_c_h_s_v.html">CHSV</a> endcolor,</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// if the points are in the wrong order, straighten them</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span>( endpos &lt; startpos ) {</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; uint16_t t = endpos;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> tc = endcolor;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; startpos = t;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; startcolor = tc;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; endcolor = startcolor;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; endpos = startpos;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// If we&#39;re fading toward black (val=0) or white (sat=0),</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// then set the endhue to the starthue.</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// This lets us ramp smoothly to black or white, regardless</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// of what &#39;hue&#39; was set in the endcolor (since it doesn&#39;t matter)</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span>( endcolor.value == 0 || endcolor.saturation == 0) {</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; endcolor.hue = startcolor.hue;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// Similarly, if we&#39;re fading in from black (val=0) or white (sat=0)</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// then set the starthue to the endhue.</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// This lets us ramp smoothly up from black or white, regardless</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// of what &#39;hue&#39; was set in the startcolor (since it doesn&#39;t matter)</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>( startcolor.value == 0 || startcolor.saturation == 0) {</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; startcolor.hue = endcolor.hue;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; saccum87 huedistance87;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; saccum87 satdistance87;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; saccum87 valdistance87;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; satdistance87 = (endcolor.sat - startcolor.sat) &lt;&lt; 7;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; valdistance87 = (endcolor.val - startcolor.val) &lt;&lt; 7;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span>( directionCode == SHORTEST_HUES ) {</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; directionCode = FORWARD_HUES;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>( huedelta8 &gt; 127) {</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; directionCode = BACKWARD_HUES;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span>( directionCode == LONGEST_HUES ) {</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; directionCode = FORWARD_HUES;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span>( huedelta8 &lt; 128) {</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; directionCode = BACKWARD_HUES;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span>( directionCode == FORWARD_HUES) {</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; huedistance87 = huedelta8 &lt;&lt; 7;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">else</span> <span class="comment">/* directionCode == BACKWARD_HUES */</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; {</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; huedistance87 = (uint8_t)(256 - huedelta8) &lt;&lt; 7;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; huedistance87 = -huedistance87;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; uint16_t pixeldistance = endpos - startpos;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; int16_t divisor = pixeldistance ? pixeldistance : 1;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; saccum87 huedelta87 = huedistance87 / divisor;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; saccum87 satdelta87 = satdistance87 / divisor;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; saccum87 valdelta87 = valdistance87 / divisor;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; huedelta87 *= 2;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; satdelta87 *= 2;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; valdelta87 *= 2;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> hue88 = startcolor.hue &lt;&lt; 8;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> sat88 = startcolor.sat &lt;&lt; 8;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> val88 = startcolor.val &lt;&lt; 8;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">for</span>( uint16_t i = startpos; i &lt;= endpos; i++) {</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; targetArray[i] = <a class="code" href="struct_c_h_s_v.html">CHSV</a>( hue88 &gt;&gt; 8, sat88 &gt;&gt; 8, val88 &gt;&gt; 8);</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; hue88 += huedelta87;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; sat88 += satdelta87;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; val88 += valdelta87;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;}</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">// Convenience functions to fill an array of colors with a</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment">// two-color, three-color, or four-color gradient</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( T* targetArray, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2,</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;{</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; uint16_t last = numLeds - 1;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, 0, c1, last, c2, directionCode);</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;}</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( T* targetArray, uint16_t numLeds,</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3,</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;{</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; uint16_t half = (numLeds / 2);</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; uint16_t last = numLeds - 1;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, 0, c1, half, c2, directionCode);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, half, c2, last, c3, directionCode);</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;}</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( T* targetArray, uint16_t numLeds,</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c4,</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;{</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; uint16_t onethird = (numLeds / 3);</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; uint16_t twothirds = ((numLeds * 2) / 3);</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; uint16_t last = numLeds - 1;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, 0, c1, onethird, c2, directionCode);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, onethird, c2, twothirds, c3, directionCode);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, twothirds, c3, last, c4, directionCode);</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment">// convenience synonym</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#define fill_gradient_HSV fill_gradient</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment">// fill_gradient_RGB - fill a range of LEDs with a smooth RGB gradient</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="comment">// between two specified RGB colors.</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="comment">// Unlike HSV, there is no &#39;color wheel&#39; in RGB space,</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="comment">// and therefore there&#39;s only one &#39;direction&#39; for the</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment">// gradient to go, and no &#39;direction code&#39; is needed.</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds,</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; uint16_t startpos, <a class="code" href="struct_c_r_g_b.html">CRGB</a> startcolor,</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; uint16_t endpos, <a class="code" href="struct_c_r_g_b.html">CRGB</a> endcolor );</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2);</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c3);</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c4);</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="comment">// fadeLightBy and fade_video - reduce the brightness of an array</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="comment">// of pixels all at once. Guaranteed</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="comment">// to never fade all the way to black.</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment">// (The two names are synonyms.)</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="keywordtype">void</span> fadeLightBy( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t fadeBy);</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="keywordtype">void</span> fade_video( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t fadeBy);</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment">// nscale8_video - scale down the brightness of an array of pixels</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="comment">// all at once. Guaranteed to never scale a pixel</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment">// all the way down to black, unless &#39;scale&#39; is zero.</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="keywordtype">void</span> nscale8_video( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t scale);</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment">// fadeToBlackBy and fade_raw - reduce the brightness of an array</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment">// of pixels all at once. These</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment">// functions will eventually fade all</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment">// the way to black.</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment">// (The two names are synonyms.)</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="keywordtype">void</span> fadeToBlackBy( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t fadeBy);</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="keywordtype">void</span> fade_raw( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t fadeBy);</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment">// nscale8 - scale down the brightness of an array of pixels</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment">// all at once. This function can scale pixels all the</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="comment">// way down to black even if &#39;scale&#39; is not zero.</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="keywordtype">void</span> nscale8( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t scale);</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="comment">// fadeUsingColor - scale down the brightness of an array of pixels,</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="comment">// as though it were seen through a transparent</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment">// filter with the specified color.</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment">// For example, if the colormask is</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="comment">// CRGB( 200, 100, 50)</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment">// then the pixels&#39; red will be faded to 200/256ths,</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment">// their green to 100/256ths, and their blue to 50/256ths.</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment">// This particular example give a &#39;hot fade&#39; look,</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment">// with white fading to yellow, then red, then black.</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="comment">// You can also use colormasks like CRGB::Blue to</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment">// zero out the red and green elements, leaving blue</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment">// (largely) the same.</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="keywordtype">void</span> fadeUsingColor( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; colormask);</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="comment">// Pixel blending</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment">// blend - computes a new color blended some fraction of the way</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="comment">// between two other colors.</span></div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> blend( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p2, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfP2 );</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> blend( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; p1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; p2, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfP2,</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES );</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="comment">// blend - computes a new color blended array of colors, each</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="comment">// a given fraction of the way between corresponding</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="comment">// elements of two source arrays of colors.</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment">// Useful for blending palettes.</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a>* blend( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>* src1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>* src2, <a class="code" href="struct_c_r_g_b.html">CRGB</a>* dest,</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2 );</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a>* blend( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* src1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* src2, <a class="code" href="struct_c_h_s_v.html">CHSV</a>* dest,</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2,</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES );</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="comment">// nblend - destructively modifies one color, blending</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment">// in a given fraction of an overlay color</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; nblend( <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; existing, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; overlay, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay );</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; nblend( <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; existing, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; overlay, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay,</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES );</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="comment">// nblend - destructively blends a given fraction of</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="comment">// a new color array into an existing color array</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="keywordtype">void</span> nblend( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* existing, <a class="code" href="struct_c_r_g_b.html">CRGB</a>* overlay, uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay);</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="keywordtype">void</span> nblend( <a class="code" href="struct_c_h_s_v.html">CHSV</a>* existing, <a class="code" href="struct_c_h_s_v.html">CHSV</a>* overlay, uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay,</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES);</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="comment">// blur1d: one-dimensional blur filter. Spreads light to 2 line neighbors.</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="comment">// blur2d: two-dimensional blur filter. Spreads light to 8 XY neighbors.</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="comment">// 0 = no spread at all</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="comment">// 64 = moderate spreading</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="comment">// 172 = maximum smooth, even spreading</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="comment">// 173..255 = wider spreading, but increasing flicker</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; uint8_t huedelta8 = endcolor.hue - startcolor.hue;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>( directionCode == SHORTEST_HUES ) {</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; directionCode = FORWARD_HUES;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>( huedelta8 &gt; 127) {</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; directionCode = BACKWARD_HUES;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span>( directionCode == LONGEST_HUES ) {</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; directionCode = FORWARD_HUES;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span>( huedelta8 &lt; 128) {</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; directionCode = BACKWARD_HUES;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span>( directionCode == FORWARD_HUES) {</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; huedistance87 = huedelta8 &lt;&lt; 7;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">else</span> <span class="comment">/* directionCode == BACKWARD_HUES */</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; huedistance87 = (uint8_t)(256 - huedelta8) &lt;&lt; 7;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; huedistance87 = -huedistance87;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; uint16_t pixeldistance = endpos - startpos;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; int16_t divisor = pixeldistance ? pixeldistance : 1;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; saccum87 huedelta87 = huedistance87 / divisor;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; saccum87 satdelta87 = satdistance87 / divisor;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; saccum87 valdelta87 = valdistance87 / divisor;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; huedelta87 *= 2;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; satdelta87 *= 2;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; valdelta87 *= 2;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> hue88 = startcolor.hue &lt;&lt; 8;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> sat88 = startcolor.sat &lt;&lt; 8;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> val88 = startcolor.val &lt;&lt; 8;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">for</span>( uint16_t i = startpos; i &lt;= endpos; i++) {</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; targetArray[i] = <a class="code" href="struct_c_h_s_v.html">CHSV</a>( hue88 &gt;&gt; 8, sat88 &gt;&gt; 8, val88 &gt;&gt; 8);</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; hue88 += huedelta87;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; sat88 += satdelta87;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; val88 += valdelta87;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;}</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment">// Convenience functions to fill an array of colors with a</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment">// two-color, three-color, or four-color gradient</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( T* targetArray, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2,</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;{</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; uint16_t last = numLeds - 1;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, 0, c1, last, c2, directionCode);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;}</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( T* targetArray, uint16_t numLeds,</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3,</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;{</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; uint16_t half = (numLeds / 2);</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; uint16_t last = numLeds - 1;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, 0, c1, half, c2, directionCode);</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, half, c2, last, c3, directionCode);</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;}</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( T* targetArray, uint16_t numLeds,</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c4,</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;{</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; uint16_t onethird = (numLeds / 3);</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; uint16_t twothirds = ((numLeds * 2) / 3);</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; uint16_t last = numLeds - 1;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, 0, c1, onethird, c2, directionCode);</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, onethird, c2, twothirds, c3, directionCode);</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, twothirds, c3, last, c4, directionCode);</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;}</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment">// convenience synonym</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor">#define fill_gradient_HSV fill_gradient</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="comment">// fill_gradient_RGB - fill a range of LEDs with a smooth RGB gradient</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="comment">// between two specified RGB colors.</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment">// Unlike HSV, there is no &#39;color wheel&#39; in RGB space,</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment">// and therefore there&#39;s only one &#39;direction&#39; for the</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment">// gradient to go, and no &#39;direction code&#39; is needed.</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds,</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; uint16_t startpos, <a class="code" href="struct_c_r_g_b.html">CRGB</a> startcolor,</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; uint16_t endpos, <a class="code" href="struct_c_r_g_b.html">CRGB</a> endcolor );</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2);</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c3);</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c4);</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="comment">// fadeLightBy and fade_video - reduce the brightness of an array</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment">// of pixels all at once. Guaranteed</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="comment">// to never fade all the way to black.</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="comment">// (The two names are synonyms.)</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="keywordtype">void</span> fadeLightBy( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t fadeBy);</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="keywordtype">void</span> fade_video( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t fadeBy);</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment">// nscale8_video - scale down the brightness of an array of pixels</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="comment">// all at once. Guaranteed to never scale a pixel</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment">// all the way down to black, unless &#39;scale&#39; is zero.</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="keywordtype">void</span> nscale8_video( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t scale);</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment">// fadeToBlackBy and fade_raw - reduce the brightness of an array</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment">// of pixels all at once. These</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment">// functions will eventually fade all</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment">// the way to black.</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment">// (The two names are synonyms.)</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="keywordtype">void</span> fadeToBlackBy( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t fadeBy);</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="keywordtype">void</span> fade_raw( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t fadeBy);</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="comment">// nscale8 - scale down the brightness of an array of pixels</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment">// all at once. This function can scale pixels all the</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="comment">// way down to black even if &#39;scale&#39; is not zero.</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="keywordtype">void</span> nscale8( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t scale);</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment">// fadeUsingColor - scale down the brightness of an array of pixels,</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment">// as though it were seen through a transparent</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="comment">// filter with the specified color.</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment">// For example, if the colormask is</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment">// CRGB( 200, 100, 50)</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment">// then the pixels&#39; red will be faded to 200/256ths,</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment">// their green to 100/256ths, and their blue to 50/256ths.</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="comment">// This particular example give a &#39;hot fade&#39; look,</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment">// with white fading to yellow, then red, then black.</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment">// You can also use colormasks like CRGB::Blue to</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment">// zero out the red and green elements, leaving blue</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment">// (largely) the same.</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="keywordtype">void</span> fadeUsingColor( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; colormask);</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment">// Pixel blending</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="comment">// blend - computes a new color blended some fraction of the way</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment">// between two other colors.</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> blend( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p2, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfP2 );</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> blend( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; p1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; p2, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfP2,</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES );</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="comment">// blend - computes a new color blended array of colors, each</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment">// a given fraction of the way between corresponding</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="comment">// elements of two source arrays of colors.</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="comment">// Useful for blending palettes.</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a>* blend( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>* src1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>* src2, <a class="code" href="struct_c_r_g_b.html">CRGB</a>* dest,</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2 );</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a>* blend( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* src1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* src2, <a class="code" href="struct_c_h_s_v.html">CHSV</a>* dest,</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2,</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES );</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment">// nblend - destructively modifies one color, blending</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment">// in a given fraction of an overlay color</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; nblend( <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; existing, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; overlay, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay );</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; nblend( <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; existing, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; overlay, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay,</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES );</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="comment">// nblend - destructively blends a given fraction of</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="comment">// a new color array into an existing color array</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="keywordtype">void</span> nblend( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* existing, <a class="code" href="struct_c_r_g_b.html">CRGB</a>* overlay, uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay);</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="keywordtype">void</span> nblend( <a class="code" href="struct_c_h_s_v.html">CHSV</a>* existing, <a class="code" href="struct_c_h_s_v.html">CHSV</a>* overlay, uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay,</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES);</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="comment">// blur1d: one-dimensional blur filter. Spreads light to 2 line neighbors.</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="comment">// blur2d: two-dimensional blur filter. Spreads light to 8 XY neighbors.</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="comment">// 0 = no spread at all</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="comment">// 64 = moderate spreading</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="comment">// 172 = maximum smooth, even spreading</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="comment">// Total light is NOT entirely conserved, so many repeated</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="comment">// calls to &#39;blur&#39; will also result in the light fading,</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="comment">// eventually all the way to black; this is by design so that</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="comment">// it can be used to (slowly) clear the LEDs to black.</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="keywordtype">void</span> blur1d( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount);</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="keywordtype">void</span> blur2d( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint8_t width, uint8_t height, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount);</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="comment">// blurRows: perform a blur1d on every row of a rectangular matrix</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="keywordtype">void</span> blurRows( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint8_t width, uint8_t height, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount);</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="comment">// blurColumns: perform a blur1d on each column of a rectangular matrix</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="keywordtype">void</span> blurColumns(<a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint8_t width, uint8_t height, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount);</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="comment">// CRGB HeatColor( uint8_t temperature)</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="comment">// Approximates a &#39;black body radiation&#39; spectrum for</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="comment">// a given &#39;heat&#39; level. This is useful for animations of &#39;fire&#39;.</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="comment">// Heat is specified as an arbitrary scale from 0 (cool) to 255 (hot).</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="comment">// This is NOT a chromatically correct &#39;black body radiation&#39;</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="comment">// spectrum, but it&#39;s surprisingly close, and it&#39;s fast and small.</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> HeatColor( uint8_t temperature);</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="comment">// Palettes</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="comment">// RGB Palettes map an 8-bit value (0..255) to an RGB color.</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="comment">// 173..255 = wider spreading, but increasing flicker</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="comment">// Total light is NOT entirely conserved, so many repeated</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="comment">// calls to &#39;blur&#39; will also result in the light fading,</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="comment">// eventually all the way to black; this is by design so that</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="comment">// it can be used to (slowly) clear the LEDs to black.</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="keywordtype">void</span> blur1d( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount);</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="keywordtype">void</span> blur2d( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint8_t width, uint8_t height, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount);</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="comment">// blurRows: perform a blur1d on every row of a rectangular matrix</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="keywordtype">void</span> blurRows( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint8_t width, uint8_t height, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount);</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="comment">// blurColumns: perform a blur1d on each column of a rectangular matrix</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="keywordtype">void</span> blurColumns(<a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint8_t width, uint8_t height, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount);</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="comment">// CRGB HeatColor( uint8_t temperature)</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="comment">// Approximates a &#39;black body radiation&#39; spectrum for</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="comment">// a given &#39;heat&#39; level. This is useful for animations of &#39;fire&#39;.</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="comment">// Heat is specified as an arbitrary scale from 0 (cool) to 255 (hot).</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="comment">// This is NOT a chromatically correct &#39;black body radiation&#39;</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="comment">// spectrum, but it&#39;s surprisingly close, and it&#39;s fast and small.</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> HeatColor( uint8_t temperature);</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="comment">// Palettes</span></div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="comment">// You can create any color palette you wish; a couple of starters</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="comment">// are provided: Forest, Clouds, Lava, Ocean, Rainbow, and Rainbow Stripes.</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="comment">// Palettes come in the traditional 256-entry variety, which take</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="comment">// up 768 bytes of RAM, and lightweight 16-entry varieties. The 16-entry</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="comment">// variety automatically interpolates between its entries to produce</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="comment">// a full 256-element color map, but at a cost of only 48 bytes or RAM.</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="comment">// Basic operation is like this: (example shows the 16-entry variety)</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="comment">// 1. Declare your palette storage:</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="comment">// CRGBPalette16 myPalette;</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="comment">// 2. Fill myPalette with your own 16 colors, or with a preset color scheme.</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="comment">// You can specify your 16 colors a variety of ways:</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="comment">// CRGBPalette16 myPalette(</span></div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="comment">// CRGB::Black,</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="comment">// CRGB::Black,</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="comment">// CRGB::Red,</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="comment">// CRGB::Yellow,</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="comment">// CRGB::Green,</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="comment">// CRGB::Blue,</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="comment">// CRGB::Purple,</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="comment">// CRGB::Black,</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="comment">// 0x100000,</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="comment">// 0x200000,</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="comment">// 0x400000,</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="comment">// 0x800000,</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="comment">// CHSV( 30,255,255),</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="comment">// CHSV( 50,255,255),</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="comment">// CHSV( 70,255,255),</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="comment">// CHSV( 90,255,255)</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="comment">// );</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="comment">// Or you can initiaize your palette with a preset color scheme:</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="comment">// myPalette = RainbowStripesColors_p;</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="comment">// 3. Any time you want to set a pixel to a color from your palette, use</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="comment">// &quot;ColorFromPalette(...)&quot; as shown:</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="comment">// uint8_t index = /* any value 0..255 */;</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="comment">// leds[i] = ColorFromPalette( myPalette, index);</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="comment">// Even though your palette has only 16 explicily defined entries, you</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="comment">// can use an &#39;index&#39; from 0..255. The 16 explicit palette entries will</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="comment">// be spread evenly across the 0..255 range, and the intermedate values</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="comment">// will be RGB-interpolated between adjacent explicit entries.</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="comment">// It&#39;s easier to use than it sounds.</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="comment">// RGB Palettes map an 8-bit value (0..255) to an RGB color.</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="comment">// You can create any color palette you wish; a couple of starters</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="comment">// are provided: Forest, Clouds, Lava, Ocean, Rainbow, and Rainbow Stripes.</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="comment">// Palettes come in the traditional 256-entry variety, which take</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="comment">// up 768 bytes of RAM, and lightweight 16-entry varieties. The 16-entry</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="comment">// variety automatically interpolates between its entries to produce</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="comment">// a full 256-element color map, but at a cost of only 48 bytes or RAM.</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="comment">// Basic operation is like this: (example shows the 16-entry variety)</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="comment">// 1. Declare your palette storage:</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="comment">// CRGBPalette16 myPalette;</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="comment">// 2. Fill myPalette with your own 16 colors, or with a preset color scheme.</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="comment">// You can specify your 16 colors a variety of ways:</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="comment">// CRGBPalette16 myPalette(</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="comment">// CRGB::Black,</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="comment">// CRGB::Black,</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="comment">// CRGB::Red,</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="comment">// CRGB::Yellow,</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="comment">// CRGB::Green,</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="comment">// CRGB::Blue,</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="comment">// CRGB::Purple,</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="comment">// CRGB::Black,</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="comment">// 0x100000,</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="comment">// 0x200000,</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="comment">// 0x400000,</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="comment">// 0x800000,</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="comment">// CHSV( 30,255,255),</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="comment">// CHSV( 50,255,255),</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="comment">// CHSV( 70,255,255),</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="comment">// CHSV( 90,255,255)</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="comment">// );</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="comment">// Or you can initiaize your palette with a preset color scheme:</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="comment">// myPalette = RainbowStripesColors_p;</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="comment">// 3. Any time you want to set a pixel to a color from your palette, use</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="comment">// &quot;ColorFromPalette(...)&quot; as shown:</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="comment">// uint8_t index = /* any value 0..255 */;</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="comment">// leds[i] = ColorFromPalette( myPalette, index);</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="comment">// Even though your palette has only 16 explicily defined entries, you</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="comment">// can use an &#39;index&#39; from 0..255. The 16 explicit palette entries will</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="comment">// be spread evenly across the 0..255 range, and the intermedate values</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="comment">// will be RGB-interpolated between adjacent explicit entries.</span></div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="keyword">class </span><a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>;</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="keyword">class </span><a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>;</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="keyword">class </span><a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>;</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="keyword">class </span><a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>;</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="keyword">typedef</span> uint32_t TProgmemRGBPalette16[16];</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="keyword">typedef</span> uint32_t TProgmemHSVPalette16[16];</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="preprocessor">#define TProgmemPalette16 TProgmemRGBPalette16</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="keyword">typedef</span> <span class="keyword">const</span> uint8_t TProgmemRGBGradientPalette_byte ;</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="keyword">typedef</span> <span class="keyword">const</span> TProgmemRGBGradientPalette_byte *TProgmemRGBGradientPalette_bytes;</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="keyword">typedef</span> TProgmemRGBGradientPalette_bytes TProgmemRGBGradientPalettePtr;</div>
-<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="union_t_r_g_b_gradient_palette_entry_union.html"> 400</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; uint8_t index;</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; uint8_t r;</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; uint8_t g;</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; uint8_t b;</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; };</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; uint32_t dword;</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; uint8_t bytes[4];</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;} <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>;</div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="keyword">typedef</span> uint8_t TDynamicRGBGradientPalette_byte ;</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;<span class="keyword">typedef</span> <span class="keyword">const</span> TDynamicRGBGradientPalette_byte *TDynamicRGBGradientPalette_bytes;</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="keyword">typedef</span> TDynamicRGBGradientPalette_bytes TDynamicRGBGradientPalettePtr;</div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="comment">// Convert a 16-entry palette to a 256-entry palette</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="keywordtype">void</span> UpscalePalette(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; srcpal16, <span class="keyword">struct</span> <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; destpal256);</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="keywordtype">void</span> UpscalePalette(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; srcpal16, <span class="keyword">struct</span> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; destpal256);</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div>
-<div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="class_c_h_s_v_palette16.html"> 421</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> {</div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> entries[16];</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>() {};</div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c00,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c01,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c02,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c03,</div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c04,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c05,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c06,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c07,</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c08,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c09,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c10,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c11,</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c12,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c13,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c14,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c15 )</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; {</div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; entries[0]=c00; entries[1]=c01; entries[2]=c02; entries[3]=c03;</div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; entries[4]=c04; entries[5]=c05; entries[6]=c06; entries[7]=c07;</div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; entries[8]=c08; entries[9]=c09; entries[10]=c10; entries[11]=c11;</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; entries[12]=c12; entries[13]=c13; entries[14]=c14; entries[15]=c15;</div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; };</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; rhs)</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; {</div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; rhs)</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; {</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; }</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <span class="keyword">const</span> TProgmemHSVPalette16&amp; rhs)</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; {</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> xyz = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; entries[i].hue = xyz.red;</div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; entries[i].sat = xyz.green;</div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; entries[i].val = xyz.blue;</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; }</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; }</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; operator=( <span class="keyword">const</span> TProgmemHSVPalette16&amp; rhs)</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; {</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> xyz = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; entries[i].hue = xyz.red;</div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; entries[i].sat = xyz.green;</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; entries[i].val = xyz.blue;</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; }</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; }</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator[] (uint8_t x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; {</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; }</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator[] (uint8_t x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; {</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; }</div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator[] (<span class="keywordtype">int</span> x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; {</div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; }</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator[] (<span class="keywordtype">int</span> x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; {</div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; }</div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keyword">operator</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>*()</div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; {</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; }</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1)</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; {</div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; }</div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2)</div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; {</div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 16, c1, c2);</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; }</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3)</div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; {</div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 16, c1, c2, c3);</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; }</div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c4)</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; {</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 16, c1, c2, c3, c4);</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; }</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;};</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="comment">// It&#39;s easier to use than it sounds.</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="keyword">class </span><a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>;</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="keyword">class </span><a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>;</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="keyword">class </span><a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="keyword">class </span><a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>;</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="keyword">typedef</span> uint32_t TProgmemRGBPalette16[16];</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="keyword">typedef</span> uint32_t TProgmemHSVPalette16[16];</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor">#define TProgmemPalette16 TProgmemRGBPalette16</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="keyword">typedef</span> <span class="keyword">const</span> uint8_t TProgmemRGBGradientPalette_byte ;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="keyword">typedef</span> <span class="keyword">const</span> TProgmemRGBGradientPalette_byte *TProgmemRGBGradientPalette_bytes;</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="keyword">typedef</span> TProgmemRGBGradientPalette_bytes TProgmemRGBGradientPalettePtr;</div>
+<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="union_t_r_g_b_gradient_palette_entry_union.html"> 402</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; uint8_t index;</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; uint8_t r;</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; uint8_t g;</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; uint8_t b;</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; };</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; uint32_t dword;</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; uint8_t bytes[4];</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;} <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="keyword">typedef</span> uint8_t TDynamicRGBGradientPalette_byte ;</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="keyword">typedef</span> <span class="keyword">const</span> TDynamicRGBGradientPalette_byte *TDynamicRGBGradientPalette_bytes;</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="keyword">typedef</span> TDynamicRGBGradientPalette_bytes TDynamicRGBGradientPalettePtr;</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="comment">// Convert a 16-entry palette to a 256-entry palette</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="keywordtype">void</span> UpscalePalette(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; srcpal16, <span class="keyword">struct</span> <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; destpal256);</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="keywordtype">void</span> UpscalePalette(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; srcpal16, <span class="keyword">struct</span> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; destpal256);</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;</div>
+<div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="class_c_h_s_v_palette16.html"> 423</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> {</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> entries[16];</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>() {};</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c00,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c01,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c02,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c03,</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c04,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c05,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c06,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c07,</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c08,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c09,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c10,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c11,</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c12,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c13,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c14,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c15 )</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; {</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; entries[0]=c00; entries[1]=c01; entries[2]=c02; entries[3]=c03;</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; entries[4]=c04; entries[5]=c05; entries[6]=c06; entries[7]=c07;</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; entries[8]=c08; entries[9]=c09; entries[10]=c10; entries[11]=c11;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; entries[12]=c12; entries[13]=c13; entries[14]=c14; entries[15]=c15;</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; };</div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; rhs)</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; {</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; rhs)</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; {</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <span class="keyword">const</span> TProgmemHSVPalette16&amp; rhs)</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; {</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> xyz = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; entries[i].hue = xyz.red;</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; entries[i].sat = xyz.green;</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; entries[i].val = xyz.blue;</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; operator=( <span class="keyword">const</span> TProgmemHSVPalette16&amp; rhs)</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; {</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> xyz = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; entries[i].hue = xyz.red;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; entries[i].sat = xyz.green;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; entries[i].val = xyz.blue;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; }</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; }</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator[] (uint8_t x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; {</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; }</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator[] (uint8_t x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; {</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; }</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator[] (<span class="keywordtype">int</span> x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; {</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; }</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator[] (<span class="keywordtype">int</span> x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; {</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; }</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keyword">operator</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>*()</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; {</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; }</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1)</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; {</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2)</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; {</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 16, c1, c2);</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; }</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3)</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; {</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 16, c1, c2, c3);</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; }</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c4)</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; {</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 16, c1, c2, c3, c4);</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; }</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div>
-<div class="line"><a name="l00508"></a><span class="lineno"><a class="line" href="class_c_h_s_v_palette256.html"> 508</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a> {</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> entries[256];</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>() {};</div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c00,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c01,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c02,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c03,</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c04,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c05,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c06,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c07,</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c08,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c09,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c10,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c11,</div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c12,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c13,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c14,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c15 )</div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; {</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> p16(c00,c01,c02,c03,c04,c05,c06,c07,</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; c08,c09,c10,c11,c12,c13,c14,c15);</div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; *<span class="keyword">this</span> = p16;</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; };</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; rhs)</div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; {</div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; }</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; rhs)</div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; {</div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; }</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; rhs16)</div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; {</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; }</div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; rhs16)</div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; {</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; }</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; {</div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> p16(rhs);</div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; *<span class="keyword">this</span> = p16;</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; operator=( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; {</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> p16(rhs);</div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; *<span class="keyword">this</span> = p16;</div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; }</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator[] (uint8_t x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; {</div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; }</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator[] (uint8_t x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; {</div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; }</div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;</div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator[] (<span class="keywordtype">int</span> x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; {</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; }</div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator[] (<span class="keywordtype">int</span> x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; {</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; }</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keyword">operator</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>*()</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; {</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; }</div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1)</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; {</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; }</div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2)</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; {</div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2);</div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; }</div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3)</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; {</div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2, c3);</div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; }</div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c4)</div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; {</div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2, c3, c4);</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; }</div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;};</div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div>
-<div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="class_c_r_g_b_palette16.html"> 595</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> {</div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> entries[16];</div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>() {};</div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c00,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c01,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c02,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c03,</div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c04,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c05,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c06,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c07,</div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c08,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c09,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c10,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c11,</div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c12,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c13,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c14,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c15 )</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; {</div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; entries[0]=c00; entries[1]=c01; entries[2]=c02; entries[3]=c03;</div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; entries[4]=c04; entries[5]=c05; entries[6]=c06; entries[7]=c07;</div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; entries[8]=c08; entries[9]=c09; entries[10]=c10; entries[11]=c11;</div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; entries[12]=c12; entries[13]=c13; entries[14]=c14; entries[15]=c15;</div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; };</div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;</div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; rhs)</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; {</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; }</div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; rhs)</div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; {</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; }</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; rhs)</div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; {</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; }</div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; }</div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; rhs)</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; {</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; }</div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; }</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;</div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; {</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; entries[i] = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; }</div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; }</div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; operator=( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; {</div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; entries[i] = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; }</div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; }</div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;</div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator[] (uint8_t x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; {</div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; }</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator[] (uint8_t x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; {</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; }</div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator[] (<span class="keywordtype">int</span> x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; {</div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; }</div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator[] (<span class="keywordtype">int</span> x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; {</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; }</div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;</div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keyword">operator</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>*()</div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; {</div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; }</div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;</div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1)</div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; {</div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; }</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2)</div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; {</div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 16, c1, c2);</div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; }</div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3)</div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; {</div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 16, c1, c2, c3);</div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; }</div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c4)</div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; {</div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 16, c1, c2, c3, c4);</div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; }</div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;</div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1)</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; {</div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; }</div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2)</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; {</div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 16, c1, c2);</div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; }</div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c3)</div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; {</div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 16, c1, c2, c3);</div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; }</div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c4)</div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; {</div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 16, c1, c2, c3, c4);</div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; }</div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;</div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; </div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="comment">// Gradient palettes are loaded into CRGB16Palettes in such a way</span></div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="comment">// that, if possible, every color represented in the gradient palette</span></div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="comment">// is also represented in the CRGBPalette16.</span></div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="comment">// For example, consider a gradient palette that is all black except</span></div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="comment">// for a single, one-element-wide (1/256th!) spike of red in the middle:</span></div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="comment">// 0, 0,0,0</span></div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="comment">// 124, 0,0,0</span></div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="comment">// 125, 255,0,0 // one 1/256th-palette-wide red stripe</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="comment">// 126, 0,0,0</span></div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="comment">// 255, 0,0,0</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="comment">// A naive conversion of this 256-element palette to a 16-element palette</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="comment">// might accidentally completely eliminate the red spike, rendering the</span></div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="comment">// palette completely black.</span></div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="comment">// However, the conversions provided here would attempt to include a</span></div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="comment">// the red stripe in the output, more-or-less as faithfully as possible.</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="comment">// So in this case, the resulting CRGBPalette16 palette would have a red</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="comment">// stripe in the middle which was 1/16th of a palette wide -- the</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="comment">// narrowest possible in a CRGBPalette16.</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="comment">// This means that the relative width of stripes in a CRGBPalette16</span></div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="comment">// will be, by definition, different from the widths in the gradient</span></div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="comment">// palette. This code attempts to preserve &quot;all the colors&quot;, rather than</span></div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="comment">// the exact stripe widths at the expense of dropping some colors.</span></div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( TProgmemRGBGradientPalette_bytes progpal )</div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; {</div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; *<span class="keyword">this</span> = progpal;</div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; }</div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; operator=( TProgmemRGBGradientPalette_bytes progpal )</div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; {</div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>* progent = (<a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>*)(progpal);</div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a> u;</div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; </div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="comment">// Count entries</span></div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; uint8_t count = 0;</div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordflow">do</span> {</div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR(progent + count);</div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; count++;;</div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; } <span class="keywordflow">while</span> ( u.index != 255);</div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; </div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; int8_t lastSlotUsed = -1;</div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; </div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgbstart( u.r, u.g, u.b);</div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; </div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; uint8_t istart8 = 0;</div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; uint8_t iend8 = 0;</div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; progent++;</div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgbend( u.r, u.g, u.b);</div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; istart8 = indexstart / 16;</div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; iend8 = indexend / 16;</div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordflow">if</span>( count &lt; 16) {</div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">if</span>( (istart8 &lt;= lastSlotUsed) &amp;&amp; (lastSlotUsed &lt; 15)) {</div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; istart8 = lastSlotUsed + 1;</div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">if</span>( iend8 &lt; istart8) {</div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; iend8 = istart8;</div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; }</div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; }</div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; lastSlotUsed = iend8;</div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; }</div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; fill_gradient_RGB( &amp;(entries[0]), istart8, rgbstart, iend8, rgbend);</div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; indexstart = indexend;</div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; rgbstart = rgbend;</div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; }</div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; }</div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; loadDynamicGradientPalette( TDynamicRGBGradientPalette_bytes gpal )</div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; {</div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>* ent = (<a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>*)(gpal);</div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a> u;</div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; </div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="comment">// Count entries</span></div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; uint8_t count = 0;</div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keywordflow">do</span> {</div>
-<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; u = *(ent + count);</div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; count++;;</div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; } <span class="keywordflow">while</span> ( u.index != 255);</div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; </div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; int8_t lastSlotUsed = -1;</div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; </div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;</div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; u = *ent;</div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgbstart( u.r, u.g, u.b);</div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; </div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; uint8_t istart8 = 0;</div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; uint8_t iend8 = 0;</div>
-<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; ent++;</div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; u = *ent;</div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgbend( u.r, u.g, u.b);</div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; istart8 = indexstart / 16;</div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; iend8 = indexend / 16;</div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordflow">if</span>( count &lt; 16) {</div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">if</span>( (istart8 &lt;= lastSlotUsed) &amp;&amp; (lastSlotUsed &lt; 15)) {</div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; istart8 = lastSlotUsed + 1;</div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="keywordflow">if</span>( iend8 &lt; istart8) {</div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; iend8 = istart8;</div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; }</div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; }</div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; lastSlotUsed = iend8;</div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; }</div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; fill_gradient_RGB( &amp;(entries[0]), istart8, rgbstart, iend8, rgbend);</div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; indexstart = indexend;</div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; rgbstart = rgbend;</div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; }</div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; }</div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;</div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;};</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;};</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div>
+<div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="class_c_h_s_v_palette256.html"> 510</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a> {</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> entries[256];</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>() {};</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c00,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c01,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c02,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c03,</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c04,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c05,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c06,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c07,</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c08,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c09,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c10,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c11,</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c12,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c13,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c14,<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c15 )</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; {</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> p16(c00,c01,c02,c03,c04,c05,c06,c07,</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; c08,c09,c10,c11,c12,c13,c14,c15);</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; };</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; rhs)</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; {</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; }</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; rhs)</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; {</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; }</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; rhs16)</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; {</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; }</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; rhs16)</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; {</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; }</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; {</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; }</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; operator=( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; {</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; }</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator[] (uint8_t x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; {</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; }</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator[] (uint8_t x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; {</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; }</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator[] (<span class="keywordtype">int</span> x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; {</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; }</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator[] (<span class="keywordtype">int</span> x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; {</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; }</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keyword">operator</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>*()</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; {</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; }</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1)</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; {</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; }</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2)</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; {</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2);</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; }</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3)</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; {</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2, c3);</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; }</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c4)</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; {</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2, c3, c4);</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; }</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;};</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div>
+<div class="line"><a name="l00597"></a><span class="lineno"><a class="line" href="class_c_r_g_b_palette16.html"> 597</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> {</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> entries[16];</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>() {};</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c00,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c01,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c02,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c03,</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c04,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c05,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c06,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c07,</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c08,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c09,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c10,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c11,</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c12,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c13,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c14,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c15 )</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; {</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; entries[0]=c00; entries[1]=c01; entries[2]=c02; entries[3]=c03;</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; entries[4]=c04; entries[5]=c05; entries[6]=c06; entries[7]=c07;</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; entries[8]=c08; entries[9]=c09; entries[10]=c10; entries[11]=c11;</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; entries[12]=c12; entries[13]=c13; entries[14]=c14; entries[15]=c15;</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; };</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; rhs)</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; {</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; }</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; rhs)</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; {</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; }</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; rhs)</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; {</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; }</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; }</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; rhs)</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; {</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; }</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; }</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; {</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; entries[i] = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; }</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; }</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; operator=( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; {</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; entries[i] = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; }</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; }</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator[] (uint8_t x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; {</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; }</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator[] (uint8_t x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; {</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; }</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator[] (<span class="keywordtype">int</span> x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; {</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; }</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator[] (<span class="keywordtype">int</span> x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; {</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; }</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keyword">operator</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>*()</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; {</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; }</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1)</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; {</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; }</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2)</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; {</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 16, c1, c2);</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; }</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3)</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; {</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 16, c1, c2, c3);</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; }</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c4)</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; {</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 16, c1, c2, c3, c4);</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; }</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1)</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; {</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; }</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2)</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; {</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 16, c1, c2);</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; }</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c3)</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; {</div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 16, c1, c2, c3);</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; }</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c4)</div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; {</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 16, c1, c2, c3, c4);</div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; }</div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;</div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;</div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="comment">// Gradient palettes are loaded into CRGB16Palettes in such a way</span></div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="comment">// that, if possible, every color represented in the gradient palette</span></div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="comment">// is also represented in the CRGBPalette16.</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="comment">// For example, consider a gradient palette that is all black except</span></div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="comment">// for a single, one-element-wide (1/256th!) spike of red in the middle:</span></div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="comment">// 0, 0,0,0</span></div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="comment">// 124, 0,0,0</span></div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="comment">// 125, 255,0,0 // one 1/256th-palette-wide red stripe</span></div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="comment">// 126, 0,0,0</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="comment">// 255, 0,0,0</span></div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="comment">// A naive conversion of this 256-element palette to a 16-element palette</span></div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="comment">// might accidentally completely eliminate the red spike, rendering the</span></div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="comment">// palette completely black.</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="comment">// However, the conversions provided here would attempt to include a</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="comment">// the red stripe in the output, more-or-less as faithfully as possible.</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="comment">// So in this case, the resulting CRGBPalette16 palette would have a red</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="comment">// stripe in the middle which was 1/16th of a palette wide -- the</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="comment">// narrowest possible in a CRGBPalette16.</span></div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="comment">// This means that the relative width of stripes in a CRGBPalette16</span></div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="comment">// will be, by definition, different from the widths in the gradient</span></div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="comment">// palette. This code attempts to preserve &quot;all the colors&quot;, rather than</span></div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="comment">// the exact stripe widths at the expense of dropping some colors.</span></div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( TProgmemRGBGradientPalette_bytes progpal )</div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; {</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; *<span class="keyword">this</span> = progpal;</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; }</div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; operator=( TProgmemRGBGradientPalette_bytes progpal )</div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; {</div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>* progent = (<a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>*)(progpal);</div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a> u;</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;</div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="comment">// Count entries</span></div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; uint8_t count = 0;</div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR(progent + count);</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; count++;;</div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; } <span class="keywordflow">while</span> ( u.index != 255);</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; int8_t lastSlotUsed = -1;</div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgbstart( u.r, u.g, u.b);</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; uint8_t istart8 = 0;</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; uint8_t iend8 = 0;</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; progent++;</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgbend( u.r, u.g, u.b);</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; istart8 = indexstart / 16;</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; iend8 = indexend / 16;</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordflow">if</span>( count &lt; 16) {</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">if</span>( (istart8 &lt;= lastSlotUsed) &amp;&amp; (lastSlotUsed &lt; 15)) {</div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; istart8 = lastSlotUsed + 1;</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordflow">if</span>( iend8 &lt; istart8) {</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; iend8 = istart8;</div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; }</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; }</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; lastSlotUsed = iend8;</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; }</div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; fill_gradient_RGB( &amp;(entries[0]), istart8, rgbstart, iend8, rgbend);</div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; rgbstart = rgbend;</div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; }</div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; }</div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; loadDynamicGradientPalette( TDynamicRGBGradientPalette_bytes gpal )</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; {</div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>* ent = (<a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>*)(gpal);</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a> u;</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="comment">// Count entries</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; uint8_t count = 0;</div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; u = *(ent + count);</div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; count++;;</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; } <span class="keywordflow">while</span> ( u.index != 255);</div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; int8_t lastSlotUsed = -1;</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;</div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;</div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; u = *ent;</div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgbstart( u.r, u.g, u.b);</div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;</div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; uint8_t istart8 = 0;</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; uint8_t iend8 = 0;</div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; ent++;</div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; u = *ent;</div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgbend( u.r, u.g, u.b);</div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; istart8 = indexstart / 16;</div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; iend8 = indexend / 16;</div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">if</span>( count &lt; 16) {</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="keywordflow">if</span>( (istart8 &lt;= lastSlotUsed) &amp;&amp; (lastSlotUsed &lt; 15)) {</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; istart8 = lastSlotUsed + 1;</div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keywordflow">if</span>( iend8 &lt; istart8) {</div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; iend8 = istart8;</div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; }</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; }</div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; lastSlotUsed = iend8;</div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; }</div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; fill_gradient_RGB( &amp;(entries[0]), istart8, rgbstart, iend8, rgbend);</div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; rgbstart = rgbend;</div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; }</div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; }</div>
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;</div>
-<div class="line"><a name="l00820"></a><span class="lineno"><a class="line" href="class_c_r_g_b_palette256.html"> 820</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a> {</div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> entries[256];</div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>() {};</div>
-<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c00,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c01,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c02,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c03,</div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c04,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c05,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c06,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c07,</div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c08,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c09,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c10,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c11,</div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c12,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c13,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c14,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c15 )</div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; {</div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(c00,c01,c02,c03,c04,c05,c06,c07,</div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; c08,c09,c10,c11,c12,c13,c14,c15);</div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; *<span class="keyword">this</span> = p16;</div>
-<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; };</div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;</div>
-<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; rhs)</div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; {</div>
-<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
-<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; }</div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; rhs)</div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; {</div>
-<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
-<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; }</div>
-<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;</div>
-<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; rhs)</div>
-<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; {</div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
-<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; }</div>
-<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; }</div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; rhs)</div>
-<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; {</div>
-<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
-<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; }</div>
-<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; }</div>
-<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;</div>
-<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; rhs16)</div>
-<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; {</div>
-<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; }</div>
-<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; rhs16)</div>
-<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; {</div>
-<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; }</div>
-<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;</div>
-<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
-<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; {</div>
-<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(rhs);</div>
-<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; *<span class="keyword">this</span> = p16;</div>
-<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; }</div>
-<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; operator=( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
-<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; {</div>
-<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(rhs);</div>
-<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; *<span class="keyword">this</span> = p16;</div>
-<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; }</div>
-<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;</div>
-<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator[] (uint8_t x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; {</div>
-<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
-<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; }</div>
-<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator[] (uint8_t x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; {</div>
-<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
-<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; }</div>
-<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;</div>
-<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator[] (<span class="keywordtype">int</span> x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; {</div>
-<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
-<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; }</div>
-<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator[] (<span class="keywordtype">int</span> x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; {</div>
-<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
-<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; }</div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;</div>
-<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keyword">operator</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>*()</div>
-<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; {</div>
-<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
-<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; }</div>
-<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;</div>
-<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1)</div>
-<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; {</div>
-<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</div>
-<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; }</div>
-<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2)</div>
-<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; {</div>
-<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2);</div>
-<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; }</div>
-<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3)</div>
-<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; {</div>
-<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2, c3);</div>
-<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; }</div>
-<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c4)</div>
-<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; {</div>
-<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2, c3, c4);</div>
-<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; }</div>
-<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;</div>
-<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1)</div>
-<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; {</div>
-<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</div>
-<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; }</div>
-<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2)</div>
-<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; {</div>
-<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 256, c1, c2);</div>
-<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; }</div>
-<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c3)</div>
-<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; {</div>
-<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 256, c1, c2, c3);</div>
-<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; }</div>
-<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c4)</div>
-<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; {</div>
-<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 256, c1, c2, c3, c4);</div>
-<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; }</div>
-<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160;</div>
-<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( TProgmemRGBGradientPalette_bytes progpal )</div>
-<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; {</div>
-<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; *<span class="keyword">this</span> = progpal;</div>
-<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; }</div>
-<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; operator=( TProgmemRGBGradientPalette_bytes progpal )</div>
-<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; {</div>
-<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>* progent = (<a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>*)(progpal);</div>
-<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a> u;</div>
-<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
-<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgbstart( u.r, u.g, u.b);</div>
-<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; </div>
-<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
-<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
-<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; progent++;</div>
-<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
-<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
-<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgbend( u.r, u.g, u.b);</div>
-<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; fill_gradient_RGB( &amp;(entries[0]), indexstart, rgbstart, indexend, rgbend);</div>
-<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; indexstart = indexend;</div>
-<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; rgbstart = rgbend;</div>
-<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; }</div>
-<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; }</div>
-<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; loadDynamicGradientPalette( TDynamicRGBGradientPalette_bytes gpal )</div>
-<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; {</div>
-<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>* ent = (<a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>*)(gpal);</div>
-<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a> u;</div>
-<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; u = *ent;</div>
-<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgbstart( u.r, u.g, u.b);</div>
-<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; </div>
-<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
-<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
-<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; ent++;</div>
-<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; u = *ent;</div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
-<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgbend( u.r, u.g, u.b);</div>
-<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; fill_gradient_RGB( &amp;(entries[0]), indexstart, rgbstart, indexend, rgbend);</div>
-<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; indexstart = indexend;</div>
-<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; rgbstart = rgbend;</div>
-<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; }</div>
-<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; }</div>
-<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;};</div>
-<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;</div>
-<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;</div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;};</div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;</div>
+<div class="line"><a name="l00822"></a><span class="lineno"><a class="line" href="class_c_r_g_b_palette256.html"> 822</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a> {</div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> entries[256];</div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>() {};</div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c00,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c01,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c02,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c03,</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c04,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c05,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c06,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c07,</div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c08,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c09,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c10,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c11,</div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c12,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c13,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c14,<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c15 )</div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; {</div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(c00,c01,c02,c03,c04,c05,c06,c07,</div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; c08,c09,c10,c11,c12,c13,c14,c15);</div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; };</div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;</div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; rhs)</div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; {</div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; }</div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; rhs)</div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; {</div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; }</div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; rhs)</div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; {</div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; }</div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; }</div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; rhs)</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; {</div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; }</div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; }</div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;</div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; rhs16)</div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; {</div>
+<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; }</div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; rhs16)</div>
+<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; {</div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; }</div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;</div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; {</div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; }</div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; operator=( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; {</div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; }</div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;</div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator[] (uint8_t x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; {</div>
+<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; }</div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator[] (uint8_t x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; {</div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; }</div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;</div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator[] (<span class="keywordtype">int</span> x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; {</div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; }</div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator[] (<span class="keywordtype">int</span> x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; {</div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; }</div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160;</div>
+<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keyword">operator</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>*()</div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; {</div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; }</div>
+<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;</div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1)</div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; {</div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; }</div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2)</div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; {</div>
+<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2);</div>
+<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; }</div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3)</div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; {</div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2, c3);</div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; }</div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c4)</div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; {</div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2, c3, c4);</div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; }</div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160;</div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1)</div>
+<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; {</div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; }</div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2)</div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; {</div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 256, c1, c2);</div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; }</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c3)</div>
+<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; {</div>
+<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 256, c1, c2, c3);</div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; }</div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c4)</div>
+<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; {</div>
+<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 256, c1, c2, c3, c4);</div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; }</div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;</div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( TProgmemRGBGradientPalette_bytes progpal )</div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; {</div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; *<span class="keyword">this</span> = progpal;</div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; }</div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; operator=( TProgmemRGBGradientPalette_bytes progpal )</div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; {</div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>* progent = (<a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>*)(progpal);</div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a> u;</div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgbstart( u.r, u.g, u.b);</div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;</div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; progent++;</div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgbend( u.r, u.g, u.b);</div>
+<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; fill_gradient_RGB( &amp;(entries[0]), indexstart, rgbstart, indexend, rgbend);</div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; rgbstart = rgbend;</div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; }</div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; }</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; loadDynamicGradientPalette( TDynamicRGBGradientPalette_bytes gpal )</div>
+<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; {</div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>* ent = (<a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>*)(gpal);</div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a> u;</div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; u = *ent;</div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgbstart( u.r, u.g, u.b);</div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;</div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; ent++;</div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; u = *ent;</div>
+<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgbend( u.r, u.g, u.b);</div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; fill_gradient_RGB( &amp;(entries[0]), indexstart, rgbstart, indexend, rgbend);</div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; rgbstart = rgbend;</div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; }</div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; }</div>
+<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;};</div>
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;</div>
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160;</div>
-<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> { NOBLEND=0, LINEARBLEND=1 } TBlendType;</div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;</div>
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160;</div>
-<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> ColorFromPalette( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; pal,</div>
-<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; uint8_t index,</div>
-<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; uint8_t brightness=255,</div>
-<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; TBlendType blendType=LINEARBLEND);</div>
-<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;</div>
-<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> ColorFromPalette( <span class="keyword">const</span> TProgmemRGBPalette16&amp; pal,</div>
-<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; uint8_t index,</div>
-<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; uint8_t brightness=255,</div>
-<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; TBlendType blendType=LINEARBLEND);</div>
-<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;</div>
-<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> ColorFromPalette( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; pal,</div>
-<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; uint8_t index,</div>
-<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; uint8_t brightness=255,</div>
-<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; TBlendType blendType=NOBLEND );</div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;</div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> ColorFromPalette( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; pal,</div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; uint8_t index,</div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; uint8_t brightness=255,</div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; TBlendType blendType=LINEARBLEND);</div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;</div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> ColorFromPalette( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; pal,</div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; uint8_t index,</div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; uint8_t brightness=255,</div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; TBlendType blendType=NOBLEND );</div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;</div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;</div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;<span class="comment">// Fill a range of LEDs with a sequece of entryies from a palette</span></div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> PALETTE&gt;</div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;<span class="keywordtype">void</span> fill_palette(<a class="code" href="struct_c_r_g_b.html">CRGB</a>* L, uint16_t N, uint8_t startIndex, uint8_t incIndex,</div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <span class="keyword">const</span> PALETTE&amp; pal, uint8_t brightness, TBlendType blendType)</div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;{</div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; uint8_t colorIndex = startIndex;</div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; N; i++) {</div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; L[i] = ColorFromPalette( pal, colorIndex, brightness, blendType);</div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; colorIndex += incIndex;</div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; }</div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;}</div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;</div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> PALETTE&gt;</div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;<span class="keywordtype">void</span> map_data_into_colors_through_palette(</div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; uint8_t *dataArray, uint16_t dataCount,</div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a>* targetColorArray,</div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; <span class="keyword">const</span> PALETTE&amp; pal,</div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; uint8_t brightness=255,</div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; uint8_t opacity=255,</div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; TBlendType blendType=LINEARBLEND)</div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;{</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; dataCount; i++) {</div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; uint8_t d = dataArray[i];</div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgb = ColorFromPalette( pal, d, brightness, blendType);</div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <span class="keywordflow">if</span>( opacity == 255 ) {</div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; targetColorArray[i] = rgb;</div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; targetColorArray[i].nscale8( 256 - opacity);</div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; rgb.nscale8_video( opacity);</div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; targetColorArray[i] += rgb;</div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; }</div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; }</div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;}</div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;</div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;<span class="comment">// nblendPaletteTowardPalette:</span></div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;<span class="comment">// Alter one palette by making it slightly more like</span></div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;<span class="comment">// a &#39;target palette&#39;, used for palette cross-fades.</span></div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;<span class="comment">// It does this by comparing each of the R, G, and B channels</span></div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;<span class="comment">// of each entry in the current palette to the corresponding</span></div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;<span class="comment">// entry in the target palette and making small adjustments:</span></div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;<span class="comment">// If the Red channel is too low, it will be increased.</span></div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;<span class="comment">// If the Red channel is too high, it will be slightly reduced.</span></div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;<span class="comment">// ... and likewise for Green and Blue channels.</span></div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;<span class="comment">// Additionally, there are two significant visual improvements</span></div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;<span class="comment">// to this algorithm implemented here. First is this:</span></div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;<span class="comment">// When increasing a channel, it is stepped up by ONE.</span></div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;<span class="comment">// When decreasing a channel, it is stepped down by TWO.</span></div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;<span class="comment">// Due to the way the eye perceives light, and the way colors</span></div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;<span class="comment">// are represented in RGB, this produces a more uniform apparent</span></div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;<span class="comment">// brightness when cross-fading between most palette colors.</span></div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;<span class="comment">// The second visual tweak is limiting the number of changes</span></div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;<span class="comment">// that will be made to the palette at once. If all the palette</span></div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;<span class="comment">// entries are changed at once, it can give a muddled appearance.</span></div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;<span class="comment">// However, if only a few palette entries are changed at once,</span></div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;<span class="comment">// you get a visually smoother transition: in the middle of the</span></div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;<span class="comment">// cross-fade your current palette will actually contain some</span></div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;<span class="comment">// colors from the old palette, a few blended colors, and some</span></div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;<span class="comment">// colors from the new palette.</span></div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;<span class="comment">// The maximum number of possible palette changes per call</span></div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;<span class="comment">// is 48 (sixteen color entries time three channels each).</span></div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;<span class="comment">// The default &#39;maximim number of changes&#39; here is 12, meaning</span></div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;<span class="comment">// that only approximately a quarter of the palette entries</span></div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;<span class="comment">// will be changed per call.</span></div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;<span class="keywordtype">void</span> nblendPaletteTowardPalette( <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; currentPalette,</div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; targetPalette,</div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; uint8_t maxChanges=24);</div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;</div>
-<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;</div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> { NOBLEND=0, LINEARBLEND=1 } TBlendType;</div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;</div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> ColorFromPalette( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; pal,</div>
+<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;</div>
+<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> ColorFromPalette( <span class="keyword">const</span> TProgmemRGBPalette16&amp; pal,</div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;</div>
+<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> ColorFromPalette( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; pal,</div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; TBlendType blendType=NOBLEND );</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> ColorFromPalette( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; pal,</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> ColorFromPalette( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; pal,</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; TBlendType blendType=NOBLEND );</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;<span class="comment">// Fill a range of LEDs with a sequece of entryies from a palette</span></div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> PALETTE&gt;</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;<span class="keywordtype">void</span> fill_palette(<a class="code" href="struct_c_r_g_b.html">CRGB</a>* L, uint16_t N, uint8_t startIndex, uint8_t incIndex,</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <span class="keyword">const</span> PALETTE&amp; pal, uint8_t brightness, TBlendType blendType)</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;{</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; uint8_t colorIndex = startIndex;</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; N; i++) {</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; L[i] = ColorFromPalette( pal, colorIndex, brightness, blendType);</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; colorIndex += incIndex;</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; }</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;}</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> PALETTE&gt;</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;<span class="keywordtype">void</span> map_data_into_colors_through_palette(</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; uint8_t *dataArray, uint16_t dataCount,</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a>* targetColorArray,</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; <span class="keyword">const</span> PALETTE&amp; pal,</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; uint8_t opacity=255,</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; TBlendType blendType=LINEARBLEND)</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;{</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; dataCount; i++) {</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; uint8_t d = dataArray[i];</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rgb = ColorFromPalette( pal, d, brightness, blendType);</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; <span class="keywordflow">if</span>( opacity == 255 ) {</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; targetColorArray[i] = rgb;</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; targetColorArray[i].nscale8( 256 - opacity);</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; rgb.nscale8_video( opacity);</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; targetColorArray[i] += rgb;</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; }</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; }</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;}</div>
+<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;<span class="comment">// nblendPaletteTowardPalette:</span></div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;<span class="comment">// Alter one palette by making it slightly more like</span></div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;<span class="comment">// a &#39;target palette&#39;, used for palette cross-fades.</span></div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;<span class="comment">// It does this by comparing each of the R, G, and B channels</span></div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;<span class="comment">// of each entry in the current palette to the corresponding</span></div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;<span class="comment">// entry in the target palette and making small adjustments:</span></div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;<span class="comment">// If the Red channel is too low, it will be increased.</span></div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;<span class="comment">// If the Red channel is too high, it will be slightly reduced.</span></div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;<span class="comment">// ... and likewise for Green and Blue channels.</span></div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;<span class="comment">// Additionally, there are two significant visual improvements</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;<span class="comment">// to this algorithm implemented here. First is this:</span></div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;<span class="comment">// When increasing a channel, it is stepped up by ONE.</span></div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;<span class="comment">// When decreasing a channel, it is stepped down by TWO.</span></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;<span class="comment">// Due to the way the eye perceives light, and the way colors</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="comment">// are represented in RGB, this produces a more uniform apparent</span></div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;<span class="comment">// brightness when cross-fading between most palette colors.</span></div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;<span class="comment">// The second visual tweak is limiting the number of changes</span></div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;<span class="comment">// that will be made to the palette at once. If all the palette</span></div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;<span class="comment">// entries are changed at once, it can give a muddled appearance.</span></div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;<span class="comment">// However, if only a few palette entries are changed at once,</span></div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;<span class="comment">// you get a visually smoother transition: in the middle of the</span></div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;<span class="comment">// cross-fade your current palette will actually contain some</span></div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;<span class="comment">// colors from the old palette, a few blended colors, and some</span></div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;<span class="comment">// colors from the new palette.</span></div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;<span class="comment">// The maximum number of possible palette changes per call</span></div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;<span class="comment">// is 48 (sixteen color entries time three channels each).</span></div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;<span class="comment">// The default &#39;maximim number of changes&#39; here is 12, meaning</span></div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;<span class="comment">// that only approximately a quarter of the palette entries</span></div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;<span class="comment">// will be changed per call.</span></div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;<span class="keywordtype">void</span> nblendPaletteTowardPalette( <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; currentPalette,</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; targetPalette,</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; uint8_t maxChanges=24);</div>
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;</div>
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;</div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;<span class="comment">// You can also define a static RGB palette very compactly in terms of a series</span></div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;<span class="comment">// of connected color gradients.</span></div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;<span class="comment">// For example, if you want the first 3/4ths of the palette to be a slow</span></div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;<span class="comment">// gradient ramping from black to red, and then the remaining 1/4 of the</span></div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<span class="comment">// palette to be a quicker ramp to white, you specify just three points: the</span></div>
-<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;<span class="comment">// starting black point (at index 0), the red midpoint (at index 192),</span></div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;<span class="comment">// and the final white point (at index 255). It looks like this:</span></div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;<span class="comment">// index: 0 192 255</span></div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="comment">// |----------r-r-r-rrrrrrrrRrRrRrRrRRRR-|-RRWRWWRWWW-|</span></div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;<span class="comment">// color: (0,0,0) (255,0,0) (255,255,255)</span></div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;<span class="comment">// Here&#39;s how you&#39;d define that gradient palette:</span></div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;<span class="comment">// You can also define a static RGB palette very compactly in terms of a series</span></div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;<span class="comment">// of connected color gradients.</span></div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<span class="comment">// For example, if you want the first 3/4ths of the palette to be a slow</span></div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;<span class="comment">// gradient ramping from black to red, and then the remaining 1/4 of the</span></div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;<span class="comment">// palette to be a quicker ramp to white, you specify just three points: the</span></div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;<span class="comment">// starting black point (at index 0), the red midpoint (at index 192),</span></div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;<span class="comment">// and the final white point (at index 255). It looks like this:</span></div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;<span class="comment">// index: 0 192 255</span></div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;<span class="comment">// |----------r-r-r-rrrrrrrrRrRrRrRrRRRR-|-RRWRWWRWWW-|</span></div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;<span class="comment">// color: (0,0,0) (255,0,0) (255,255,255)</span></div>
<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;<span class="comment">// DEFINE_GRADIENT_PALETTE( black_to_red_to_white_p ) {</span></div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;<span class="comment">// 0, 0, 0, 0, /* at index 0, black(0,0,0) */</span></div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;<span class="comment">// 192, 255, 0, 0, /* at index 192, red(255,0,0) */</span></div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;<span class="comment">// 255, 255,255,255 /* at index 255, white(255,255,255) */</span></div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;<span class="comment">// };</span></div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;<span class="comment">// This format is designed for compact storage. The example palette here</span></div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;<span class="comment">// takes up just 12 bytes of PROGMEM (flash) storage, and zero bytes</span></div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;<span class="comment">// of SRAM when not currently in use.</span></div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;<span class="comment">// To use one of these gradient palettes, simply assign it into a</span></div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;<span class="comment">// CRGBPalette16 or a CRGBPalette256, like this:</span></div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;<span class="comment">// CRGBPalette16 pal = black_to_red_to_white_p;</span></div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;<span class="comment">// Here&#39;s how you&#39;d define that gradient palette:</span></div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;<span class="comment">// DEFINE_GRADIENT_PALETTE( black_to_red_to_white_p ) {</span></div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;<span class="comment">// 0, 0, 0, 0, /* at index 0, black(0,0,0) */</span></div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;<span class="comment">// 192, 255, 0, 0, /* at index 192, red(255,0,0) */</span></div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;<span class="comment">// 255, 255,255,255 /* at index 255, white(255,255,255) */</span></div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;<span class="comment">// };</span></div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;<span class="comment">// This format is designed for compact storage. The example palette here</span></div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;<span class="comment">// takes up just 12 bytes of PROGMEM (flash) storage, and zero bytes</span></div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;<span class="comment">// of SRAM when not currently in use.</span></div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;<span class="comment">// To use one of these gradient palettes, simply assign it into a</span></div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;<span class="comment">// CRGBPalette16 or a CRGBPalette256, like this:</span></div>
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;<span class="comment">// When the assignment is made, the gradients are expanded out into</span></div>
-<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;<span class="comment">// either 16 or 256 palette entries, depending on the kind of palette</span></div>
-<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;<span class="comment">// object they&#39;re assigned to.</span></div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;<span class="comment">// IMPORTANT NOTES &amp; CAVEATS:</span></div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;<span class="comment">// CRGBPalette16 pal = black_to_red_to_white_p;</span></div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;<span class="comment">// When the assignment is made, the gradients are expanded out into</span></div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;<span class="comment">// either 16 or 256 palette entries, depending on the kind of palette</span></div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;<span class="comment">// object they&#39;re assigned to.</span></div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;<span class="comment">// - The last &#39;index&#39; position MUST BE 255! Failure to end with</span></div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;<span class="comment">// index 255 will result in program hangs or crashes.</span></div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;<span class="comment">// - At this point, these gradient palette definitions MUST BE</span></div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;<span class="comment">// stored in PROGMEM on AVR-based Arduinos. If you use the</span></div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;<span class="comment">// DEFINE_GRADIENT_PALETTE macro, this is taken care of automatically.</span></div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;</div>
-<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;<span class="preprocessor">#define DEFINE_GRADIENT_PALETTE(X) \</span></div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;<span class="preprocessor"> extern const TProgmemRGBGradientPalette_byte X[] FL_PROGMEM =</span></div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;</div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;<span class="preprocessor">#define DECLARE_GRADIENT_PALETTE(X) \</span></div>
-<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;<span class="preprocessor"> extern const TProgmemRGBGradientPalette_byte X[] FL_PROGMEM</span></div>
-<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;</div>
-<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;</div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;<span class="comment">// Functions to apply gamma adjustments, either:</span></div>
-<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;<span class="comment">// - a single gamma adjustment to a single scalar value,</span></div>
-<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;<span class="comment">// - a single gamma adjustment to each channel of a CRGB color, or</span></div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;<span class="comment">// - different gamma adjustments for each channel of a CRFB color.</span></div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;<span class="comment">// Note that the gamma is specified as a traditional floating point value</span></div>
-<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;<span class="comment">// e.g., &quot;2.5&quot;, and as such these functions should not be called in</span></div>
-<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;<span class="comment">// your innermost pixel loops, or in animations that are extremely</span></div>
-<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;<span class="comment">// low on program storage space. Nevertheless, if you need these</span></div>
-<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;<span class="comment">// functions, here they are.</span></div>
-<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;<span class="comment">// Furthermore, bear in mind that CRGB leds have only eight bits</span></div>
-<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;<span class="comment">// per channel of color resolution, and that very small, subtle shadings</span></div>
-<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;<span class="comment">// may not be visible.</span></div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;uint8_t applyGamma_video( uint8_t brightness, <span class="keywordtype">float</span> gamma);</div>
-<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> applyGamma_video( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; orig, <span class="keywordtype">float</span> gamma);</div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> applyGamma_video( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; orig, <span class="keywordtype">float</span> gammaR, <span class="keywordtype">float</span> gammaG, <span class="keywordtype">float</span> gammaB);</div>
-<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;<span class="comment">// The &quot;n&quot; versions below modify their arguments in-place.</span></div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; napplyGamma_video( <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb, <span class="keywordtype">float</span> gamma);</div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; napplyGamma_video( <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb, <span class="keywordtype">float</span> gammaR, <span class="keywordtype">float</span> gammaG, <span class="keywordtype">float</span> gammaB);</div>
-<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;<span class="keywordtype">void</span> napplyGamma_video( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* rgbarray, uint16_t count, <span class="keywordtype">float</span> gamma);</div>
-<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;<span class="keywordtype">void</span> napplyGamma_video( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* rgbarray, uint16_t count, <span class="keywordtype">float</span> gammaR, <span class="keywordtype">float</span> gammaG, <span class="keywordtype">float</span> gammaB);</div>
-<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;</div>
-<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;</div>
-<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;<span class="comment">// IMPORTANT NOTES &amp; CAVEATS:</span></div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;<span class="comment">// - The last &#39;index&#39; position MUST BE 255! Failure to end with</span></div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;<span class="comment">// index 255 will result in program hangs or crashes.</span></div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;<span class="comment">// - At this point, these gradient palette definitions MUST BE</span></div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;<span class="comment">// stored in PROGMEM on AVR-based Arduinos. If you use the</span></div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;<span class="comment">// DEFINE_GRADIENT_PALETTE macro, this is taken care of automatically.</span></div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;<span class="preprocessor">#define DEFINE_GRADIENT_PALETTE(X) \</span></div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;<span class="preprocessor"> extern const TProgmemRGBGradientPalette_byte X[] FL_PROGMEM =</span></div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;<span class="preprocessor">#define DECLARE_GRADIENT_PALETTE(X) \</span></div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;<span class="preprocessor"> extern const TProgmemRGBGradientPalette_byte X[] FL_PROGMEM</span></div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;<span class="comment">// Functions to apply gamma adjustments, either:</span></div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;<span class="comment">// - a single gamma adjustment to a single scalar value,</span></div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;<span class="comment">// - a single gamma adjustment to each channel of a CRGB color, or</span></div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;<span class="comment">// - different gamma adjustments for each channel of a CRFB color.</span></div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;<span class="comment">// Note that the gamma is specified as a traditional floating point value</span></div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;<span class="comment">// e.g., &quot;2.5&quot;, and as such these functions should not be called in</span></div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;<span class="comment">// your innermost pixel loops, or in animations that are extremely</span></div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;<span class="comment">// low on program storage space. Nevertheless, if you need these</span></div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;<span class="comment">// functions, here they are.</span></div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;<span class="comment">// Furthermore, bear in mind that CRGB leds have only eight bits</span></div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;<span class="comment">// per channel of color resolution, and that very small, subtle shadings</span></div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;<span class="comment">// may not be visible.</span></div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;uint8_t applyGamma_video( uint8_t brightness, <span class="keywordtype">float</span> gamma);</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> applyGamma_video( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; orig, <span class="keywordtype">float</span> gamma);</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> applyGamma_video( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; orig, <span class="keywordtype">float</span> gammaR, <span class="keywordtype">float</span> gammaG, <span class="keywordtype">float</span> gammaB);</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;<span class="comment">// The &quot;n&quot; versions below modify their arguments in-place.</span></div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; napplyGamma_video( <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb, <span class="keywordtype">float</span> gamma);</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; napplyGamma_video( <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb, <span class="keywordtype">float</span> gammaR, <span class="keywordtype">float</span> gammaG, <span class="keywordtype">float</span> gammaB);</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;<span class="keywordtype">void</span> napplyGamma_video( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* rgbarray, uint16_t count, <span class="keywordtype">float</span> gamma);</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;<span class="keywordtype">void</span> napplyGamma_video( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* rgbarray, uint16_t count, <span class="keywordtype">float</span> gammaR, <span class="keywordtype">float</span> gammaG, <span class="keywordtype">float</span> gammaB);</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;</div>
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;</div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdef"><b>Definition:</b> pixeltypes.h:83</div></div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdoc">Representation of an RGB pixel (Red, Green, Blue) </div><div class="ttdef"><b>Definition:</b> pixeltypes.h:88</div></div>
<div class="ttc" id="group__lib8tion_html_ga397f872082dbd788e04e8c6e443e563a"><div class="ttname"><a href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a></div><div class="ttdeci">uint16_t accum88</div><div class="ttdoc">ANSI: unsigned short _Accum. 8 bits int, 8 bits fraction. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:343</div></div>
-<div class="ttc" id="class_c_h_s_v_palette256_html"><div class="ttname"><a href="class_c_h_s_v_palette256.html">CHSVPalette256</a></div><div class="ttdef"><b>Definition:</b> colorutils.h:508</div></div>
-<div class="ttc" id="class_c_r_g_b_palette16_html"><div class="ttname"><a href="class_c_r_g_b_palette16.html">CRGBPalette16</a></div><div class="ttdef"><b>Definition:</b> colorutils.h:595</div></div>
+<div class="ttc" id="class_c_h_s_v_palette256_html"><div class="ttname"><a href="class_c_h_s_v_palette256.html">CHSVPalette256</a></div><div class="ttdef"><b>Definition:</b> colorutils.h:510</div></div>
+<div class="ttc" id="class_c_r_g_b_palette16_html"><div class="ttname"><a href="class_c_r_g_b_palette16.html">CRGBPalette16</a></div><div class="ttdef"><b>Definition:</b> colorutils.h:597</div></div>
<div class="ttc" id="group__lib8tion_html_ga5d6d013429a5b8a09d564d6137217644"><div class="ttname"><a href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a></div><div class="ttdeci">uint8_t fract8</div><div class="ttdoc">ANSI unsigned short _Fract. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:324</div></div>
<div class="ttc" id="group___colorutils_html_gafcc7dac88e25736ebc49a9faf2a1c2e2"><div class="ttname"><a href="group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2">fill_rainbow</a></div><div class="ttdeci">void fill_rainbow(struct CRGB *pFirstLED, int numToFill, uint8_t initialhue, uint8_t deltahue=5)</div><div class="ttdoc">fill_rainbow - fill a range of LEDs with a rainbow of colors, at full saturation and full value (brig...</div><div class="ttdef"><b>Definition:</b> colorutils.cpp:35</div></div>
-<div class="ttc" id="group___colorutils_html_ga3144bb2bb66aeed33e20f4fdd6cc1a98"><div class="ttname"><a href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a></div><div class="ttdeci">void fill_gradient(T *targetArray, uint16_t startpos, CHSV startcolor, uint16_t endpos, CHSV endcolor, TGradientDirectionCode directionCode=SHORTEST_HUES)</div><div class="ttdoc">fill_gradient - fill an array of colors with a smooth HSV gradient between two specified HSV colors...</div><div class="ttdef"><b>Definition:</b> colorutils.h:89</div></div>
-<div class="ttc" id="class_c_h_s_v_palette16_html"><div class="ttname"><a href="class_c_h_s_v_palette16.html">CHSVPalette16</a></div><div class="ttdef"><b>Definition:</b> colorutils.h:421</div></div>
-<div class="ttc" id="class_c_r_g_b_palette256_html"><div class="ttname"><a href="class_c_r_g_b_palette256.html">CRGBPalette256</a></div><div class="ttdef"><b>Definition:</b> colorutils.h:820</div></div>
+<div class="ttc" id="group___colorutils_html_ga3144bb2bb66aeed33e20f4fdd6cc1a98"><div class="ttname"><a href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a></div><div class="ttdeci">void fill_gradient(T *targetArray, uint16_t startpos, CHSV startcolor, uint16_t endpos, CHSV endcolor, TGradientDirectionCode directionCode=SHORTEST_HUES)</div><div class="ttdoc">fill_gradient - fill an array of colors with a smooth HSV gradient between two specified HSV colors...</div><div class="ttdef"><b>Definition:</b> colorutils.h:91</div></div>
+<div class="ttc" id="class_c_h_s_v_palette16_html"><div class="ttname"><a href="class_c_h_s_v_palette16.html">CHSVPalette16</a></div><div class="ttdef"><b>Definition:</b> colorutils.h:423</div></div>
+<div class="ttc" id="class_c_r_g_b_palette256_html"><div class="ttname"><a href="class_c_r_g_b_palette256.html">CRGBPalette256</a></div><div class="ttdef"><b>Definition:</b> colorutils.h:822</div></div>
<div class="ttc" id="group___bitswap_html_ga01396a2e40133293c3badab349ac99f0"><div class="ttname"><a href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline void swapbits8(bitswap_type in</div><div class="ttdoc">Do an 8byte by 8bit rotation. </div><div class="ttdef"><b>Definition:</b> fastled_delay.h:82</div></div>
-<div class="ttc" id="struct_c_h_s_v_html"><div class="ttname"><a href="struct_c_h_s_v.html">CHSV</a></div><div class="ttdef"><b>Definition:</b> pixeltypes.h:18</div></div>
+<div class="ttc" id="struct_c_h_s_v_html"><div class="ttname"><a href="struct_c_h_s_v.html">CHSV</a></div><div class="ttdoc">Representation of an HSV pixel (hue, saturation, value (aka brightness)). </div><div class="ttdef"><b>Definition:</b> pixeltypes.h:21</div></div>
<div class="ttc" id="group___colorutils_html_gac84d8820fd175567ba66413dfb8bc63b"><div class="ttname"><a href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a></div><div class="ttdeci">void fill_solid(struct CRGB *leds, int numToFill, const struct CRGB &amp;color)</div><div class="ttdoc">fill_solid - fill a range of LEDs with a solid color Example: fill_solid( leds, NUM_LEDS, CRGB(50,0,200)); </div><div class="ttdef"><b>Definition:</b> colorutils.cpp:12</div></div>
-<div class="ttc" id="union_t_r_g_b_gradient_palette_entry_union_html"><div class="ttname"><a href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a></div><div class="ttdef"><b>Definition:</b> colorutils.h:400</div></div>
+<div class="ttc" id="union_t_r_g_b_gradient_palette_entry_union_html"><div class="ttname"><a href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a></div><div class="ttdef"><b>Definition:</b> colorutils.h:402</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/controller_8h_source.html b/docs/3.1/controller_8h_source.html
index fb4ee5ed..039c178f 100644
--- a/docs/3.1/controller_8h_source.html
+++ b/docs/3.1/controller_8h_source.html
@@ -612,7 +612,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_c_l_e_d_controller_html_af6173cca91ee446766cc15102990d7bb"><div class="ttname"><a href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">CLEDController::getAdjustment</a></div><div class="ttdeci">CRGB getAdjustment(uint8_t scale)</div><div class="ttdoc">Get the combined brightness/color adjustment for this controller. </div><div class="ttdef"><b>Definition:</b> controller.h:152</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_aa4124b1cf5546ad028166e7884276076"><div class="ttname"><a href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">CLEDController::showLeds</a></div><div class="ttdeci">void showLeds(uint8_t brightness=255)</div><div class="ttdoc">show function using the "attached to this controller" led data </div><div class="ttdef"><b>Definition:</b> controller.h:88</div></div>
-<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdef"><b>Definition:</b> pixeltypes.h:83</div></div>
+<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdoc">Representation of an RGB pixel (Red, Green, Blue) </div><div class="ttdef"><b>Definition:</b> pixeltypes.h:88</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_a168c661bb9b4a5dfc797b69d3900b26c"><div class="ttname"><a href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">CLEDController::getCorrection</a></div><div class="ttdeci">CRGB getCorrection()</div><div class="ttdoc">get the correction value used by this controller </div><div class="ttdef"><b>Definition:</b> controller.h:142</div></div>
<div class="ttc" id="group___color_enums_html_ggadf6bcba67c9573665af20788c4431ae8af964ffff5f2977a60a83aa3f9f8b4368"><div class="ttname"><a href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af964ffff5f2977a60a83aa3f9f8b4368">UncorrectedColor</a></div><div class="ttdoc">uncorrected color </div><div class="ttdef"><b>Definition:</b> color.h:26</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html"><div class="ttname"><a href="class_c_l_e_d_controller.html">CLEDController</a></div><div class="ttdoc">Base definition for an LED controller. </div><div class="ttdef"><b>Definition:</b> controller.h:34</div></div>
@@ -658,7 +658,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html b/docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html
index 8ba7b1a7..1b6a7a88 100644
--- a/docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html
+++ b/docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html
@@ -107,7 +107,7 @@ Files</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/dmx_8h_source.html b/docs/3.1/dmx_8h_source.html
index a21c8978..94632944 100644
--- a/docs/3.1/dmx_8h_source.html
+++ b/docs/3.1/dmx_8h_source.html
@@ -95,124 +95,124 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include&lt;DmxSimple.h&gt;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#define HAS_DMX_SIMPLE</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// note - dmx simple must be included before FastSPI for this code to be enabled</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html"> 12</a></span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt; <span class="keyword">class </span><a class="code" href="class_d_m_x_simple_controller.html">DMXSimpleController</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="comment">// initialize the LED controller</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3"> 15</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3">init</a>() { DmxSimple.usePin(DATA_PIN); }</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="comment">// clear out/zero out the given number of leds.</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e"> 18</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordtype">int</span> count = min(nLeds * 3, DMX_SIZE);</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> iChannel = 1; iChannel &lt;= count; iChannel++) { DmxSimple.write(iChannel, 0); }</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; }</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="comment">// set all the leds on the controller to a given color</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1"> 25</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordtype">int</span> count = min(nLeds, DMX_SIZE / 3);</div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">int</span> iChannel = 1;</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; count; i++) {</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE0(RGB_ORDER)], scale.raw[RGB_BYTE0(RGB_ORDER)]));</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE1(RGB_ORDER)], scale.raw[RGB_BYTE1(RGB_ORDER)]));</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE2(RGB_ORDER)], scale.raw[RGB_BYTE2(RGB_ORDER)]));</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; }</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; }</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="comment">// note that the uint8_ts will be in the order that you want them sent out to the device.</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="comment">// nLeds is the number of RGB leds being written to</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186"> 37</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">int</span> count = min(nLeds, DMX_SIZE / 3);</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">int</span> iChannel = 1;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; count; i++) {</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE0(RGB_ORDER)], scale.raw[RGB_BYTE0(RGB_ORDER)]));</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE1(RGB_ORDER)], scale.raw[RGB_BYTE1(RGB_ORDER)]));</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE2(RGB_ORDER)], scale.raw[RGB_BYTE2(RGB_ORDER)]));</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; }</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; }</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// note - dmx simple must be included before FastSPI for this code to be enabled</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html"> 14</a></span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt; <span class="keyword">class </span><a class="code" href="class_d_m_x_simple_controller.html">DMXSimpleController</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="comment">// initialize the LED controller</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3"> 17</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3">init</a>() { DmxSimple.usePin(DATA_PIN); }</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="comment">// clear out/zero out the given number of leds.</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e"> 20</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">int</span> count = min(nLeds * 3, DMX_SIZE);</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> iChannel = 1; iChannel &lt;= count; iChannel++) { DmxSimple.write(iChannel, 0); }</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; }</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// set all the leds on the controller to a given color</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1"> 27</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">int</span> count = min(nLeds, DMX_SIZE / 3);</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">int</span> iChannel = 1;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; count; i++) {</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE0(RGB_ORDER)], scale.raw[RGB_BYTE0(RGB_ORDER)]));</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE1(RGB_ORDER)], scale.raw[RGB_BYTE1(RGB_ORDER)]));</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE2(RGB_ORDER)], scale.raw[RGB_BYTE2(RGB_ORDER)]));</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; }</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; }</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="comment">// note that the uint8_ts will be in the order that you want them sent out to the device.</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">// nLeds is the number of RGB leds being written to</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186"> 39</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">int</span> count = min(nLeds, DMX_SIZE / 3);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordtype">int</span> iChannel = 1;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; count; i++) {</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE0(RGB_ORDER)], scale.raw[RGB_BYTE0(RGB_ORDER)]));</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE1(RGB_ORDER)], scale.raw[RGB_BYTE1(RGB_ORDER)]));</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE2(RGB_ORDER)], scale.raw[RGB_BYTE2(RGB_ORDER)]));</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; }</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// as above, but every 4th uint8_t is assumed to be alpha channel data, and will be skipped</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> CARGB *data, <span class="keywordtype">int</span> nLeds, uint8_t scale = 255) = 0;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;};</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// as above, but every 4th uint8_t is assumed to be alpha channel data, and will be skipped</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> CARGB *data, <span class="keywordtype">int</span> nLeds, uint8_t scale = 255) = 0;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;FASTLED_NAMESPACE_END</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#ifdef DmxSerial_h</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#include&lt;DMXSerial.h&gt;</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#ifdef DmxSerial_h</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include&lt;DMXSerial.h&gt;</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_d_m_x_serial_controller.html"> 63</a></span>&#160;<span class="keyword">template</span> &lt;EOrder RGB_ORDER = RGB&gt; <span class="keyword">class </span><a class="code" href="class_d_m_x_serial_controller.html">DMXSerialController</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="comment">// initialize the LED controller</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27"> 66</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27">init</a>() { DMXSerial.init(DMXController); }</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// clear out/zero out the given number of leds.</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129"> 69</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">int</span> count = min(nLeds * 3, DMXSERIAL_MAX);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> iChannel = 0; iChannel &lt; count; iChannel++) { DMXSerial.write(iChannel, 0); }</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// set all the leds on the controller to a given color</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b"> 75</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordtype">int</span> count = min(nLeds, DMXSERIAL_MAX / 3);</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">int</span> iChannel = 0;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; count; i++) {</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE0(RGB_ORDER)], scale.raw[RGB_BYTE0(RGB_ORDER)]));</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE1(RGB_ORDER)], scale.raw[RGB_BYTE1(RGB_ORDER)]));</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE2(RGB_ORDER)], scale.raw[RGB_BYTE2(RGB_ORDER)]));</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// note that the uint8_ts will be in the order that you want them sent out to the device.</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// nLeds is the number of RGB leds being written to</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1"> 87</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">int</span> count = min(nLeds, DMXSERIAL_MAX / 3);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">int</span> iChannel = 0;</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; count; i++) {</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE0(RGB_ORDER)], scale.raw[RGB_BYTE0(RGB_ORDER)]));</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE1(RGB_ORDER)], scale.raw[RGB_BYTE1(RGB_ORDER)]));</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE2(RGB_ORDER)], scale.raw[RGB_BYTE2(RGB_ORDER)]));</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_d_m_x_serial_controller.html"> 65</a></span>&#160;<span class="keyword">template</span> &lt;EOrder RGB_ORDER = RGB&gt; <span class="keyword">class </span><a class="code" href="class_d_m_x_serial_controller.html">DMXSerialController</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// initialize the LED controller</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27"> 68</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27">init</a>() { DMXSerial.init(DMXController); }</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">// clear out/zero out the given number of leds.</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129"> 71</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">int</span> count = min(nLeds * 3, DMXSERIAL_MAX);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> iChannel = 0; iChannel &lt; count; iChannel++) { DMXSerial.write(iChannel, 0); }</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// set all the leds on the controller to a given color</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b"> 77</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">int</span> count = min(nLeds, DMXSERIAL_MAX / 3);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">int</span> iChannel = 0;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; count; i++) {</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE0(RGB_ORDER)], scale.raw[RGB_BYTE0(RGB_ORDER)]));</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE1(RGB_ORDER)], scale.raw[RGB_BYTE1(RGB_ORDER)]));</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE2(RGB_ORDER)], scale.raw[RGB_BYTE2(RGB_ORDER)]));</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// note that the uint8_ts will be in the order that you want them sent out to the device.</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// nLeds is the number of RGB leds being written to</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1"> 89</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">int</span> count = min(nLeds, DMXSERIAL_MAX / 3);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">int</span> iChannel = 0;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; count; i++) {</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE0(RGB_ORDER)], scale.raw[RGB_BYTE0(RGB_ORDER)]));</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE1(RGB_ORDER)], scale.raw[RGB_BYTE1(RGB_ORDER)]));</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE2(RGB_ORDER)], scale.raw[RGB_BYTE2(RGB_ORDER)]));</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// as above, but every 4th uint8_t is assumed to be alpha channel data, and will be skipped</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> CARGB *data, <span class="keywordtype">int</span> nLeds, uint8_t scale = 255) = 0;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;};</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// as above, but every 4th uint8_t is assumed to be alpha channel data, and will be skipped</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> CARGB *data, <span class="keywordtype">int</span> nLeds, uint8_t scale = 255) = 0;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;};</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#define HAS_DMX_SERIAL</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;FASTLED_NAMESPACE_END</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="class_d_m_x_simple_controller_html_a66deae70caf1d43a8692fff6540d1f1e"><div class="ttname"><a href="class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e">DMXSimpleController::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)</div><div class="ttdoc">clear out/zero out the given number of leds. </div><div class="ttdef"><b>Definition:</b> dmx.h:18</div></div>
-<div class="ttc" id="class_d_m_x_serial_controller_html_a04689efea1c1daf74905f87692caa129"><div class="ttname"><a href="class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129">DMXSerialController::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)</div><div class="ttdoc">clear out/zero out the given number of leds. </div><div class="ttdef"><b>Definition:</b> dmx.h:69</div></div>
-<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdef"><b>Definition:</b> pixeltypes.h:83</div></div>
-<div class="ttc" id="class_d_m_x_serial_controller_html_a0cd937424d4f6eedb90acec81ca1fa27"><div class="ttname"><a href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27">DMXSerialController::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> dmx.h:66</div></div>
-<div class="ttc" id="class_d_m_x_serial_controller_html_a3f3f3e606e495fd1bdcfd25c6bed7fe1"><div class="ttname"><a href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">DMXSerialController::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div><div class="ttdef"><b>Definition:</b> dmx.h:87</div></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#define HAS_DMX_SERIAL</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="class_d_m_x_simple_controller_html_a66deae70caf1d43a8692fff6540d1f1e"><div class="ttname"><a href="class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e">DMXSimpleController::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)</div><div class="ttdoc">clear out/zero out the given number of leds. </div><div class="ttdef"><b>Definition:</b> dmx.h:20</div></div>
+<div class="ttc" id="class_d_m_x_serial_controller_html_a04689efea1c1daf74905f87692caa129"><div class="ttname"><a href="class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129">DMXSerialController::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)</div><div class="ttdoc">clear out/zero out the given number of leds. </div><div class="ttdef"><b>Definition:</b> dmx.h:71</div></div>
+<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdoc">Representation of an RGB pixel (Red, Green, Blue) </div><div class="ttdef"><b>Definition:</b> pixeltypes.h:88</div></div>
+<div class="ttc" id="class_d_m_x_serial_controller_html_a0cd937424d4f6eedb90acec81ca1fa27"><div class="ttname"><a href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27">DMXSerialController::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> dmx.h:68</div></div>
+<div class="ttc" id="class_d_m_x_serial_controller_html_a3f3f3e606e495fd1bdcfd25c6bed7fe1"><div class="ttname"><a href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">DMXSerialController::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div><div class="ttdef"><b>Definition:</b> dmx.h:89</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html"><div class="ttname"><a href="class_c_l_e_d_controller.html">CLEDController</a></div><div class="ttdoc">Base definition for an LED controller. </div><div class="ttdef"><b>Definition:</b> controller.h:34</div></div>
<div class="ttc" id="group___scaling_html_ga6c160f8c36ce9b3c5eda68e4992010af"><div class="ttname"><a href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a></div><div class="ttdeci">LIB8STATIC uint8_t scale8(uint8_t i, fract8 scale)</div><div class="ttdoc">scale one byte by a second one, which is treated as the numerator of a fraction whose denominator is ...</div><div class="ttdef"><b>Definition:</b> scale8.h:20</div></div>
-<div class="ttc" id="class_d_m_x_simple_controller_html_a251c7d09383870337853c360996871c3"><div class="ttname"><a href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3">DMXSimpleController::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> dmx.h:15</div></div>
-<div class="ttc" id="class_d_m_x_simple_controller_html"><div class="ttname"><a href="class_d_m_x_simple_controller.html">DMXSimpleController</a></div><div class="ttdef"><b>Definition:</b> dmx.h:12</div></div>
-<div class="ttc" id="class_d_m_x_simple_controller_html_a3fb3a0501aae1d7a6aefb89f77168bd1"><div class="ttname"><a href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1">DMXSimpleController::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)</div><div class="ttdoc">set all the leds on the controller to a given color </div><div class="ttdef"><b>Definition:</b> dmx.h:25</div></div>
-<div class="ttc" id="class_d_m_x_serial_controller_html"><div class="ttname"><a href="class_d_m_x_serial_controller.html">DMXSerialController</a></div><div class="ttdef"><b>Definition:</b> dmx.h:63</div></div>
-<div class="ttc" id="class_d_m_x_serial_controller_html_a3d6285e65af8862eb4b0d36d6d3df22b"><div class="ttname"><a href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b">DMXSerialController::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)</div><div class="ttdoc">set all the leds on the controller to a given color </div><div class="ttdef"><b>Definition:</b> dmx.h:75</div></div>
-<div class="ttc" id="class_d_m_x_simple_controller_html_a29df92ccb41090893fa3c49f22b47186"><div class="ttname"><a href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186">DMXSimpleController::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div><div class="ttdef"><b>Definition:</b> dmx.h:37</div></div>
+<div class="ttc" id="class_d_m_x_simple_controller_html_a251c7d09383870337853c360996871c3"><div class="ttname"><a href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3">DMXSimpleController::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> dmx.h:17</div></div>
+<div class="ttc" id="class_d_m_x_simple_controller_html"><div class="ttname"><a href="class_d_m_x_simple_controller.html">DMXSimpleController</a></div><div class="ttdef"><b>Definition:</b> dmx.h:14</div></div>
+<div class="ttc" id="class_d_m_x_simple_controller_html_a3fb3a0501aae1d7a6aefb89f77168bd1"><div class="ttname"><a href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1">DMXSimpleController::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)</div><div class="ttdoc">set all the leds on the controller to a given color </div><div class="ttdef"><b>Definition:</b> dmx.h:27</div></div>
+<div class="ttc" id="class_d_m_x_serial_controller_html"><div class="ttname"><a href="class_d_m_x_serial_controller.html">DMXSerialController</a></div><div class="ttdef"><b>Definition:</b> dmx.h:65</div></div>
+<div class="ttc" id="class_d_m_x_serial_controller_html_a3d6285e65af8862eb4b0d36d6d3df22b"><div class="ttname"><a href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b">DMXSerialController::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)</div><div class="ttdoc">set all the leds on the controller to a given color </div><div class="ttdef"><b>Definition:</b> dmx.h:77</div></div>
+<div class="ttc" id="class_d_m_x_simple_controller_html_a29df92ccb41090893fa3c49f22b47186"><div class="ttname"><a href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186">DMXSimpleController::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div><div class="ttdef"><b>Definition:</b> dmx.h:39</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastled__config_8h_source.html b/docs/3.1/fastled__config_8h_source.html
index bcd15b77..d95a0635 100644
--- a/docs/3.1/fastled__config_8h_source.html
+++ b/docs/3.1/fastled__config_8h_source.html
@@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastled__delay_8h_source.html b/docs/3.1/fastled__delay_8h_source.html
index 5ea3b266..a65dc39f 100644
--- a/docs/3.1/fastled__delay_8h_source.html
+++ b/docs/3.1/fastled__delay_8h_source.html
@@ -144,7 +144,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; );</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0"> 62</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> CYCLES&gt; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles() {</div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5"> 62</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> CYCLES&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles() {</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; _delaycycles_AVR&lt;CYCLES / 3, CYCLES % 3&gt;();</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#else</span></div>
@@ -164,7 +164,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment">// }</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0"> 82</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> CYCLES&gt; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles() {</div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5"> 82</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> CYCLES&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles() {</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// _delaycycles_ARM&lt;CYCLES / 3, CYCLES % 3&gt;();</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; NOP; delaycycles&lt;CYCLES-1&gt;();</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div>
@@ -172,18 +172,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment">// pre-instantiations for values small enough to not need the loop, as well as sanity holders</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment">// for some negative values.</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0"> 90</a></span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-6&gt;() {}</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-5&gt;() {}</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-4&gt;() {}</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-3&gt;() {}</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-2&gt;() {}</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-1&gt;() {}</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;0&gt;() {}</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;1&gt;() {NOP;}</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;2&gt;() {NOP2;}</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;3&gt;() {NOP;NOP2;}</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;4&gt;() {NOP2;NOP2;}</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;5&gt;() {NOP2;NOP2;NOP;}</div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5"> 90</a></span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-6&gt;() {}</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-5&gt;() {}</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-4&gt;() {}</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-3&gt;() {}</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-2&gt;() {}</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-1&gt;() {}</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;0&gt;() {}</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;1&gt;() {NOP;}</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;2&gt;() {NOP2;}</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;3&gt;() {NOP;NOP2;}</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;4&gt;() {NOP2;NOP2;}</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;5&gt;() {NOP2;NOP2;NOP;}</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment">// Some timing related macros/definitions</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
@@ -202,11 +202,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="class_c_min_wait_html"><div class="ttname"><a href="class_c_min_wait.html">CMinWait</a></div><div class="ttdoc">Class to ensure that a minimum amount of time has kicked since the last time run - and delay if not e...</div><div class="ttdef"><b>Definition:</b> fastled_delay.h:8</div></div>
-<div class="ttc" id="group___bitswap_html_ga01396a2e40133293c3badab349ac99f0"><div class="ttname"><a href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline void delaycycles()</div><div class="ttdoc">Do an 8byte by 8bit rotation. </div><div class="ttdef"><b>Definition:</b> fastled_delay.h:62</div></div>
+<div class="ttc" id="group___pixeltypes_html_gad47d9c821aeaaa0123d125a18ff961d5"><div class="ttname"><a href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline void delaycycles()</div><div class="ttdoc">Do an 8byte by 8bit rotation. </div><div class="ttdef"><b>Definition:</b> fastled_delay.h:62</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastled__progmem_8h_source.html b/docs/3.1/fastled__progmem_8h_source.html
index eb4afca1..4a6eda14 100644
--- a/docs/3.1/fastled__progmem_8h_source.html
+++ b/docs/3.1/fastled__progmem_8h_source.html
@@ -151,7 +151,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastpin_8h_source.html b/docs/3.1/fastpin_8h_source.html
index 579917b4..85ff74b1 100644
--- a/docs/3.1/fastpin_8h_source.html
+++ b/docs/3.1/fastpin_8h_source.html
@@ -280,7 +280,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastspi_8h_source.html b/docs/3.1/fastspi_8h_source.html
index 317618ee..50d98edc 100644
--- a/docs/3.1/fastspi_8h_source.html
+++ b/docs/3.1/fastspi_8h_source.html
@@ -204,7 +204,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastspi__bitbang_8h_source.html b/docs/3.1/fastspi__bitbang_8h_source.html
index ae17175d..ab489383 100644
--- a/docs/3.1/fastspi__bitbang_8h_source.html
+++ b/docs/3.1/fastspi__bitbang_8h_source.html
@@ -446,7 +446,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastspi__dma_8h_source.html b/docs/3.1/fastspi__dma_8h_source.html
index 3736f961..1b09d544 100644
--- a/docs/3.1/fastspi__dma_8h_source.html
+++ b/docs/3.1/fastspi__dma_8h_source.html
@@ -90,7 +90,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="fragment"></div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastspi__nop_8h_source.html b/docs/3.1/fastspi__nop_8h_source.html
index b139e8cd..4796401c 100644
--- a/docs/3.1/fastspi__nop_8h_source.html
+++ b/docs/3.1/fastspi__nop_8h_source.html
@@ -92,9 +92,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// A nop/stub class, mostly to show the SPI methods that are needed/used by the various SPI chipset implementations. Should</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// be used as a definition for the set of methods that the spi implementation classes should use (since C++ doesn&#39;t support the</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// idea of interfaces - it&#39;s possible this could be done with virtual classes, need to decide if i want that overhead)</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t _DATA_PIN, u<span class="keywordtype">int</span>8_t _CLOCK_PIN, u<span class="keywordtype">int</span>8_t _SPI_CLOCK_DIVIDER&gt;</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">class </span>NOPSPIOutput {</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_selectable.html">Selectable</a> *m_pSelect;</div>
@@ -103,54 +100,42 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; NOPSPIOutput() { m_pSelect = NULL; }</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; NOPSPIOutput(<a class="code" href="class_selectable.html">Selectable</a> *pSelect) { m_pSelect = pSelect; }</div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="comment">// set the object representing the selectable</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordtype">void</span> setSelect(<a class="code" href="class_selectable.html">Selectable</a> *pSelect) { m_pSelect = pSelect; }</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="comment">// initialize the SPI subssytem</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">void</span> init() { <span class="comment">/* TODO */</span> }</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="comment">// latch the CS select</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordtype">void</span> select() { <span class="comment">/* TODO */</span> }</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// release the CS select</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">void</span> release() { <span class="comment">/* TODO */</span> }</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="comment">// wait until all queued up data has been written</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">void</span> waitFully();</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="comment">// not the most efficient mechanism in the world - but should be enough for sm16716 and friends</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t BIT&gt; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> writeBit(uint8_t b) { <span class="comment">/* TODO */</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="comment">// write a byte out via SPI (returns immediately on writing register)</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">void</span> writeByte(uint8_t b) { <span class="comment">/* TODO */</span> }</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="comment">// write a word out via SPI (returns immediately on writing register)</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">void</span> writeWord(uint16_t w) { <span class="comment">/* TODO */</span> }</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="comment">// A raw set of writing byte values, assumes setup/init/waiting done elsewhere (static for use by adjustment classes)</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeBytesValueRaw(uint8_t value, <span class="keywordtype">int</span> len) { <span class="comment">/* TODO */</span> }</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="comment">// A full cycle of writing a value for len bytes, including select, release, and waiting</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">void</span> writeBytesValue(uint8_t value, <span class="keywordtype">int</span> len) { <span class="comment">/* TODO */</span> }</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// A full cycle of writing a raw block of data out, including select, release, and waiting</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">void</span> writeBytes(uint8_t *data, <span class="keywordtype">int</span> len) { <span class="comment">/* TODO */</span> }</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// write a single bit out, which bit from the passed in byte is determined by template parameter</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t BIT&gt; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> writeBit(uint8_t b) { <span class="comment">/* TODO */</span> }</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t FLAGS, <span class="keyword">class</span> D, EOrder RGB_ORDER&gt; <span class="keywordtype">void</span> writePixels(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> pixels) { <span class="comment">/* TODO */</span> }</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;FASTLED_NAMESPACE_END</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t FLAGS, <span class="keyword">class</span> D, EOrder RGB_ORDER&gt; <span class="keywordtype">void</span> writePixels(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> pixels) { <span class="comment">/* TODO */</span> }</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;};</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="struct_pixel_controller_html"><div class="ttname"><a href="struct_pixel_controller.html">PixelController</a></div><div class="ttdoc">Pixel controller class. </div><div class="ttdef"><b>Definition:</b> controller.h:181</div></div>
<div class="ttc" id="class_selectable_html"><div class="ttname"><a href="class_selectable.html">Selectable</a></div><div class="ttdef"><b>Definition:</b> fastpin.h:16</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastspi__ref_8h_source.html b/docs/3.1/fastspi__ref_8h_source.html
index ba384515..6c81838e 100644
--- a/docs/3.1/fastspi__ref_8h_source.html
+++ b/docs/3.1/fastspi__ref_8h_source.html
@@ -189,13 +189,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;FASTLED_NAMESPACE_END</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdef"><b>Definition:</b> pixeltypes.h:83</div></div>
+<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdoc">Representation of an RGB pixel (Red, Green, Blue) </div><div class="ttdef"><b>Definition:</b> pixeltypes.h:88</div></div>
<div class="ttc" id="class_selectable_html"><div class="ttname"><a href="class_selectable.html">Selectable</a></div><div class="ttdef"><b>Definition:</b> fastpin.h:16</div></div>
<div class="ttc" id="group___bitswap_html_ga01396a2e40133293c3badab349ac99f0"><div class="ttname"><a href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline void swapbits8(bitswap_type in</div><div class="ttdoc">Do an 8byte by 8bit rotation. </div><div class="ttdef"><b>Definition:</b> fastled_delay.h:82</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/fastspi__types_8h_source.html b/docs/3.1/fastspi__types_8h_source.html
index 84ba27e8..14dc659c 100644
--- a/docs/3.1/fastspi__types_8h_source.html
+++ b/docs/3.1/fastspi__types_8h_source.html
@@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/files.html b/docs/3.1/files.html
index f68e122d..3950a4bb 100644
--- a/docs/3.1/files.html
+++ b/docs/3.1/files.html
@@ -109,23 +109,22 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastspi_8h_source.html"><span class="icondoc"></span></a><b>fastspi.h</b></td><td class="desc"></td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastspi__bitbang_8h_source.html"><span class="icondoc"></span></a><b>fastspi_bitbang.h</b></td><td class="desc"></td></tr>
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastspi__dma_8h_source.html"><span class="icondoc"></span></a><b>fastspi_dma.h</b></td><td class="desc"></td></tr>
-<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_fast_s_p_i___l_e_d2_8h_source.html"><span class="icondoc"></span></a><b>FastSPI_LED2.h</b></td><td class="desc"></td></tr>
-<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastspi__nop_8h_source.html"><span class="icondoc"></span></a><b>fastspi_nop.h</b></td><td class="desc"></td></tr>
-<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastspi__ref_8h_source.html"><span class="icondoc"></span></a><b>fastspi_ref.h</b></td><td class="desc"></td></tr>
-<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastspi__types_8h_source.html"><span class="icondoc"></span></a><b>fastspi_types.h</b></td><td class="desc"></td></tr>
-<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="hsv2rgb_8h_source.html"><span class="icondoc"></span></a><b>hsv2rgb.h</b></td><td class="desc"></td></tr>
-<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="led__sysdefs_8h_source.html"><span class="icondoc"></span></a><b>led_sysdefs.h</b></td><td class="desc"></td></tr>
-<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="lib8tion_8h_source.html"><span class="icondoc"></span></a><b>lib8tion.h</b></td><td class="desc"></td></tr>
-<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="noise_8h_source.html"><span class="icondoc"></span></a><a class="el" href="noise_8h.html" target="_self">noise.h</a></td><td class="desc">Noise functions provided by the library </td></tr>
-<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="pixeltypes_8h_source.html"><span class="icondoc"></span></a><b>pixeltypes.h</b></td><td class="desc"></td></tr>
-<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="platforms_8h_source.html"><span class="icondoc"></span></a><b>platforms.h</b></td><td class="desc"></td></tr>
-<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="power__mgt_8h_source.html"><span class="icondoc"></span></a><b>power_mgt.h</b></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastspi__nop_8h_source.html"><span class="icondoc"></span></a><b>fastspi_nop.h</b></td><td class="desc"></td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastspi__ref_8h_source.html"><span class="icondoc"></span></a><b>fastspi_ref.h</b></td><td class="desc"></td></tr>
+<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastspi__types_8h_source.html"><span class="icondoc"></span></a><b>fastspi_types.h</b></td><td class="desc"></td></tr>
+<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="hsv2rgb_8h_source.html"><span class="icondoc"></span></a><b>hsv2rgb.h</b></td><td class="desc"></td></tr>
+<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="led__sysdefs_8h_source.html"><span class="icondoc"></span></a><b>led_sysdefs.h</b></td><td class="desc"></td></tr>
+<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="lib8tion_8h_source.html"><span class="icondoc"></span></a><b>lib8tion.h</b></td><td class="desc"></td></tr>
+<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="noise_8h_source.html"><span class="icondoc"></span></a><a class="el" href="noise_8h.html" target="_self">noise.h</a></td><td class="desc">Noise functions provided by the library </td></tr>
+<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="pixeltypes_8h_source.html"><span class="icondoc"></span></a><b>pixeltypes.h</b></td><td class="desc"></td></tr>
+<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="platforms_8h_source.html"><span class="icondoc"></span></a><b>platforms.h</b></td><td class="desc"></td></tr>
+<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="power__mgt_8h_source.html"><span class="icondoc"></span></a><b>power_mgt.h</b></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/functions.html b/docs/3.1/functions.html
index 6db15e2c..f89920b2 100644
--- a/docs/3.1/functions.html
+++ b/docs/3.1/functions.html
@@ -73,6 +73,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<ul class="tablist">
<li class="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
@@ -196,6 +197,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li>head()
: <a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">CLEDController</a>
</li>
+<li>HTMLColorCode
+: <a class="el" href="group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99">CRGB</a>
+</li>
</ul>
@@ -301,7 +305,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/functions_enum.html b/docs/3.1/functions_enum.html
new file mode 100644
index 00000000..54734548
--- /dev/null
+++ b/docs/3.1/functions_enum.html
@@ -0,0 +1,108 @@
+<!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.9.1"/>
+<title>FastLED: Class Members - Enumerations</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>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</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 style="padding-left: 0.5em;">
+ <div id="projectname">FastLED
+ &#160;<span id="projectnumber">3.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.9.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+ <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+ <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
+ <li class="current"><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="functions_enum.html"><span>Enumerations</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<!-- 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 class="contents">
+&#160;<ul>
+<li>HTMLColorCode
+: <a class="el" href="group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99">CRGB</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.9.1
+</small></address>
+</body>
+</html>
diff --git a/docs/3.1/functions_func.html b/docs/3.1/functions_func.html
index 25358d0c..c70033dc 100644
--- a/docs/3.1/functions_func.html
+++ b/docs/3.1/functions_func.html
@@ -73,6 +73,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<ul class="tablist">
<li><a href="functions.html"><span>All</span></a></li>
<li class="current"><a href="functions_func.html"><span>Functions</span></a></li>
+ <li><a href="functions_enum.html"><span>Enumerations</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
@@ -301,7 +302,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/globals.html b/docs/3.1/globals.html
index ac5a69ef..41f22283 100644
--- a/docs/3.1/globals.html
+++ b/docs/3.1/globals.html
@@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/globals_func.html b/docs/3.1/globals_func.html
index 885d3d68..45ffac18 100644
--- a/docs/3.1/globals_func.html
+++ b/docs/3.1/globals_func.html
@@ -100,7 +100,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/graph_legend.html b/docs/3.1/graph_legend.html
index 7858348f..330a6634 100644
--- a/docs/3.1/graph_legend.html
+++ b/docs/3.1/graph_legend.html
@@ -147,7 +147,7 @@ A yellow dashed arrow denotes a relation between a template instance and the tem
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___bitswap.html b/docs/3.1/group___bitswap.html
index 9b3e402a..aa805aef 100644
--- a/docs/3.1/group___bitswap.html
+++ b/docs/3.1/group___bitswap.html
@@ -112,7 +112,7 @@ Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___color_enums.html b/docs/3.1/group___color_enums.html
index 5a253454..ed4f3f75 100644
--- a/docs/3.1/group___color_enums.html
+++ b/docs/3.1/group___color_enums.html
@@ -198,7 +198,7 @@ Enumerations</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___colorpalletes.html b/docs/3.1/group___colorpalletes.html
index 9fc795fc..c17542fd 100644
--- a/docs/3.1/group___colorpalletes.html
+++ b/docs/3.1/group___colorpalletes.html
@@ -177,7 +177,7 @@ Variables</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___colorutils.html b/docs/3.1/group___colorutils.html
index e2b99964..b1449c85 100644
--- a/docs/3.1/group___colorutils.html
+++ b/docs/3.1/group___colorutils.html
@@ -357,16 +357,20 @@ template&lt;typename T &gt; </div>
</div><div class="memdoc">
<p>fill_gradient - fill an array of colors with a smooth HSV gradient between two specified HSV colors. </p>
-<p>Since 'hue' is a value around a color wheel, there are always two ways to sweep from one hue to another. This function lets you specify which way you want the hue gradient to sweep around the color wheel: FORWARD_HUES: hue always goes clockwise BACKWARD_HUES: hue always goes counter-clockwise SHORTEST_HUES: hue goes whichever way is shortest LONGEST_HUES: hue goes whichever way is longest The default is SHORTEST_HUES, as this is nearly always what is wanted.</p>
+<p>Since 'hue' is a value around a color wheel, there are always two ways to sweep from one hue to another. This function lets you specify which way you want the hue gradient to sweep around the color wheel: </p><pre class="fragment">FORWARD_HUES: hue always goes clockwise
+BACKWARD_HUES: hue always goes counter-clockwise
+SHORTEST_HUES: hue goes whichever way is shortest
+LONGEST_HUES: hue goes whichever way is longest
+</pre><p>The default is SHORTEST_HUES, as this is nearly always what is wanted.</p>
<p>fill_gradient can write the gradient colors EITHER (1) into an array of CRGBs (e.g., into leds[] array, or an RGB Palette) OR (2) into an array of CHSVs (e.g. an HSV Palette).</p>
-<p>In the case of writing into a <a class="el" href="struct_c_r_g_b.html">CRGB</a> array, the gradient is computed in HSV space, and then HSV values are converted to RGB as they're written into the RGB array. </p>
+<p>In the case of writing into a <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array, the gradient is computed in HSV space, and then HSV values are converted to RGB as they're written into the RGB array. </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___dimming.html b/docs/3.1/group___dimming.html
index 5cfbef34..b413fb90 100644
--- a/docs/3.1/group___dimming.html
+++ b/docs/3.1/group___dimming.html
@@ -121,7 +121,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___math.html b/docs/3.1/group___math.html
index 020bad3c..1a0cc20a 100644
--- a/docs/3.1/group___math.html
+++ b/docs/3.1/group___math.html
@@ -418,7 +418,7 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___noise.html b/docs/3.1/group___noise.html
index aef788c1..2d8b9e2e 100644
--- a/docs/3.1/group___noise.html
+++ b/docs/3.1/group___noise.html
@@ -237,7 +237,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_2dnoise16</b> (<
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___pixeltypes.html b/docs/3.1/group___pixeltypes.html
new file mode 100644
index 00000000..5336eaba
--- /dev/null
+++ b/docs/3.1/group___pixeltypes.html
@@ -0,0 +1,355 @@
+<!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.9.1"/>
+<title>FastLED: CHSV and CRGB type definitions</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>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</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 style="padding-left: 0.5em;">
+ <div id="projectname">FastLED
+ &#160;<span id="projectnumber">3.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.9.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<!-- 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 class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">CHSV and CRGB type definitions</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_h_s_v.html">CHSV</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Representation of an HSV pixel (hue, saturation, value (aka brightness)). <a href="struct_c_h_s_v.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_c_r_g_b.html">CRGB</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Representation of an RGB pixel (Red, Green, Blue) <a href="struct_c_r_g_b.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga6585ae9f9a54e6a1fcb7c5f985931fb3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6585ae9f9a54e6a1fcb7c5f985931fb3"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___pixeltypes.html#ga6585ae9f9a54e6a1fcb7c5f985931fb3">HSVHue</a> { <br />
+&#160;&#160;<b>HUE_RED</b> = 0,
+<b>HUE_ORANGE</b> = 32,
+<b>HUE_YELLOW</b> = 64,
+<b>HUE_GREEN</b> = 96,
+<br />
+&#160;&#160;<b>HUE_AQUA</b> = 128,
+<b>HUE_BLUE</b> = 160,
+<b>HUE_PURPLE</b> = 192,
+<b>HUE_PINK</b> = 224
+<br />
+ }</td></tr>
+<tr class="memdesc:ga6585ae9f9a54e6a1fcb7c5f985931fb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pre-defined hue values for HSV objects. <br /></td></tr>
+<tr class="separator:ga6585ae9f9a54e6a1fcb7c5f985931fb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeb40a08b7cb90c1e21bd408261558b99"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeb40a08b7cb90c1e21bd408261558b99"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99">CRGB::HTMLColorCode</a> { <br />
+&#160;&#160;<b>AliceBlue</b> =0xF0F8FF,
+<b>Amethyst</b> =0x9966CC,
+<b>AntiqueWhite</b> =0xFAEBD7,
+<b>Aqua</b> =0x00FFFF,
+<br />
+&#160;&#160;<b>Aquamarine</b> =0x7FFFD4,
+<b>Azure</b> =0xF0FFFF,
+<b>Beige</b> =0xF5F5DC,
+<b>Bisque</b> =0xFFE4C4,
+<br />
+&#160;&#160;<b>Black</b> =0x000000,
+<b>BlanchedAlmond</b> =0xFFEBCD,
+<b>Blue</b> =0x0000FF,
+<b>BlueViolet</b> =0x8A2BE2,
+<br />
+&#160;&#160;<b>Brown</b> =0xA52A2A,
+<b>BurlyWood</b> =0xDEB887,
+<b>CadetBlue</b> =0x5F9EA0,
+<b>Chartreuse</b> =0x7FFF00,
+<br />
+&#160;&#160;<b>Chocolate</b> =0xD2691E,
+<b>Coral</b> =0xFF7F50,
+<b>CornflowerBlue</b> =0x6495ED,
+<b>Cornsilk</b> =0xFFF8DC,
+<br />
+&#160;&#160;<b>Crimson</b> =0xDC143C,
+<b>Cyan</b> =0x00FFFF,
+<b>DarkBlue</b> =0x00008B,
+<b>DarkCyan</b> =0x008B8B,
+<br />
+&#160;&#160;<b>DarkGoldenrod</b> =0xB8860B,
+<b>DarkGray</b> =0xA9A9A9,
+<b>DarkGrey</b> =0xA9A9A9,
+<b>DarkGreen</b> =0x006400,
+<br />
+&#160;&#160;<b>DarkKhaki</b> =0xBDB76B,
+<b>DarkMagenta</b> =0x8B008B,
+<b>DarkOliveGreen</b> =0x556B2F,
+<b>DarkOrange</b> =0xFF8C00,
+<br />
+&#160;&#160;<b>DarkOrchid</b> =0x9932CC,
+<b>DarkRed</b> =0x8B0000,
+<b>DarkSalmon</b> =0xE9967A,
+<b>DarkSeaGreen</b> =0x8FBC8F,
+<br />
+&#160;&#160;<b>DarkSlateBlue</b> =0x483D8B,
+<b>DarkSlateGray</b> =0x2F4F4F,
+<b>DarkSlateGrey</b> =0x2F4F4F,
+<b>DarkTurquoise</b> =0x00CED1,
+<br />
+&#160;&#160;<b>DarkViolet</b> =0x9400D3,
+<b>DeepPink</b> =0xFF1493,
+<b>DeepSkyBlue</b> =0x00BFFF,
+<b>DimGray</b> =0x696969,
+<br />
+&#160;&#160;<b>DimGrey</b> =0x696969,
+<b>DodgerBlue</b> =0x1E90FF,
+<b>FireBrick</b> =0xB22222,
+<b>FloralWhite</b> =0xFFFAF0,
+<br />
+&#160;&#160;<b>ForestGreen</b> =0x228B22,
+<b>Fuchsia</b> =0xFF00FF,
+<b>Gainsboro</b> =0xDCDCDC,
+<b>GhostWhite</b> =0xF8F8FF,
+<br />
+&#160;&#160;<b>Gold</b> =0xFFD700,
+<b>Goldenrod</b> =0xDAA520,
+<b>Gray</b> =0x808080,
+<b>Grey</b> =0x808080,
+<br />
+&#160;&#160;<b>Green</b> =0x008000,
+<b>GreenYellow</b> =0xADFF2F,
+<b>Honeydew</b> =0xF0FFF0,
+<b>HotPink</b> =0xFF69B4,
+<br />
+&#160;&#160;<b>IndianRed</b> =0xCD5C5C,
+<b>Indigo</b> =0x4B0082,
+<b>Ivory</b> =0xFFFFF0,
+<b>Khaki</b> =0xF0E68C,
+<br />
+&#160;&#160;<b>Lavender</b> =0xE6E6FA,
+<b>LavenderBlush</b> =0xFFF0F5,
+<b>LawnGreen</b> =0x7CFC00,
+<b>LemonChiffon</b> =0xFFFACD,
+<br />
+&#160;&#160;<b>LightBlue</b> =0xADD8E6,
+<b>LightCoral</b> =0xF08080,
+<b>LightCyan</b> =0xE0FFFF,
+<b>LightGoldenrodYellow</b> =0xFAFAD2,
+<br />
+&#160;&#160;<b>LightGreen</b> =0x90EE90,
+<b>LightGrey</b> =0xD3D3D3,
+<b>LightPink</b> =0xFFB6C1,
+<b>LightSalmon</b> =0xFFA07A,
+<br />
+&#160;&#160;<b>LightSeaGreen</b> =0x20B2AA,
+<b>LightSkyBlue</b> =0x87CEFA,
+<b>LightSlateGray</b> =0x778899,
+<b>LightSlateGrey</b> =0x778899,
+<br />
+&#160;&#160;<b>LightSteelBlue</b> =0xB0C4DE,
+<b>LightYellow</b> =0xFFFFE0,
+<b>Lime</b> =0x00FF00,
+<b>LimeGreen</b> =0x32CD32,
+<br />
+&#160;&#160;<b>Linen</b> =0xFAF0E6,
+<b>Magenta</b> =0xFF00FF,
+<b>Maroon</b> =0x800000,
+<b>MediumAquamarine</b> =0x66CDAA,
+<br />
+&#160;&#160;<b>MediumBlue</b> =0x0000CD,
+<b>MediumOrchid</b> =0xBA55D3,
+<b>MediumPurple</b> =0x9370DB,
+<b>MediumSeaGreen</b> =0x3CB371,
+<br />
+&#160;&#160;<b>MediumSlateBlue</b> =0x7B68EE,
+<b>MediumSpringGreen</b> =0x00FA9A,
+<b>MediumTurquoise</b> =0x48D1CC,
+<b>MediumVioletRed</b> =0xC71585,
+<br />
+&#160;&#160;<b>MidnightBlue</b> =0x191970,
+<b>MintCream</b> =0xF5FFFA,
+<b>MistyRose</b> =0xFFE4E1,
+<b>Moccasin</b> =0xFFE4B5,
+<br />
+&#160;&#160;<b>NavajoWhite</b> =0xFFDEAD,
+<b>Navy</b> =0x000080,
+<b>OldLace</b> =0xFDF5E6,
+<b>Olive</b> =0x808000,
+<br />
+&#160;&#160;<b>OliveDrab</b> =0x6B8E23,
+<b>Orange</b> =0xFFA500,
+<b>OrangeRed</b> =0xFF4500,
+<b>Orchid</b> =0xDA70D6,
+<br />
+&#160;&#160;<b>PaleGoldenrod</b> =0xEEE8AA,
+<b>PaleGreen</b> =0x98FB98,
+<b>PaleTurquoise</b> =0xAFEEEE,
+<b>PaleVioletRed</b> =0xDB7093,
+<br />
+&#160;&#160;<b>PapayaWhip</b> =0xFFEFD5,
+<b>PeachPuff</b> =0xFFDAB9,
+<b>Peru</b> =0xCD853F,
+<b>Pink</b> =0xFFC0CB,
+<br />
+&#160;&#160;<b>Plaid</b> =0xCC5533,
+<b>Plum</b> =0xDDA0DD,
+<b>PowderBlue</b> =0xB0E0E6,
+<b>Purple</b> =0x800080,
+<br />
+&#160;&#160;<b>Red</b> =0xFF0000,
+<b>RosyBrown</b> =0xBC8F8F,
+<b>RoyalBlue</b> =0x4169E1,
+<b>SaddleBrown</b> =0x8B4513,
+<br />
+&#160;&#160;<b>Salmon</b> =0xFA8072,
+<b>SandyBrown</b> =0xF4A460,
+<b>SeaGreen</b> =0x2E8B57,
+<b>Seashell</b> =0xFFF5EE,
+<br />
+&#160;&#160;<b>Sienna</b> =0xA0522D,
+<b>Silver</b> =0xC0C0C0,
+<b>SkyBlue</b> =0x87CEEB,
+<b>SlateBlue</b> =0x6A5ACD,
+<br />
+&#160;&#160;<b>SlateGray</b> =0x708090,
+<b>SlateGrey</b> =0x708090,
+<b>Snow</b> =0xFFFAFA,
+<b>SpringGreen</b> =0x00FF7F,
+<br />
+&#160;&#160;<b>SteelBlue</b> =0x4682B4,
+<b>Tan</b> =0xD2B48C,
+<b>Teal</b> =0x008080,
+<b>Thistle</b> =0xD8BFD8,
+<br />
+&#160;&#160;<b>Tomato</b> =0xFF6347,
+<b>Turquoise</b> =0x40E0D0,
+<b>Violet</b> =0xEE82EE,
+<b>Wheat</b> =0xF5DEB3,
+<br />
+&#160;&#160;<b>White</b> =0xFFFFFF,
+<b>WhiteSmoke</b> =0xF5F5F5,
+<b>Yellow</b> =0xFFFF00,
+<b>YellowGreen</b> =0x9ACD32,
+<br />
+&#160;&#160;<b>FairyLight</b> =0xFFE42D,
+<b>FairyLightNCC</b> =0xFF9D2A
+<br />
+ }</td></tr>
+<tr class="memdesc:gaeb40a08b7cb90c1e21bd408261558b99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Predefined RGB colors. <br /></td></tr>
+<tr class="separator:gaeb40a08b7cb90c1e21bd408261558b99"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga06ee0f21e1bf430ea547244f6ed4add8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;hsv, <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;rgb)</td></tr>
+<tr class="memdesc:ga06ee0f21e1bf430ea547244f6ed4add8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Forward declaration of hsv2rgb_rainbow here, to avoid circular dependencies. <a href="#ga06ee0f21e1bf430ea547244f6ed4add8">More...</a><br /></td></tr>
+<tr class="separator:ga06ee0f21e1bf430ea547244f6ed4add8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad47d9c821aeaaa0123d125a18ff961d5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad47d9c821aeaaa0123d125a18ff961d5"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a> ((always_inline)) bool operator</td></tr>
+<tr class="memdesc:gad47d9c821aeaaa0123d125a18ff961d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do an 8byte by 8bit rotation. <br /></td></tr>
+<tr class="separator:gad47d9c821aeaaa0123d125a18ff961d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga06ee0f21e1bf430ea547244f6ed4add8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void hsv2rgb_rainbow </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td>
+ <td class="paramname"><em>hsv</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td>
+ <td class="paramname"><em>rgb</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Forward declaration of hsv2rgb_rainbow here, to avoid circular dependencies. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.9.1
+</small></address>
+</body>
+</html>
diff --git a/docs/3.1/group___power.html b/docs/3.1/group___power.html
new file mode 100644
index 00000000..1ae5d47e
--- /dev/null
+++ b/docs/3.1/group___power.html
@@ -0,0 +1,96 @@
+<!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.9.1"/>
+<title>FastLED: Power management functions</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>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</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 style="padding-left: 0.5em;">
+ <div id="projectname">FastLED
+ &#160;<span id="projectnumber">3.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.9.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<!-- 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 class="header">
+ <div class="headertitle">
+<div class="title">Power management functions</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>functions used to limit the amount of power used by FastLED
+<a href="#details">More...</a></p>
+<p>functions used to limit the amount of power used by FastLED </p>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.9.1
+</small></address>
+</body>
+</html>
diff --git a/docs/3.1/group___random.html b/docs/3.1/group___random.html
index 7ecb529c..e38816cb 100644
--- a/docs/3.1/group___random.html
+++ b/docs/3.1/group___random.html
@@ -263,7 +263,7 @@ uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___scaling.html b/docs/3.1/group___scaling.html
index 3f35e49d..66ef1fe5 100644
--- a/docs/3.1/group___scaling.html
+++ b/docs/3.1/group___scaling.html
@@ -497,7 +497,7 @@ LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group___trig.html b/docs/3.1/group___trig.html
index 3c47072b..9b7a8252 100644
--- a/docs/3.1/group___trig.html
+++ b/docs/3.1/group___trig.html
@@ -287,7 +287,7 @@ const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>b_m16_interl
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/group__chipsets.html b/docs/3.1/group__chipsets.html
new file mode 100644
index 00000000..9e708466
--- /dev/null
+++ b/docs/3.1/group__chipsets.html
@@ -0,0 +1,148 @@
+<!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.9.1"/>
+<title>FastLED: Chipsets</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>
+<script type="text/javascript">
+ $(document).ready(function() { init_search(); });
+</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 style="padding-left: 0.5em;">
+ <div id="projectname">FastLED
+ &#160;<span id="projectnumber">3.1</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.9.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<!-- 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 class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Chipsets</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Implementations of <a class="el" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. ">CLEDController</a> classes for various led chipsets.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">LPD8806 controller class. <a href="class_l_p_d8806_controller.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">WS2801 controller class. <a href="class_w_s2801_controller.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_w_s2803_controller.html">WS2803Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_a102_controller.html">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">APA102 controller class. <a href="class_a_p_a102_controller.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p9813_controller.html">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">P9813 controller class. <a href="class_p9813_controller.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SM16716 controller class. <a href="class_s_m16716_controller.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_p_d1886_controller1250_khz.html">LPD1886Controller1250Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_w_s2811_controller800_khz.html">WS2811Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_w_s2811_controller400_khz.html">WS2811Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_c_s1903_controller400_khz.html">UCS1903Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_c_s1903_b_controller800_khz.html">UCS1903BController800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_u_c_s1904_controller800_khz.html">UCS1904Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_m1803_controller400_khz.html">TM1803Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_m1829_controller800_khz.html">TM1829Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_w6205_controller400_khz.html">GW6205Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_w6205_controller800_khz.html">GW6205Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_t_m1829_controller1600_khz.html">TM1829Controller1600Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<p>Implementations of <a class="el" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. ">CLEDController</a> classes for various led chipsets. </p>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.9.1
+</small></address>
+</body>
+</html>
diff --git a/docs/3.1/group__lib8tion.html b/docs/3.1/group__lib8tion.html
index f59a6806..45adb7d5 100644
--- a/docs/3.1/group__lib8tion.html
+++ b/docs/3.1/group__lib8tion.html
@@ -206,10 +206,10 @@ Functions</h2></td></tr>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>memmove8</b> (void *dst, const void *src, uint16_t num)</td></tr>
<tr class="separator:ga061b2dedbda73b683f7d383543cb2603"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0a153077d54784357424c31478ed1561"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0a153077d54784357424c31478ed1561"></a>
-void *&#160;</td><td class="memItemRight" valign="bottom"><b>memcpy8</b> (void *dst, const void *src, uint16_t num) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((noinline))</td></tr>
+void *&#160;</td><td class="memItemRight" valign="bottom"><b>memcpy8</b> (void *dst, const void *src, uint16_t num) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((noinline))</td></tr>
<tr class="separator:ga0a153077d54784357424c31478ed1561"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac6e333b45df07459ed5b17224d814926"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac6e333b45df07459ed5b17224d814926"></a>
-void *&#160;</td><td class="memItemRight" valign="bottom"><b>memset8</b> (void *ptr, uint8_t value, uint16_t num) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((noinline))</td></tr>
+void *&#160;</td><td class="memItemRight" valign="bottom"><b>memset8</b> (void *ptr, uint8_t value, uint16_t num) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((noinline))</td></tr>
<tr class="separator:gac6e333b45df07459ed5b17224d814926"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga62ed4425400bc4140902347dc54ffb72"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga62ed4425400bc4140902347dc54ffb72"></a>
LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a> (uint8_t a, uint8_t b, <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> frac)</td></tr>
@@ -837,7 +837,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/hierarchy.html b/docs/3.1/hierarchy.html
index 02390922..65ef5cc6 100644
--- a/docs/3.1/hierarchy.html
+++ b/docs/3.1/hierarchy.html
@@ -112,7 +112,7 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionbitswap__type.html" target="_self">bitswap_type</a></td><td class="desc">Union containing a full 8 bytes to swap the bit orientation on </td></tr>
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_every_n_time_periods.html" target="_self">CEveryNTimePeriods&lt; timeType, timeGetter &gt;</a></td><td class="desc"></td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_fast_l_e_d.html" target="_self">CFastLED</a></td><td class="desc">High level controller interface for FastLED </td></tr>
-<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_h_s_v.html" target="_self">CHSV</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_h_s_v.html" target="_self">CHSV</a></td><td class="desc">Representation of an HSV pixel (hue, saturation, value (aka brightness)) </td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_h_s_v_palette16.html" target="_self">CHSVPalette16</a></td><td class="desc"></td></tr>
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_h_s_v_palette256.html" target="_self">CHSVPalette256</a></td><td class="desc"></td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_12_" class="arrow" onclick="toggleFolder('12_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_l_e_d_controller.html" target="_self">CLEDController</a></td><td class="desc">Base definition for an LED controller </td></tr>
@@ -172,7 +172,7 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
<tr id="row_13_26_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_w_s2812_controller800_khz.html" target="_self">WS2812Controller800Khz&lt; DATA_PIN, GRB &gt;</a></td><td class="desc"></td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_min_wait.html" target="_self">CMinWait&lt; WAIT &gt;</a></td><td class="desc">Class to ensure that a minimum amount of time has kicked since the last time run - and delay if not enough time has passed yet this should make sure that chipsets that have </td></tr>
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_min_wait.html" target="_self">CMinWait&lt; 1000 &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_r_g_b.html" target="_self">CRGB</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_r_g_b.html" target="_self">CRGB</a></td><td class="desc">Representation of an RGB pixel (Red, Green, Blue) </td></tr>
<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_r_g_b_palette16.html" target="_self">CRGBPalette16</a></td><td class="desc"></td></tr>
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_r_g_b_palette256.html" target="_self">CRGBPalette256</a></td><td class="desc"></td></tr>
<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_a_t_a___n_o_p.html" target="_self">DATA_NOP</a></td><td class="desc">Some of the SPI controllers will need to perform a transform on each byte before doing anyting with it </td></tr>
@@ -201,7 +201,7 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/hsv2rgb_8h_source.html b/docs/3.1/hsv2rgb_8h_source.html
index bb7867c0..815365ec 100644
--- a/docs/3.1/hsv2rgb_8h_source.html
+++ b/docs/3.1/hsv2rgb_8h_source.html
@@ -102,8 +102,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// NOTE: here hue is 0-255, not just 0-191</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keywordtype">void</span> hsv2rgb_rainbow( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; hsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb);</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keywordtype">void</span> hsv2rgb_rainbow( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* phsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * prgb, <span class="keywordtype">int</span> numLeds);</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; hsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb);</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* phsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * prgb, <span class="keywordtype">int</span> numLeds);</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#define HUE_MAX_RAINBOW 255</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
@@ -176,12 +176,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;FASTLED_NAMESPACE_END</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdef"><b>Definition:</b> pixeltypes.h:83</div></div>
-<div class="ttc" id="struct_c_h_s_v_html"><div class="ttname"><a href="struct_c_h_s_v.html">CHSV</a></div><div class="ttdef"><b>Definition:</b> pixeltypes.h:18</div></div>
+<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdoc">Representation of an RGB pixel (Red, Green, Blue) </div><div class="ttdef"><b>Definition:</b> pixeltypes.h:88</div></div>
+<div class="ttc" id="group___pixeltypes_html_ga06ee0f21e1bf430ea547244f6ed4add8"><div class="ttname"><a href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a></div><div class="ttdeci">void hsv2rgb_rainbow(const CHSV &amp;hsv, CRGB &amp;rgb)</div><div class="ttdoc">Forward declaration of hsv2rgb_rainbow here, to avoid circular dependencies. </div><div class="ttdef"><b>Definition:</b> hsv2rgb.cpp:277</div></div>
+<div class="ttc" id="struct_c_h_s_v_html"><div class="ttname"><a href="struct_c_h_s_v.html">CHSV</a></div><div class="ttdoc">Representation of an HSV pixel (hue, saturation, value (aka brightness)). </div><div class="ttdef"><b>Definition:</b> pixeltypes.h:21</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/index.html b/docs/3.1/index.html
index f44b5a99..4e44858a 100644
--- a/docs/3.1/index.html
+++ b/docs/3.1/index.html
@@ -84,7 +84,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/inherit_graph_11.map b/docs/3.1/inherit_graph_11.map
index 3bcdde74..0a821ae4 100644
--- a/docs/3.1/inherit_graph_11.map
+++ b/docs/3.1/inherit_graph_11.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$struct_c_r_g_b.html" title="CRGB" alt="" coords="6,5,66,32"/>
+<area shape="rect" id="node1" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="6,5,66,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_11.md5 b/docs/3.1/inherit_graph_11.md5
index f1c9ed97..719b3650 100644
--- a/docs/3.1/inherit_graph_11.md5
+++ b/docs/3.1/inherit_graph_11.md5
@@ -1 +1 @@
-0dc6e5cebf8cf7991ae1cccc50cc4c68 \ No newline at end of file
+6f9963c60471b0a8d2dc7f3ff0da2540 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_5.map b/docs/3.1/inherit_graph_5.map
index 3249266d..665f92bd 100644
--- a/docs/3.1/inherit_graph_5.map
+++ b/docs/3.1/inherit_graph_5.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$struct_c_h_s_v.html" title="CHSV" alt="" coords="5,5,64,32"/>
+<area shape="rect" id="node1" href="$struct_c_h_s_v.html" title="Representation of an HSV pixel (hue, saturation, value (aka brightness)). " alt="" coords="5,5,64,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_5.md5 b/docs/3.1/inherit_graph_5.md5
index baa6491b..4bc3e3cc 100644
--- a/docs/3.1/inherit_graph_5.md5
+++ b/docs/3.1/inherit_graph_5.md5
@@ -1 +1 @@
-e390ed93cd6fa4b7c88fe03f104e7aba \ No newline at end of file
+48f80f537d9c163a339757dd1892acf4 \ No newline at end of file
diff --git a/docs/3.1/inherits.html b/docs/3.1/inherits.html
index 2ab965ec..a8ed2f86 100644
--- a/docs/3.1/inherits.html
+++ b/docs/3.1/inherits.html
@@ -114,7 +114,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</td></tr>
<tr><td><img src="inherit_graph_5.png" border="0" alt="" usemap="#_c_h_s_v"/>
<map name="_c_h_s_v" id="_c_h_s_v">
-<area shape="rect" id="node1" href="struct_c_h_s_v.html" title="CHSV" alt="" coords="5,5,64,32"/></map>
+<area shape="rect" id="node1" href="struct_c_h_s_v.html" title="Representation of an HSV pixel (hue, saturation, value (aka brightness)). " alt="" coords="5,5,64,32"/></map>
</td></tr>
<tr><td><img src="inherit_graph_6.png" border="0" alt="" usemap="#_c_h_s_v_palette16"/>
<map name="_c_h_s_v_palette16" id="_c_h_s_v_palette16">
@@ -138,7 +138,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</td></tr>
<tr><td><img src="inherit_graph_11.png" border="0" alt="" usemap="#_c_r_g_b"/>
<map name="_c_r_g_b" id="_c_r_g_b">
-<area shape="rect" id="node1" href="struct_c_r_g_b.html" title="CRGB" alt="" coords="6,5,66,32"/></map>
+<area shape="rect" id="node1" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="6,5,66,32"/></map>
</td></tr>
<tr><td><img src="inherit_graph_12.png" border="0" alt="" usemap="#_c_r_g_b_palette16"/>
<map name="_c_r_g_b_palette16" id="_c_r_g_b_palette16">
@@ -216,7 +216,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/led__sysdefs_8h_source.html b/docs/3.1/led__sysdefs_8h_source.html
index 9118feee..b7d61735 100644
--- a/docs/3.1/led__sysdefs_8h_source.html
+++ b/docs/3.1/led__sysdefs_8h_source.html
@@ -131,7 +131,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/lib8tion_8h_source.html b/docs/3.1/lib8tion_8h_source.html
index 9d5945b2..1edaf7c6 100644
--- a/docs/3.1/lib8tion_8h_source.html
+++ b/docs/3.1/lib8tion_8h_source.html
@@ -1079,7 +1079,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/math8_8h_source.html b/docs/3.1/math8_8h_source.html
index a2d5e682..91bdc573 100644
--- a/docs/3.1/math8_8h_source.html
+++ b/docs/3.1/math8_8h_source.html
@@ -408,7 +408,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/md__p_o_r_t_i_n_g.html b/docs/3.1/md__p_o_r_t_i_n_g.html
index d4f46940..ae233b40 100644
--- a/docs/3.1/md__p_o_r_t_i_n_g.html
+++ b/docs/3.1/md__p_o_r_t_i_n_g.html
@@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/md__r_e_a_d_m_e.html b/docs/3.1/md__r_e_a_d_m_e.html
index 6ed0822d..49cb6dab 100644
--- a/docs/3.1/md__r_e_a_d_m_e.html
+++ b/docs/3.1/md__r_e_a_d_m_e.html
@@ -140,7 +140,7 @@ void loop() {
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/md_release_notes.html b/docs/3.1/md_release_notes.html
index 17431bbd..459ff17d 100644
--- a/docs/3.1/md_release_notes.html
+++ b/docs/3.1/md_release_notes.html
@@ -169,7 +169,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li>hardware def fixes</li>
<li>allow alternate rgb color orderings</li>
<li>high speed math methods</li>
-<li>rich <a class="el" href="struct_c_r_g_b.html">CRGB</a> structure</li>
+<li>rich <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> structure</li>
</ul>
<h2>Preview 3</h2>
<ul>
@@ -197,7 +197,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/modules.html b/docs/3.1/modules.html
index 8be70e7f..2dfcf949 100644
--- a/docs/3.1/modules.html
+++ b/docs/3.1/modules.html
@@ -84,22 +84,25 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="textblock">Here is a list of all modules:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group___bitswap.html" target="_self">Bit swapping/rotate</a></td><td class="desc">Functions for doing a rotation of bits/bytes used by parallel output </td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group___color_enums.html" target="_self">Color correction/temperature</a></td><td class="desc">Definitions for color correction and light temperatures </td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group___colorutils.html" target="_self">Color utility functions</a></td><td class="desc">A variety of functions for working with color, palletes, and leds </td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group___dimming.html" target="_self">Dimming and brightening functions</a></td><td class="desc">Dimming and brightening functions </td></tr>
-<tr id="row_4_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_4_" class="arrow" onclick="toggleFolder('4_')">&#9660;</span><a class="el" href="group__lib8tion.html" target="_self">Fast math functions</a></td><td class="desc">A variety of functions for working with numbers </td></tr>
-<tr id="row_4_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group___math.html" target="_self">Basic math operations</a></td><td class="desc">Fast, efficient 8-bit math functions specifically designed for high-performance LED programming </td></tr>
-<tr id="row_4_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group___random.html" target="_self">Fast random number generators</a></td><td class="desc">Fast 8- and 16- bit unsigned random numbers </td></tr>
-<tr id="row_4_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group___trig.html" target="_self">Fast trig functions</a></td><td class="desc">Fast 8 and 16-bit approximations of sin(x) and cos(x) </td></tr>
-<tr id="row_4_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group___scaling.html" target="_self">Scaling functions</a></td><td class="desc">Fast, efficient 8-bit scaling functions specifically designed for high-performance LED programming </td></tr>
-<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group___noise.html" target="_self">Noise functions</a></td><td class="desc">Simplex noise function definitions </td></tr>
-<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group___colorpalletes.html" target="_self">Pre-defined color palletes</a></td><td class="desc">These schemes are all declared as "PROGMEM", meaning that they won't take up SRAM on AVR chips until used </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group___pixeltypes.html" target="_self">CHSV and CRGB type definitions</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__chipsets.html" target="_self">Chipsets</a></td><td class="desc">Implementations of <a class="el" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. ">CLEDController</a> classes for various led chipsets </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group___color_enums.html" target="_self">Color correction/temperature</a></td><td class="desc">Definitions for color correction and light temperatures </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group___colorutils.html" target="_self">Color utility functions</a></td><td class="desc">A variety of functions for working with color, palletes, and leds </td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group___dimming.html" target="_self">Dimming and brightening functions</a></td><td class="desc">Dimming and brightening functions </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_6_" class="arrow" onclick="toggleFolder('6_')">&#9660;</span><a class="el" href="group__lib8tion.html" target="_self">Fast math functions</a></td><td class="desc">A variety of functions for working with numbers </td></tr>
+<tr id="row_6_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group___math.html" target="_self">Basic math operations</a></td><td class="desc">Fast, efficient 8-bit math functions specifically designed for high-performance LED programming </td></tr>
+<tr id="row_6_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group___random.html" target="_self">Fast random number generators</a></td><td class="desc">Fast 8- and 16- bit unsigned random numbers </td></tr>
+<tr id="row_6_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group___trig.html" target="_self">Fast trig functions</a></td><td class="desc">Fast 8 and 16-bit approximations of sin(x) and cos(x) </td></tr>
+<tr id="row_6_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group___scaling.html" target="_self">Scaling functions</a></td><td class="desc">Fast, efficient 8-bit scaling functions specifically designed for high-performance LED programming </td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group___noise.html" target="_self">Noise functions</a></td><td class="desc">Simplex noise function definitions </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group___power.html" target="_self">Power management functions</a></td><td class="desc">Functions used to limit the amount of power used by FastLED </td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group___colorpalletes.html" target="_self">Pre-defined color palletes</a></td><td class="desc">These schemes are all declared as "PROGMEM", meaning that they won't take up SRAM on AVR chips until used </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/noise_8h.html b/docs/3.1/noise_8h.html
index 9b1fa0c6..6d469641 100644
--- a/docs/3.1/noise_8h.html
+++ b/docs/3.1/noise_8h.html
@@ -200,7 +200,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_2dnoise16</b> (<
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/noise_8h_source.html b/docs/3.1/noise_8h_source.html
index 72b08965..205d8ae8 100644
--- a/docs/3.1/noise_8h_source.html
+++ b/docs/3.1/noise_8h_source.html
@@ -137,7 +137,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;FASTLED_NAMESPACE_END</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdef"><b>Definition:</b> pixeltypes.h:83</div></div>
+<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdoc">Representation of an RGB pixel (Red, Green, Blue) </div><div class="ttdef"><b>Definition:</b> pixeltypes.h:88</div></div>
<div class="ttc" id="group__lib8tion_html_gaaf46b9f719ef3bdb574f8e967af6dbb5"><div class="ttname"><a href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a></div><div class="ttdeci">uint16_t fract16</div><div class="ttdoc">ANSI: unsigned _Fract. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:332</div></div>
<div class="ttc" id="group__lib8tion_html_ga5d6d013429a5b8a09d564d6137217644"><div class="ttname"><a href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a></div><div class="ttdeci">uint8_t fract8</div><div class="ttdoc">ANSI unsigned short _Fract. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:324</div></div>
<div class="ttc" id="group___noise_html_ga810bdc406dcf8fd5b7add9041aa18abd"><div class="ttname"><a href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a></div><div class="ttdeci">int16_t inoise16_raw(uint32_t x, uint32_t y, uint32_t z)</div><div class="ttdoc">16 bit raw versions of the noise functions. </div><div class="ttdef"><b>Definition:</b> noise.cpp:245</div></div>
@@ -145,7 +145,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/pages.html b/docs/3.1/pages.html
index 92a81657..e080a6fd 100644
--- a/docs/3.1/pages.html
+++ b/docs/3.1/pages.html
@@ -92,7 +92,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/pixeltypes_8h_source.html b/docs/3.1/pixeltypes_8h_source.html
index a172603b..78841ffe 100644
--- a/docs/3.1/pixeltypes_8h_source.html
+++ b/docs/3.1/pixeltypes_8h_source.html
@@ -99,814 +99,811 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_c_r_g_b.html">CRGB</a>;</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_c_h_s_v.html">CHSV</a>;</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// Forward declaration of hsv2rgb_rainbow here,</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// to avoid circular dependencies.</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> hsv2rgb_rainbow( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; hsv, <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb);</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="struct_c_h_s_v.html"> 18</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_c_h_s_v.html">CHSV</a> {</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; uint8_t hue;</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; uint8_t h; };</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; hsv, <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb);</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="struct_c_h_s_v.html"> 21</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_c_h_s_v.html">CHSV</a> {</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; uint8_t saturation;</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; uint8_t sat;</div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; uint8_t s; };</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; uint8_t value;</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; uint8_t val;</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; uint8_t v; };</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; };</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; uint8_t raw[3];</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; };</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="comment">// default values are UNITIALIZED</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; {</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; }</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">// allow construction from H, S, V</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>( uint8_t ih, uint8_t is, uint8_t iv) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; : h(ih), s(is), v(iv)</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; {</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">// allow copy construction</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>(<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; rhs) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; h = rhs.h;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; s = rhs.s;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; v = rhs.v;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator= (<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; rhs) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; {</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; h = rhs.h;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; s = rhs.s;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; v = rhs.v;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; setHSV(uint8_t ih, uint8_t is, uint8_t iv) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; h = ih;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; s = is;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; v = iv;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;};</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; HUE_RED = 0,</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; HUE_ORANGE = 32,</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; HUE_YELLOW = 64,</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; HUE_GREEN = 96,</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; HUE_AQUA = 128,</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; HUE_BLUE = 160,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; HUE_PURPLE = 192,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; HUE_PINK = 224</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;} HSVHue;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html"> 83</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_c_r_g_b.html">CRGB</a> {</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; uint8_t r;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; uint8_t red;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; };</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; uint8_t g;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; uint8_t green;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; };</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; uint8_t b;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; uint8_t blue;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; };</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; };</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; uint8_t raw[3];</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; };</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">inline</span> uint8_t&amp; operator[] (uint8_t x) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; {</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> raw[x];</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; uint8_t hue;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; uint8_t h; };</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; uint8_t saturation;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; uint8_t sat;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; uint8_t s; };</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; uint8_t value;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; uint8_t val;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; uint8_t v; };</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; };</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; uint8_t raw[3];</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; };</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">// default values are UNITIALIZED</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>() <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; {</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// allow construction from H, S, V</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>( uint8_t ih, uint8_t is, uint8_t iv) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; : h(ih), s(is), v(iv)</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// allow copy construction</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>(<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; h = rhs.h;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; s = rhs.s;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; v = rhs.v;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator= (<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; h = rhs.h;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; s = rhs.s;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; v = rhs.v;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; setHSV(uint8_t ih, uint8_t is, uint8_t iv) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; h = ih;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; s = is;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; v = iv;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;};</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="group___pixeltypes.html#ga6585ae9f9a54e6a1fcb7c5f985931fb3"> 76</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; HUE_RED = 0,</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; HUE_ORANGE = 32,</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; HUE_YELLOW = 64,</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; HUE_GREEN = 96,</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; HUE_AQUA = 128,</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; HUE_BLUE = 160,</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; HUE_PURPLE = 192,</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; HUE_PINK = 224</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;} <a class="code" href="group___pixeltypes.html#ga6585ae9f9a54e6a1fcb7c5f985931fb3">HSVHue</a>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html"> 88</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_c_r_g_b.html">CRGB</a> {</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; uint8_t r;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; uint8_t red;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; };</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; uint8_t g;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; uint8_t green;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; };</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; uint8_t b;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; uint8_t blue;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; };</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; };</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; uint8_t raw[3];</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; };</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> uint8_t&amp; operator[] (uint8_t x) <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">inline</span> uint8_t&amp; operator[] (uint8_t x) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> raw[x];</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// default values are UNINITIALIZED</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> uint8_t&amp; operator[] (uint8_t x) <span class="keyword">const</span> <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> raw[x];</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// allow construction from R, G, B</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( uint8_t ir, uint8_t ig, uint8_t ib) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; : r(ir), g(ig), b(ib)</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// allow construction from 32-bit (really 24-bit) bit 0xRRGGBB color code</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( uint32_t colorcode) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; : r((colorcode &gt;&gt; 16) &amp; 0xFF), g((colorcode &gt;&gt; 8) &amp; 0xFF), b((colorcode &gt;&gt; 0) &amp; 0xFF)</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( <a class="code" href="group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8">LEDColorCorrection</a> colorcode) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// default values are UNINITIALIZED</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>() <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; {</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// allow construction from R, G, B</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( uint8_t ir, uint8_t ig, uint8_t ib) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; : r(ir), g(ig), b(ib)</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="comment">// allow construction from 32-bit (really 24-bit) bit 0xRRGGBB color code</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( uint32_t colorcode) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; : r((colorcode &gt;&gt; 16) &amp; 0xFF), g((colorcode &gt;&gt; 8) &amp; 0xFF), b((colorcode &gt;&gt; 0) &amp; 0xFF)</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( <a class="code" href="group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9">ColorTemperature</a> colorcode) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; : r((colorcode &gt;&gt; 16) &amp; 0xFF), g((colorcode &gt;&gt; 8) &amp; 0xFF), b((colorcode &gt;&gt; 0) &amp; 0xFF)</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// allow copy construction</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>(<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; r = rhs.r;</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; g = rhs.g;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; b = rhs.b;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// allow construction from HSV color</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>(<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; rhs) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; hsv2rgb_rainbow( rhs, *<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">// allow assignment from one RGB struct to another</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator= (<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; r = rhs.r;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; g = rhs.g;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; b = rhs.b;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">// allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator= (<span class="keyword">const</span> uint32_t colorcode) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; {</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; r = (colorcode &gt;&gt; 16) &amp; 0xFF;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; g = (colorcode &gt;&gt; 8) &amp; 0xFF;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; b = (colorcode &gt;&gt; 0) &amp; 0xFF;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">// allow assignment from R, G, and B</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; setRGB (uint8_t nr, uint8_t ng, uint8_t nb) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; {</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; r = nr;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; g = ng;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; b = nb;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">// allow assignment from H, S, and V</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; setHSV (uint8_t hue, uint8_t sat, uint8_t val) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; hsv2rgb_rainbow( <a class="code" href="struct_c_h_s_v.html">CHSV</a>(hue, sat, val), *<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">// allow assignment from just a Hue, saturation and value automatically at max.</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; setHue (uint8_t hue) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; hsv2rgb_rainbow( <a class="code" href="struct_c_h_s_v.html">CHSV</a>(hue, 255, 255), *<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">// allow assignment from HSV color</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator= (<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; rhs) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; hsv2rgb_rainbow( rhs, *<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">// allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; setColorCode (uint32_t colorcode) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; r = (colorcode &gt;&gt; 16) &amp; 0xFF;</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; g = (colorcode &gt;&gt; 8) &amp; 0xFF;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; b = (colorcode &gt;&gt; 0) &amp; 0xFF;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">// add one RGB to another, saturating at 0xFF for each channel</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator+= (<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs )</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; {</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; r = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( r, rhs.r);</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; g = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( g, rhs.g);</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; b = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( b, rhs.b);</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="comment">// add a contstant to each channel, saturating at 0xFF</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">// this is NOT an operator+= overload because the compiler</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">// can&#39;t usefully decide when it&#39;s being passed a 32-bit</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="comment">// constant (e.g. CRGB::Red) and an 8-bit one (CRGB::Blue)</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; addToRGB (uint8_t d )</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; r = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( r, d);</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; g = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( g, d);</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; b = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( b, d);</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// subtract one RGB from another, saturating at 0x00 for each channel</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator-= (<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs )</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; {</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; r = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( r, rhs.r);</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; g = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( g, rhs.g);</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; b = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( b, rhs.b);</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="comment">// subtract a constant from each channel, saturating at 0x00</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="comment">// this is NOT an operator+= overload because the compiler</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="comment">// can&#39;t usefully decide when it&#39;s being passed a 32-bit</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="comment">// constant (e.g. CRGB::Red) and an 8-bit one (CRGB::Blue)</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; subtractFromRGB(uint8_t d )</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; {</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; r = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( r, d);</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; g = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( g, d);</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; b = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( b, d);</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="comment">// subtract a constant of &#39;1&#39; from each channel, saturating at 0x00</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator-- () <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; {</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; subtractFromRGB(1);</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// subtract a constant of &#39;1&#39; from each channel, saturating at 0x00</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator-- (<span class="keywordtype">int</span> DUMMY_ARG) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; {</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> retval(*<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; --(*this);</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">return</span> retval;</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">// add a constant of &#39;1&#39; from each channel, saturating at 0xFF</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator++ () <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; {</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; addToRGB(1);</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="comment">// add a constant of &#39;1&#39; from each channel, saturating at 0xFF</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator++ (<span class="keywordtype">int</span> DUMMY_ARG) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; {</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> retval(*<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; ++(*this);</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">return</span> retval;</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// divide each of the channels by a constant</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator/= (uint8_t d )</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; {</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; r /= d;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; g /= d;</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; b /= d;</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="comment">// right shift each of the channels by a constant</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator&gt;&gt;= (uint8_t d)</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; {</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; r &gt;&gt;= d;</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; g &gt;&gt;= d;</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; b &gt;&gt;= d;</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; }</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="comment">// multiply each of the channels by a constant,</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">// saturating each channel at 0xFF</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator*= (uint8_t d )</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; {</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; r = <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( r, d);</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; g = <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( g, d);</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; b = <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( b, d);</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="comment">// scale down a RGB to N 256ths of it&#39;s current brightness, using</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="comment">// &#39;video&#39; dimming rules, which means that unless the scale factor is ZERO</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="comment">// each channel is guaranteed NOT to dim down to zero. If it&#39;s already</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="comment">// nonzero, it&#39;ll stay nonzero, even if that means the hue shifts a little</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="comment">// at low brightness levels.</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; nscale8_video (uint8_t scaledown )</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; {</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( r, g, b, scaledown);</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="comment">// %= is a synonym for nscale8_video. Think of it is scaling down</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="comment">// by &quot;a percentage&quot;</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator%= (uint8_t scaledown )</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; {</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( r, g, b, scaledown);</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="comment">// fadeLightBy is a synonym for nscale8_video( ..., 255-fadefactor)</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; fadeLightBy (uint8_t fadefactor )</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; {</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( r, g, b, 255 - fadefactor);</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="comment">// scale down a RGB to N 256ths of it&#39;s current brightness, using</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="comment">// &#39;plain math&#39; dimming rules, which means that if the low light levels</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="comment">// may dim all the way to 100% black.</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; nscale8 (uint8_t scaledown )</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; {</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <a class="code" href="group___scaling.html#ga39bf87e5526120889086cab19ac749b1">nscale8x3</a>( r, g, b, scaledown);</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="comment">// fadeToBlackBy is a synonym for nscale8( ..., 255-fadefactor)</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; fadeToBlackBy (uint8_t fadefactor )</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; {</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <a class="code" href="group___scaling.html#ga39bf87e5526120889086cab19ac749b1">nscale8x3</a>( r, g, b, 255 - fadefactor);</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="comment">// &quot;or&quot; operator brings each channel up to the higher of the two values</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator|= (<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs )</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; {</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">if</span>( rhs.r &gt; r) r = rhs.r;</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">if</span>( rhs.g &gt; g) g = rhs.g;</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">if</span>( rhs.b &gt; b) b = rhs.b;</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; }</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator|= (uint8_t d )</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; {</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">if</span>( d &gt; r) r = d;</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">if</span>( d &gt; g) g = d;</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">if</span>( d &gt; b) b = d;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; }</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="comment">// &quot;and&quot; operator brings each channel down to the lower of the two values</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator&amp;= (<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs )</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; {</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">if</span>( rhs.r &lt; r) r = rhs.r;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">if</span>( rhs.g &lt; g) g = rhs.g;</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">if</span>( rhs.b &lt; b) b = rhs.b;</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; }</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator&amp;= (uint8_t d )</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; {</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">if</span>( d &lt; r) r = d;</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">if</span>( d &lt; g) g = d;</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">if</span>( d &lt; b) b = d;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; }</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="comment">// this allows testing a CRGB for zero-ness</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keyword">inline</span> <span class="keyword">operator</span> bool() <span class="keyword">const</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; {</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">return</span> r || g || b;</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; }</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="comment">// invert each channel</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator- ()</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; {</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> retval;</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; retval.r = 255 - r;</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; retval.g = 255 - g;</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; retval.b = 255 - b;</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span> retval;</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="preprocessor">#ifdef SmartMatrix_h</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keyword">operator</span> rgb24()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; rgb24 ret;</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; ret.red = r;</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; ret.green = g;</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; ret.blue = b;</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">return</span> ret;</div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; }</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keyword">inline</span> uint8_t getLuma ( )<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="comment">//Y&#39; = 0.2126 R&#39; + 0.7152 G&#39; + 0.0722 B&#39;</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="comment">// 54 183 18 (!)</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; uint8_t luma = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( r, 54) + <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">\</a></div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c"> scale8_LEAVING_R1_DIRTY</a>( g, 183) + <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">\</a></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c"> scale8_LEAVING_R1_DIRTY</a>( b, 18);</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> luma;</div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keyword">inline</span> uint8_t getAverageLight( )<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keyword">const</span> uint8_t eightysix = 86;</div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; uint8_t avg = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( r, eightysix) + <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">\</a></div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c"> scale8_LEAVING_R1_DIRTY</a>( g, eightysix) + <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">\</a></div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c"> scale8_LEAVING_R1_DIRTY</a>( b, eightysix);</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">return</span> avg;</div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; }</div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> maximizeBrightness( uint8_t limit = 255 ) {</div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; uint8_t max = red;</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">if</span>( green &gt; max) max = green;</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">if</span>( blue &gt; max) max = blue;</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; uint16_t factor = ((uint16_t)(limit) * 256) / max;</div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; red = (red * factor) / 256;</div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; green = (green * factor) / 256;</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; blue = (blue * factor) / 256;</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> lerp8( <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; other, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> frac)</div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; {</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> ret;</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; ret.r = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(r,other.r,frac);</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; ret.g = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(g,other.g,frac);</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; ret.b = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(b,other.b,frac);</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">return</span> ret;</div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; }</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> lerp16( <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; other, <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> frac)</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; {</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> ret;</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; ret.r = <a class="code" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a>(r&lt;&lt;8,other.r&lt;&lt;8,frac)&gt;&gt;8;</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; ret.g = <a class="code" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a>(g&lt;&lt;8,other.g&lt;&lt;8,frac)&gt;&gt;8;</div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; ret.b = <a class="code" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a>(b&lt;&lt;8,other.b&lt;&lt;8,frac)&gt;&gt;8;</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">return</span> ret;</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="comment">// getParity returns 0 or 1, depending on the</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="comment">// lowest bit of the sum of the color components.</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">inline</span> uint8_t getParity()</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; {</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; uint8_t sum = r + g + b;</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">return</span> (sum &amp; 0x01);</div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; }</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="comment">// setParity adjusts the color in the smallest</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="comment">// way possible so that the parity of the color</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="comment">// is now the desired value. This allows you to</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="comment">// &#39;hide&#39; one bit of information in the color.</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="comment">//</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="comment">// Ideally, we find one color channel which already</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="comment">// has data in it, and modify just that channel by one.</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="comment">// We don&#39;t want to light up a channel that&#39;s black</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="comment">// if we can avoid it, and if the pixel is &#39;grayscale&#39;,</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="comment">// (meaning that R==G==B), we modify all three channels</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="comment">// at once, to preserve the neutral hue.</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="comment">//</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="comment">// There&#39;s no such thing as a free lunch; in many cases</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="comment">// this &#39;hidden bit&#39; may actually be visible, but this</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="comment">// code makes reasonable efforts to hide it as much</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="comment">// as is reasonably possible.</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( <a class="code" href="group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8">LEDColorCorrection</a> colorcode) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; : r((colorcode &gt;&gt; 16) &amp; 0xFF), g((colorcode &gt;&gt; 8) &amp; 0xFF), b((colorcode &gt;&gt; 0) &amp; 0xFF)</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( <a class="code" href="group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9">ColorTemperature</a> colorcode) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; : r((colorcode &gt;&gt; 16) &amp; 0xFF), g((colorcode &gt;&gt; 8) &amp; 0xFF), b((colorcode &gt;&gt; 0) &amp; 0xFF)</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// allow copy construction</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>(<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; r = rhs.r;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; g = rhs.g;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; b = rhs.b;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// allow construction from HSV color</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>(<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( rhs, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">// allow assignment from one RGB struct to another</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator= (<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; r = rhs.r;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; g = rhs.g;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; b = rhs.b;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator= (<span class="keyword">const</span> uint32_t colorcode) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; r = (colorcode &gt;&gt; 16) &amp; 0xFF;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; g = (colorcode &gt;&gt; 8) &amp; 0xFF;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; b = (colorcode &gt;&gt; 0) &amp; 0xFF;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">// allow assignment from R, G, and B</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; setRGB (uint8_t nr, uint8_t ng, uint8_t nb) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; r = nr;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; g = ng;</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; b = nb;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">// allow assignment from H, S, and V</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; setHSV (uint8_t hue, uint8_t sat, uint8_t val) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <a class="code" href="struct_c_h_s_v.html">CHSV</a>(hue, sat, val), *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="comment">// allow assignment from just a Hue, saturation and value automatically at max.</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; setHue (uint8_t hue) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <a class="code" href="struct_c_h_s_v.html">CHSV</a>(hue, 255, 255), *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="comment">// allow assignment from HSV color</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator= (<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( rhs, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="comment">// allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; setColorCode (uint32_t colorcode) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; r = (colorcode &gt;&gt; 16) &amp; 0xFF;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; g = (colorcode &gt;&gt; 8) &amp; 0xFF;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; b = (colorcode &gt;&gt; 0) &amp; 0xFF;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">// add one RGB to another, saturating at 0xFF for each channel</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator+= (<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs )</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; r = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( r, rhs.r);</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; g = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( g, rhs.g);</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; b = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( b, rhs.b);</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// add a contstant to each channel, saturating at 0xFF</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="comment">// this is NOT an operator+= overload because the compiler</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="comment">// can&#39;t usefully decide when it&#39;s being passed a 32-bit</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="comment">// constant (e.g. CRGB::Red) and an 8-bit one (CRGB::Blue)</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; addToRGB (uint8_t d )</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; r = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( r, d);</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; g = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( g, d);</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; b = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( b, d);</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="comment">// subtract one RGB from another, saturating at 0x00 for each channel</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator-= (<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs )</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; r = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( r, rhs.r);</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; g = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( g, rhs.g);</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; b = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( b, rhs.b);</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="comment">// subtract a constant from each channel, saturating at 0x00</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="comment">// this is NOT an operator+= overload because the compiler</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="comment">// can&#39;t usefully decide when it&#39;s being passed a 32-bit</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="comment">// constant (e.g. CRGB::Red) and an 8-bit one (CRGB::Blue)</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; subtractFromRGB(uint8_t d )</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; {</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; r = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( r, d);</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; g = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( g, d);</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; b = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( b, d);</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// subtract a constant of &#39;1&#39; from each channel, saturating at 0x00</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator-- () <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; subtractFromRGB(1);</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">// subtract a constant of &#39;1&#39; from each channel, saturating at 0x00</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator-- (<span class="keywordtype">int</span> DUMMY_ARG) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; {</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> retval(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; --(*this);</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">return</span> retval;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="comment">// add a constant of &#39;1&#39; from each channel, saturating at 0xFF</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator++ () <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; addToRGB(1);</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// add a constant of &#39;1&#39; from each channel, saturating at 0xFF</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator++ (<span class="keywordtype">int</span> DUMMY_ARG) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> retval(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; ++(*this);</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> retval;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="comment">// divide each of the channels by a constant</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator/= (uint8_t d )</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; r /= d;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; g /= d;</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; b /= d;</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="comment">// right shift each of the channels by a constant</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator&gt;&gt;= (uint8_t d)</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; {</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; r &gt;&gt;= d;</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; g &gt;&gt;= d;</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; b &gt;&gt;= d;</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="comment">// multiply each of the channels by a constant,</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// saturating each channel at 0xFF</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator*= (uint8_t d )</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; {</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; r = <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( r, d);</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; g = <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( g, d);</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; b = <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( b, d);</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="comment">// scale down a RGB to N 256ths of it&#39;s current brightness, using</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="comment">// &#39;video&#39; dimming rules, which means that unless the scale factor is ZERO</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="comment">// each channel is guaranteed NOT to dim down to zero. If it&#39;s already</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="comment">// nonzero, it&#39;ll stay nonzero, even if that means the hue shifts a little</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="comment">// at low brightness levels.</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; nscale8_video (uint8_t scaledown )</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; {</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( r, g, b, scaledown);</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="comment">// %= is a synonym for nscale8_video. Think of it is scaling down</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="comment">// by &quot;a percentage&quot;</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator%= (uint8_t scaledown )</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; {</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( r, g, b, scaledown);</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="comment">// fadeLightBy is a synonym for nscale8_video( ..., 255-fadefactor)</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; fadeLightBy (uint8_t fadefactor )</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; {</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( r, g, b, 255 - fadefactor);</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; }</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="comment">// scale down a RGB to N 256ths of it&#39;s current brightness, using</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="comment">// &#39;plain math&#39; dimming rules, which means that if the low light levels</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="comment">// may dim all the way to 100% black.</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; nscale8 (uint8_t scaledown )</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; {</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <a class="code" href="group___scaling.html#ga39bf87e5526120889086cab19ac749b1">nscale8x3</a>( r, g, b, scaledown);</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; }</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="comment">// fadeToBlackBy is a synonym for nscale8( ..., 255-fadefactor)</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; fadeToBlackBy (uint8_t fadefactor )</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; {</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="group___scaling.html#ga39bf87e5526120889086cab19ac749b1">nscale8x3</a>( r, g, b, 255 - fadefactor);</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; }</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="comment">// &quot;or&quot; operator brings each channel up to the higher of the two values</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator|= (<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs )</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; {</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">if</span>( rhs.r &gt; r) r = rhs.r;</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">if</span>( rhs.g &gt; g) g = rhs.g;</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">if</span>( rhs.b &gt; b) b = rhs.b;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator|= (uint8_t d )</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; {</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">if</span>( d &gt; r) r = d;</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">if</span>( d &gt; g) g = d;</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span>( d &gt; b) b = d;</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="comment">// &quot;and&quot; operator brings each channel down to the lower of the two values</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator&amp;= (<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs )</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; {</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">if</span>( rhs.r &lt; r) r = rhs.r;</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">if</span>( rhs.g &lt; g) g = rhs.g;</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">if</span>( rhs.b &lt; b) b = rhs.b;</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; }</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator&amp;= (uint8_t d )</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; {</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">if</span>( d &lt; r) r = d;</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">if</span>( d &lt; g) g = d;</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">if</span>( d &lt; b) b = d;</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="comment">// this allows testing a CRGB for zero-ness</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keyword">inline</span> <span class="keyword">operator</span> bool() <span class="keyword">const</span> <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; {</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">return</span> r || g || b;</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="comment">// invert each channel</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator- ()</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; {</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> retval;</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; retval.r = 255 - r;</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; retval.g = 255 - g;</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; retval.b = 255 - b;</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">return</span> retval;</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; }</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="preprocessor">#ifdef SmartMatrix_h</span></div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keyword">operator</span> rgb24()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; rgb24 ret;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; ret.red = r;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; ret.green = g;</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; ret.blue = b;</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">return</span> ret;</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; }</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keyword">inline</span> uint8_t getLuma ( )<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="comment">//Y&#39; = 0.2126 R&#39; + 0.7152 G&#39; + 0.0722 B&#39;</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="comment">// 54 183 18 (!)</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; uint8_t luma = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( r, 54) + <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">\</a></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c"> scale8_LEAVING_R1_DIRTY</a>( g, 183) + <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">\</a></div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c"> scale8_LEAVING_R1_DIRTY</a>( b, 18);</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span> luma;</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; }</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keyword">inline</span> uint8_t getAverageLight( )<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keyword">const</span> uint8_t eightysix = 86;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; uint8_t avg = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( r, eightysix) + <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">\</a></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c"> scale8_LEAVING_R1_DIRTY</a>( g, eightysix) + <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">\</a></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c"> scale8_LEAVING_R1_DIRTY</a>( b, eightysix);</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">return</span> avg;</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> maximizeBrightness( uint8_t limit = 255 ) {</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; uint8_t max = red;</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">if</span>( green &gt; max) max = green;</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">if</span>( blue &gt; max) max = blue;</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; uint16_t factor = ((uint16_t)(limit) * 256) / max;</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; red = (red * factor) / 256;</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; green = (green * factor) / 256;</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; blue = (blue * factor) / 256;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> lerp8( <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; other, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> frac)</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; {</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> ret;</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; ret.r = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(r,other.r,frac);</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; ret.g = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(g,other.g,frac);</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; ret.b = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(b,other.b,frac);</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">return</span> ret;</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> lerp16( <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; other, <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> frac)</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; {</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> ret;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; ret.r = <a class="code" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a>(r&lt;&lt;8,other.r&lt;&lt;8,frac)&gt;&gt;8;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; ret.g = <a class="code" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a>(g&lt;&lt;8,other.g&lt;&lt;8,frac)&gt;&gt;8;</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; ret.b = <a class="code" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a>(b&lt;&lt;8,other.b&lt;&lt;8,frac)&gt;&gt;8;</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">return</span> ret;</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; }</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="comment">// getParity returns 0 or 1, depending on the</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="comment">// lowest bit of the sum of the color components.</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">inline</span> uint8_t getParity()</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; {</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; uint8_t sum = r + g + b;</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">return</span> (sum &amp; 0x01);</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; }</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="comment">// setParity adjusts the color in the smallest</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="comment">// way possible so that the parity of the color</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="comment">// is now the desired value. This allows you to</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="comment">// &#39;hide&#39; one bit of information in the color.</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="comment">// Ideally, we find one color channel which already</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="comment">// has data in it, and modify just that channel by one.</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="comment">// We don&#39;t want to light up a channel that&#39;s black</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="comment">// if we can avoid it, and if the pixel is &#39;grayscale&#39;,</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="comment">// (meaning that R==G==B), we modify all three channels</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="comment">// at once, to preserve the neutral hue.</span></div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="comment">//</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="comment">// Also, an effort is made to have make it such that</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="comment">// repeatedly setting the parity to different values</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="comment">// will not cause the color to &#39;drift&#39;. Toggling</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="comment">// the parity twice should generally result in the</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="comment">// original color again.</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="comment">//</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> setParity( uint8_t parity)</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; {</div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; uint8_t curparity = getParity();</div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">if</span>( parity == curparity) <span class="keywordflow">return</span>;</div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">if</span>( parity ) {</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="comment">// going &#39;up&#39;</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">if</span>( (b &gt; 0) &amp;&amp; (b &lt; 255)) {</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; r++;</div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; g++;</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; }</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; b++;</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( (r &gt; 0) &amp;&amp; (r &lt; 255)) {</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; r++;</div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( (g &gt; 0) &amp;&amp; (g &lt; 255)) {</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; g++;</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; r ^= 0x01;</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; g ^= 0x01;</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; }</div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; b ^= 0x01;</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; }</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="comment">// going &#39;down&#39;</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">if</span>( b &gt; 1) {</div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; r--;</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; g--;</div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; }</div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; b--;</div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( g &gt; 1) {</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; g--;</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( r &gt; 1) {</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; r--;</div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; r ^= 0x01;</div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; g ^= 0x01;</div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; }</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; b ^= 0x01;</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; }</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; }</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; }</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; AliceBlue=0xF0F8FF,</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; Amethyst=0x9966CC,</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; AntiqueWhite=0xFAEBD7,</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; Aqua=0x00FFFF,</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; Aquamarine=0x7FFFD4,</div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; Azure=0xF0FFFF,</div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; Beige=0xF5F5DC,</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; Bisque=0xFFE4C4,</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; Black=0x000000,</div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; BlanchedAlmond=0xFFEBCD,</div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; Blue=0x0000FF,</div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; BlueViolet=0x8A2BE2,</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; Brown=0xA52A2A,</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; BurlyWood=0xDEB887,</div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; CadetBlue=0x5F9EA0,</div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; Chartreuse=0x7FFF00,</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; Chocolate=0xD2691E,</div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; Coral=0xFF7F50,</div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; CornflowerBlue=0x6495ED,</div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; Cornsilk=0xFFF8DC,</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; Crimson=0xDC143C,</div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; Cyan=0x00FFFF,</div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; DarkBlue=0x00008B,</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; DarkCyan=0x008B8B,</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; DarkGoldenrod=0xB8860B,</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; DarkGray=0xA9A9A9,</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; DarkGrey=0xA9A9A9,</div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; DarkGreen=0x006400,</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; DarkKhaki=0xBDB76B,</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; DarkMagenta=0x8B008B,</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; DarkOliveGreen=0x556B2F,</div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; DarkOrange=0xFF8C00,</div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; DarkOrchid=0x9932CC,</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; DarkRed=0x8B0000,</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; DarkSalmon=0xE9967A,</div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; DarkSeaGreen=0x8FBC8F,</div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; DarkSlateBlue=0x483D8B,</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; DarkSlateGray=0x2F4F4F,</div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; DarkSlateGrey=0x2F4F4F,</div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; DarkTurquoise=0x00CED1,</div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; DarkViolet=0x9400D3,</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; DeepPink=0xFF1493,</div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; DeepSkyBlue=0x00BFFF,</div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; DimGray=0x696969,</div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; DimGrey=0x696969,</div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; DodgerBlue=0x1E90FF,</div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; FireBrick=0xB22222,</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; FloralWhite=0xFFFAF0,</div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; ForestGreen=0x228B22,</div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; Fuchsia=0xFF00FF,</div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; Gainsboro=0xDCDCDC,</div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; GhostWhite=0xF8F8FF,</div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; Gold=0xFFD700,</div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; Goldenrod=0xDAA520,</div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; Gray=0x808080,</div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; Grey=0x808080,</div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; Green=0x008000,</div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; GreenYellow=0xADFF2F,</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; Honeydew=0xF0FFF0,</div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; HotPink=0xFF69B4,</div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; IndianRed=0xCD5C5C,</div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; Indigo=0x4B0082,</div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; Ivory=0xFFFFF0,</div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; Khaki=0xF0E68C,</div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; Lavender=0xE6E6FA,</div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; LavenderBlush=0xFFF0F5,</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; LawnGreen=0x7CFC00,</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; LemonChiffon=0xFFFACD,</div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; LightBlue=0xADD8E6,</div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; LightCoral=0xF08080,</div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; LightCyan=0xE0FFFF,</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; LightGoldenrodYellow=0xFAFAD2,</div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; LightGreen=0x90EE90,</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; LightGrey=0xD3D3D3,</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; LightPink=0xFFB6C1,</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; LightSalmon=0xFFA07A,</div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; LightSeaGreen=0x20B2AA,</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; LightSkyBlue=0x87CEFA,</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; LightSlateGray=0x778899,</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; LightSlateGrey=0x778899,</div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; LightSteelBlue=0xB0C4DE,</div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; LightYellow=0xFFFFE0,</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; Lime=0x00FF00,</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; LimeGreen=0x32CD32,</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; Linen=0xFAF0E6,</div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; Magenta=0xFF00FF,</div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; Maroon=0x800000,</div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; MediumAquamarine=0x66CDAA,</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; MediumBlue=0x0000CD,</div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; MediumOrchid=0xBA55D3,</div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; MediumPurple=0x9370DB,</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; MediumSeaGreen=0x3CB371,</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; MediumSlateBlue=0x7B68EE,</div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; MediumSpringGreen=0x00FA9A,</div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; MediumTurquoise=0x48D1CC,</div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; MediumVioletRed=0xC71585,</div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; MidnightBlue=0x191970,</div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; MintCream=0xF5FFFA,</div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; MistyRose=0xFFE4E1,</div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; Moccasin=0xFFE4B5,</div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; NavajoWhite=0xFFDEAD,</div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; Navy=0x000080,</div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; OldLace=0xFDF5E6,</div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; Olive=0x808000,</div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; OliveDrab=0x6B8E23,</div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; Orange=0xFFA500,</div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; OrangeRed=0xFF4500,</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; Orchid=0xDA70D6,</div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; PaleGoldenrod=0xEEE8AA,</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; PaleGreen=0x98FB98,</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; PaleTurquoise=0xAFEEEE,</div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; PaleVioletRed=0xDB7093,</div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; PapayaWhip=0xFFEFD5,</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; PeachPuff=0xFFDAB9,</div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; Peru=0xCD853F,</div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; Pink=0xFFC0CB,</div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; Plaid=0xCC5533,</div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; Plum=0xDDA0DD,</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; PowderBlue=0xB0E0E6,</div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; Purple=0x800080,</div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; Red=0xFF0000,</div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; RosyBrown=0xBC8F8F,</div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; RoyalBlue=0x4169E1,</div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; SaddleBrown=0x8B4513,</div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; Salmon=0xFA8072,</div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; SandyBrown=0xF4A460,</div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; SeaGreen=0x2E8B57,</div>
-<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; Seashell=0xFFF5EE,</div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; Sienna=0xA0522D,</div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; Silver=0xC0C0C0,</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; SkyBlue=0x87CEEB,</div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; SlateBlue=0x6A5ACD,</div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; SlateGray=0x708090,</div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; SlateGrey=0x708090,</div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; Snow=0xFFFAFA,</div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; SpringGreen=0x00FF7F,</div>
-<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; SteelBlue=0x4682B4,</div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; Tan=0xD2B48C,</div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; Teal=0x008080,</div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; Thistle=0xD8BFD8,</div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; Tomato=0xFF6347,</div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; Turquoise=0x40E0D0,</div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; Violet=0xEE82EE,</div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; Wheat=0xF5DEB3,</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; White=0xFFFFFF,</div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; WhiteSmoke=0xF5F5F5,</div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; Yellow=0xFFFF00,</div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; YellowGreen=0x9ACD32,</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;</div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="comment">// LED RGB color that roughly approximates</span></div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="comment">// the color of incandescent fairy lights,</span></div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="comment">// assuming that you&#39;re using FastLED</span></div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="comment">// color correction on your LEDs (recommended).</span></div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; FairyLight=0xFFE42D,</div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="comment">// If you are using no color correction, use this</span></div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; FairyLightNCC=0xFF9D2A</div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;</div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; } HTMLColorCode;</div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;};</div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;</div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;</div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) bool operator== (const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; lhs, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs)</div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;{</div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keywordflow">return</span> (lhs.r == rhs.r) &amp;&amp; (lhs.g == rhs.g) &amp;&amp; (lhs.b == rhs.b);</div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;}</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="comment">// There&#39;s no such thing as a free lunch; in many cases</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="comment">// this &#39;hidden bit&#39; may actually be visible, but this</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="comment">// code makes reasonable efforts to hide it as much</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="comment">// as is reasonably possible.</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="comment">// Also, an effort is made to have make it such that</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="comment">// repeatedly setting the parity to different values</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="comment">// will not cause the color to &#39;drift&#39;. Toggling</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="comment">// the parity twice should generally result in the</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="comment">// original color again.</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> setParity( uint8_t parity)</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; {</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; uint8_t curparity = getParity();</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">if</span>( parity == curparity) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;</div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">if</span>( parity ) {</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="comment">// going &#39;up&#39;</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">if</span>( (b &gt; 0) &amp;&amp; (b &lt; 255)) {</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; r++;</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; g++;</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; }</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; b++;</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( (r &gt; 0) &amp;&amp; (r &lt; 255)) {</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; r++;</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( (g &gt; 0) &amp;&amp; (g &lt; 255)) {</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; g++;</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; r ^= 0x01;</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; g ^= 0x01;</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; }</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; b ^= 0x01;</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; }</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="comment">// going &#39;down&#39;</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">if</span>( b &gt; 1) {</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; r--;</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; g--;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; }</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; b--;</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( g &gt; 1) {</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; g--;</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( r &gt; 1) {</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; r--;</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; r ^= 0x01;</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; g ^= 0x01;</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; }</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; b ^= 0x01;</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; }</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; }</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div>
+<div class="line"><a name="l00549"></a><span class="lineno"><a class="line" href="group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99"> 549</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; AliceBlue=0xF0F8FF,</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; Amethyst=0x9966CC,</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; AntiqueWhite=0xFAEBD7,</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; Aqua=0x00FFFF,</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; Aquamarine=0x7FFFD4,</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; Azure=0xF0FFFF,</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; Beige=0xF5F5DC,</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; Bisque=0xFFE4C4,</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; Black=0x000000,</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; BlanchedAlmond=0xFFEBCD,</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; Blue=0x0000FF,</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; BlueViolet=0x8A2BE2,</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; Brown=0xA52A2A,</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; BurlyWood=0xDEB887,</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; CadetBlue=0x5F9EA0,</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; Chartreuse=0x7FFF00,</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; Chocolate=0xD2691E,</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; Coral=0xFF7F50,</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; CornflowerBlue=0x6495ED,</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; Cornsilk=0xFFF8DC,</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; Crimson=0xDC143C,</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; Cyan=0x00FFFF,</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; DarkBlue=0x00008B,</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; DarkCyan=0x008B8B,</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; DarkGoldenrod=0xB8860B,</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; DarkGray=0xA9A9A9,</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; DarkGrey=0xA9A9A9,</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; DarkGreen=0x006400,</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; DarkKhaki=0xBDB76B,</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; DarkMagenta=0x8B008B,</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; DarkOliveGreen=0x556B2F,</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; DarkOrange=0xFF8C00,</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; DarkOrchid=0x9932CC,</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; DarkRed=0x8B0000,</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; DarkSalmon=0xE9967A,</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; DarkSeaGreen=0x8FBC8F,</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; DarkSlateBlue=0x483D8B,</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; DarkSlateGray=0x2F4F4F,</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; DarkSlateGrey=0x2F4F4F,</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; DarkTurquoise=0x00CED1,</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; DarkViolet=0x9400D3,</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; DeepPink=0xFF1493,</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; DeepSkyBlue=0x00BFFF,</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; DimGray=0x696969,</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; DimGrey=0x696969,</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; DodgerBlue=0x1E90FF,</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; FireBrick=0xB22222,</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; FloralWhite=0xFFFAF0,</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; ForestGreen=0x228B22,</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; Fuchsia=0xFF00FF,</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; Gainsboro=0xDCDCDC,</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; GhostWhite=0xF8F8FF,</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; Gold=0xFFD700,</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; Goldenrod=0xDAA520,</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; Gray=0x808080,</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; Grey=0x808080,</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; Green=0x008000,</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; GreenYellow=0xADFF2F,</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; Honeydew=0xF0FFF0,</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; HotPink=0xFF69B4,</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; IndianRed=0xCD5C5C,</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; Indigo=0x4B0082,</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; Ivory=0xFFFFF0,</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; Khaki=0xF0E68C,</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; Lavender=0xE6E6FA,</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; LavenderBlush=0xFFF0F5,</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; LawnGreen=0x7CFC00,</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; LemonChiffon=0xFFFACD,</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; LightBlue=0xADD8E6,</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; LightCoral=0xF08080,</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; LightCyan=0xE0FFFF,</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; LightGoldenrodYellow=0xFAFAD2,</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; LightGreen=0x90EE90,</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; LightGrey=0xD3D3D3,</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; LightPink=0xFFB6C1,</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; LightSalmon=0xFFA07A,</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; LightSeaGreen=0x20B2AA,</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; LightSkyBlue=0x87CEFA,</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; LightSlateGray=0x778899,</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; LightSlateGrey=0x778899,</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; LightSteelBlue=0xB0C4DE,</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; LightYellow=0xFFFFE0,</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; Lime=0x00FF00,</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; LimeGreen=0x32CD32,</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; Linen=0xFAF0E6,</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; Magenta=0xFF00FF,</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; Maroon=0x800000,</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; MediumAquamarine=0x66CDAA,</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; MediumBlue=0x0000CD,</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; MediumOrchid=0xBA55D3,</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; MediumPurple=0x9370DB,</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; MediumSeaGreen=0x3CB371,</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; MediumSlateBlue=0x7B68EE,</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; MediumSpringGreen=0x00FA9A,</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; MediumTurquoise=0x48D1CC,</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; MediumVioletRed=0xC71585,</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; MidnightBlue=0x191970,</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; MintCream=0xF5FFFA,</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; MistyRose=0xFFE4E1,</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; Moccasin=0xFFE4B5,</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; NavajoWhite=0xFFDEAD,</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; Navy=0x000080,</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; OldLace=0xFDF5E6,</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; Olive=0x808000,</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; OliveDrab=0x6B8E23,</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; Orange=0xFFA500,</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; OrangeRed=0xFF4500,</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; Orchid=0xDA70D6,</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; PaleGoldenrod=0xEEE8AA,</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; PaleGreen=0x98FB98,</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; PaleTurquoise=0xAFEEEE,</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; PaleVioletRed=0xDB7093,</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; PapayaWhip=0xFFEFD5,</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; PeachPuff=0xFFDAB9,</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; Peru=0xCD853F,</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; Pink=0xFFC0CB,</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; Plaid=0xCC5533,</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; Plum=0xDDA0DD,</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; PowderBlue=0xB0E0E6,</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; Purple=0x800080,</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; Red=0xFF0000,</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; RosyBrown=0xBC8F8F,</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; RoyalBlue=0x4169E1,</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; SaddleBrown=0x8B4513,</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; Salmon=0xFA8072,</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; SandyBrown=0xF4A460,</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; SeaGreen=0x2E8B57,</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; Seashell=0xFFF5EE,</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; Sienna=0xA0522D,</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; Silver=0xC0C0C0,</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; SkyBlue=0x87CEEB,</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; SlateBlue=0x6A5ACD,</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; SlateGray=0x708090,</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; SlateGrey=0x708090,</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; Snow=0xFFFAFA,</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; SpringGreen=0x00FF7F,</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; SteelBlue=0x4682B4,</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; Tan=0xD2B48C,</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; Teal=0x008080,</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; Thistle=0xD8BFD8,</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; Tomato=0xFF6347,</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; Turquoise=0x40E0D0,</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; Violet=0xEE82EE,</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; Wheat=0xF5DEB3,</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; White=0xFFFFFF,</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; WhiteSmoke=0xF5F5F5,</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; Yellow=0xFFFF00,</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; YellowGreen=0x9ACD32,</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="comment">// LED RGB color that roughly approximates</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="comment">// the color of incandescent fairy lights,</span></div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="comment">// assuming that you&#39;re using FastLED</span></div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="comment">// color correction on your LEDs (recommended).</span></div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; FairyLight=0xFFE42D,</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="comment">// If you are using no color correction, use this</span></div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; FairyLightNCC=0xFF9D2A</div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;</div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; } <a class="code" href="group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99">HTMLColorCode</a>;</div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;};</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;</div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;</div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) bool operator!= (const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; lhs, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs)</div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="keyword">inline</span> <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) bool operator== (const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; lhs, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs)</div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;{</div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keywordflow">return</span> !(lhs == rhs);</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keywordflow">return</span> (lhs.r == rhs.r) &amp;&amp; (lhs.g == rhs.g) &amp;&amp; (lhs.b == rhs.b);</div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;}</div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;</div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;<span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) bool operator&lt; (const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; lhs, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs)</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;<span class="keyword">inline</span> <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) bool operator!= (const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; lhs, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs)</div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;{</div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; uint16_t sl, sr;</div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="keywordflow">return</span> sl &lt; sr;</div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;}</div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;</div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;<span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) bool operator&gt; (const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; lhs, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs)</div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;{</div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; uint16_t sl, sr;</div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">return</span> sl &gt; sr;</div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;}</div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;</div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) bool operator&gt;= (const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; lhs, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs)</div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;{</div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; uint16_t sl, sr;</div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keywordflow">return</span> sl &gt;= sr;</div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;}</div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;<span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) bool operator&lt;= (const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; lhs, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs)</div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;{</div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; uint16_t sl, sr;</div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">return</span> sl &lt;= sr;</div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;}</div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;</div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;</div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;inline <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator+( const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p2)</div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;{</div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( p1.r, p2.r),</div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( p1.g, p2.g),</div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( p1.b, p2.b));</div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;}</div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;</div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;inline <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator-( const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p2)</div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;{</div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( p1.r, p2.r),</div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( p1.g, p2.g),</div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( p1.b, p2.b));</div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;}</div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;</div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;inline <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator*( const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, uint8_t d)</div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;{</div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( p1.r, d),</div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( p1.g, d),</div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( p1.b, d));</div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;}</div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;</div>
-<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;inline <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator/( const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, uint8_t d)</div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;{</div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( p1.r/d, p1.g/d, p1.b/d);</div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;}</div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;</div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;</div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;inline <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator&amp;( const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p2)</div>
-<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;{</div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( p1.r &lt; p2.r ? p1.r : p2.r,</div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; p1.g &lt; p2.g ? p1.g : p2.g,</div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; p1.b &lt; p2.b ? p1.b : p2.b);</div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;}</div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;inline <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator|( const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p2)</div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;{</div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( p1.r &gt; p2.r ? p1.r : p2.r,</div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; p1.g &gt; p2.g ? p1.g : p2.g,</div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; p1.b &gt; p2.b ? p1.b : p2.b);</div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;}</div>
-<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;</div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;inline <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator%( const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, uint8_t d)</div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;{</div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> retval( p1);</div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; retval.nscale8_video( d);</div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keywordflow">return</span> retval;</div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;}</div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;</div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;</div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;</div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;<span class="comment">// Define RGB orderings</span></div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<span class="keyword">enum</span> EOrder {</div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; RGB=0012,</div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; RBG=0021,</div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; GRB=0102,</div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; GBR=0120,</div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; BRG=0201,</div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; BGR=0210</div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;};</div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;</div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;FASTLED_NAMESPACE_END</div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;</div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="keywordflow">return</span> !(lhs == rhs);</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;}</div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;</div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;<span class="keyword">inline</span> <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) bool operator&lt; (const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; lhs, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs)</div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;{</div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; uint16_t sl, sr;</div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">return</span> sl &lt; sr;</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;}</div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;<span class="keyword">inline</span> <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) bool operator&gt; (const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; lhs, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs)</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;{</div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; uint16_t sl, sr;</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="keywordflow">return</span> sl &gt; sr;</div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;}</div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;</div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;<span class="keyword">inline</span> <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) bool operator&gt;= (const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; lhs, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs)</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;{</div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; uint16_t sl, sr;</div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keywordflow">return</span> sl &gt;= sr;</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;}</div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;<span class="keyword">inline</span> <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) bool operator&lt;= (const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; lhs, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs)</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;{</div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; uint16_t sl, sr;</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">return</span> sl &lt;= sr;</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;}</div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;inline <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator+( const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p2)</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;{</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( p1.r, p2.r),</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( p1.g, p2.g),</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( p1.b, p2.b));</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;}</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;inline <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator-( const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p2)</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;{</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( p1.r, p2.r),</div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( p1.g, p2.g),</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( p1.b, p2.b));</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;}</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;</div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;inline <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator*( const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, uint8_t d)</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;{</div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( p1.r, d),</div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( p1.g, d),</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( p1.b, d));</div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;}</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;</div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;inline <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator/( const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, uint8_t d)</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;{</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( p1.r/d, p1.g/d, p1.b/d);</div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;}</div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;</div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;</div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;inline <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator&amp;( const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p2)</div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;{</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( p1.r &lt; p2.r ? p1.r : p2.r,</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; p1.g &lt; p2.g ? p1.g : p2.g,</div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; p1.b &lt; p2.b ? p1.b : p2.b);</div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;}</div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;</div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;inline <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator|( const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p2)</div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;{</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( p1.r &gt; p2.r ? p1.r : p2.r,</div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; p1.g &gt; p2.g ? p1.g : p2.g,</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; p1.b &gt; p2.b ? p1.b : p2.b);</div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;}</div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;</div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;inline <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator%( const <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, uint8_t d)</div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;{</div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> retval( p1);</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; retval.nscale8_video( d);</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">return</span> retval;</div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;}</div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;</div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;</div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;<span class="keyword">enum</span> EOrder {</div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; RGB=0012,</div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; RBG=0021,</div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; GRB=0102,</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; GBR=0120,</div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; BRG=0201,</div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; BGR=0210</div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;};</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;</div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;</div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="group___math_html_ga9d113e85065df7c9006704ea6b6dcda4"><div class="ttname"><a href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a></div><div class="ttdeci">LIB8STATIC uint8_t qmul8(uint8_t i, uint8_t j)</div><div class="ttdoc">saturating 8x8 bit multiplication, with 8 bit result </div><div class="ttdef"><b>Definition:</b> math8.h:267</div></div>
-<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdef"><b>Definition:</b> pixeltypes.h:83</div></div>
+<div class="ttc" id="group___pixeltypes_html_ga6585ae9f9a54e6a1fcb7c5f985931fb3"><div class="ttname"><a href="group___pixeltypes.html#ga6585ae9f9a54e6a1fcb7c5f985931fb3">HSVHue</a></div><div class="ttdeci">HSVHue</div><div class="ttdoc">Pre-defined hue values for HSV objects. </div><div class="ttdef"><b>Definition:</b> pixeltypes.h:76</div></div>
+<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdoc">Representation of an RGB pixel (Red, Green, Blue) </div><div class="ttdef"><b>Definition:</b> pixeltypes.h:88</div></div>
<div class="ttc" id="group__lib8tion_html_ga62ed4425400bc4140902347dc54ffb72"><div class="ttname"><a href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a></div><div class="ttdeci">LIB8STATIC uint8_t lerp8by8(uint8_t a, uint8_t b, fract8 frac)</div><div class="ttdoc">linear interpolation between two unsigned 8-bit values, with 8-bit fraction </div><div class="ttdef"><b>Definition:</b> lib8tion.h:446</div></div>
<div class="ttc" id="group__lib8tion_html_gaaf46b9f719ef3bdb574f8e967af6dbb5"><div class="ttname"><a href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a></div><div class="ttdeci">uint16_t fract16</div><div class="ttdoc">ANSI: unsigned _Fract. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:332</div></div>
<div class="ttc" id="group__lib8tion_html_ga7c02960d0f26e90054c7312e5f9a55b3"><div class="ttname"><a href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a></div><div class="ttdeci">LIB8STATIC uint16_t lerp16by16(uint16_t a, uint16_t b, fract16 frac)</div><div class="ttdoc">linear interpolation between two unsigned 16-bit values, with 16-bit fraction </div><div class="ttdef"><b>Definition:</b> lib8tion.h:463</div></div>
@@ -916,15 +913,17 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="group__lib8tion_html_ga5d6d013429a5b8a09d564d6137217644"><div class="ttname"><a href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a></div><div class="ttdeci">uint8_t fract8</div><div class="ttdoc">ANSI unsigned short _Fract. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:324</div></div>
<div class="ttc" id="group___scaling_html_ga39579fcf09743f15545fe0b831ca313c"><div class="ttname"><a href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC uint8_t scale8_LEAVING_R1_DIRTY(uint8_t i, fract8 scale)</div><div class="ttdoc">This version of scale8 does not clean up the R1 register on AVR If you are doing several &#39;scale8&#39;s in...</div><div class="ttdef"><b>Definition:</b> scale8.h:121</div></div>
<div class="ttc" id="group___color_enums_html_gadf6bcba67c9573665af20788c4431ae8"><div class="ttname"><a href="group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8">LEDColorCorrection</a></div><div class="ttdeci">LEDColorCorrection</div><div class="ttdef"><b>Definition:</b> color.h:9</div></div>
+<div class="ttc" id="group___pixeltypes_html_ga06ee0f21e1bf430ea547244f6ed4add8"><div class="ttname"><a href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a></div><div class="ttdeci">void hsv2rgb_rainbow(const CHSV &amp;hsv, CRGB &amp;rgb)</div><div class="ttdoc">Forward declaration of hsv2rgb_rainbow here, to avoid circular dependencies. </div><div class="ttdef"><b>Definition:</b> hsv2rgb.cpp:277</div></div>
<div class="ttc" id="group___scaling_html_ga572d0b441676c9d8ceb071fe8284b7e9"><div class="ttname"><a href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a></div><div class="ttdeci">LIB8STATIC void cleanup_R1()</div><div class="ttdoc">Clean up the r1 register after a series of *LEAVING_R1_DIRTY calls. </div><div class="ttdef"><b>Definition:</b> scale8.h:244</div></div>
<div class="ttc" id="group___scaling_html_ga39bf87e5526120889086cab19ac749b1"><div class="ttname"><a href="group___scaling.html#ga39bf87e5526120889086cab19ac749b1">nscale8x3</a></div><div class="ttdeci">LIB8STATIC void nscale8x3(uint8_t &amp;r, uint8_t &amp;g, uint8_t &amp;b, fract8 scale)</div><div class="ttdoc">scale three one byte values by a fourth one, which is treated as the numerator of a fraction whose de...</div><div class="ttdef"><b>Definition:</b> scale8.h:259</div></div>
+<div class="ttc" id="group___pixeltypes_html_gad47d9c821aeaaa0123d125a18ff961d5"><div class="ttname"><a href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) bool operator</div><div class="ttdoc">Do an 8byte by 8bit rotation. </div><div class="ttdef"><b>Definition:</b> fastled_delay.h:82</div></div>
<div class="ttc" id="group___color_enums_html_ga251e9e8dc2c7b981786b71706522b2a9"><div class="ttname"><a href="group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9">ColorTemperature</a></div><div class="ttdeci">ColorTemperature</div><div class="ttdef"><b>Definition:</b> color.h:31</div></div>
-<div class="ttc" id="group___bitswap_html_ga01396a2e40133293c3badab349ac99f0"><div class="ttname"><a href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) bool operator</div><div class="ttdoc">Do an 8byte by 8bit rotation. </div><div class="ttdef"><b>Definition:</b> fastled_delay.h:82</div></div>
-<div class="ttc" id="struct_c_h_s_v_html"><div class="ttname"><a href="struct_c_h_s_v.html">CHSV</a></div><div class="ttdef"><b>Definition:</b> pixeltypes.h:18</div></div>
+<div class="ttc" id="struct_c_h_s_v_html"><div class="ttname"><a href="struct_c_h_s_v.html">CHSV</a></div><div class="ttdoc">Representation of an HSV pixel (hue, saturation, value (aka brightness)). </div><div class="ttdef"><b>Definition:</b> pixeltypes.h:21</div></div>
+<div class="ttc" id="group___pixeltypes_html_gaeb40a08b7cb90c1e21bd408261558b99"><div class="ttname"><a href="group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99">CRGB::HTMLColorCode</a></div><div class="ttdeci">HTMLColorCode</div><div class="ttdoc">Predefined RGB colors. </div><div class="ttdef"><b>Definition:</b> pixeltypes.h:549</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/platforms_8h_source.html b/docs/3.1/platforms_8h_source.html
index 31125d3f..44c38b28 100644
--- a/docs/3.1/platforms_8h_source.html
+++ b/docs/3.1/platforms_8h_source.html
@@ -118,7 +118,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/power__mgt_8h_source.html b/docs/3.1/power__mgt_8h_source.html
index d9af2c3c..a19b923c 100644
--- a/docs/3.1/power__mgt_8h_source.html
+++ b/docs/3.1/power__mgt_8h_source.html
@@ -94,56 +94,50 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// Power Control setup functions</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Example:</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// set_max_power_in_volts_and_milliamps( 5, 400);</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// Power Control setup functions</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keywordtype">void</span> set_max_power_in_volts_and_milliamps( uint8_t volts, uint32_t milliamps);</div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keywordtype">void</span> set_max_power_in_milliwatts( uint32_t powerInmW);</div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keywordtype">void</span> set_max_power_indicator_LED( uint8_t pinNumber); <span class="comment">// zero = no indicator LED</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// Power Control &#39;show&#39; and &#39;delay&#39; functions</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// These are drop-in replacements for FastLED.show() and FastLED.delay()</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// In order to use these, you have to actually replace your calls to</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// FastLED.show() and FastLED.delay() with these two functions.</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">// Example:</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// // was: FastLED.show();</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// // now is:</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// show_at_max_brightness_for_power();</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keywordtype">void</span> show_at_max_brightness_for_power();</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keywordtype">void</span> delay_at_max_brightness_for_power( uint16_t ms);</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">// Power Control internal helper functions</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// calculate_unscaled_power_mW tells you how many milliwatts the current</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// LED data would draw at brightness = 255.</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// calculate_max_brightness_for_power_mW tells you the highest brightness</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// level you can use and still stay under the specified power budget. It</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// takes a &#39;target brightness&#39; which is the brightness you&#39;d ideally like</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// to use. The result from this function will be no higher than the</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// target_brightess you supply, but may be lower.</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;uint32_t calculate_unscaled_power_mW( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>* ledbuffer, uint16_t numLeds);</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// Example:</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// set_max_power_in_volts_and_milliamps( 5, 400);</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keywordtype">void</span> set_max_power_in_volts_and_milliamps( uint8_t volts, uint32_t milliamps);</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keywordtype">void</span> set_max_power_in_milliwatts( uint32_t powerInmW);</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keywordtype">void</span> set_max_power_indicator_LED( uint8_t pinNumber); <span class="comment">// zero = no indicator LED</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// Power Control &#39;show&#39; and &#39;delay&#39; functions</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">// These are drop-in replacements for FastLED.show() and FastLED.delay()</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">// In order to use these, you have to actually replace your calls to</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">// FastLED.show() and FastLED.delay() with these two functions.</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">// Example:</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">// // was: FastLED.show();</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// // now is:</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// show_at_max_brightness_for_power();</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keywordtype">void</span> show_at_max_brightness_for_power();</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keywordtype">void</span> delay_at_max_brightness_for_power( uint16_t ms);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;uint8_t calculate_max_brightness_for_power_mW( uint8_t target_brightness, uint32_t max_power_mW);</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;FASTLED_NAMESPACE_END</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// POWER_MGT_H</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdef"><b>Definition:</b> pixeltypes.h:83</div></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Power Control internal helper functions</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;uint32_t calculate_unscaled_power_mW( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>* ledbuffer, uint16_t numLeds);</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;uint8_t calculate_max_brightness_for_power_mW( uint8_t target_brightness, uint32_t max_power_mW);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment">// POWER_MGT_H</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdoc">Representation of an RGB pixel (Red, Green, Blue) </div><div class="ttdef"><b>Definition:</b> pixeltypes.h:88</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/random8_8h_source.html b/docs/3.1/random8_8h_source.html
index 0747540e..cc400df8 100644
--- a/docs/3.1/random8_8h_source.html
+++ b/docs/3.1/random8_8h_source.html
@@ -172,7 +172,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/scale8_8h_source.html b/docs/3.1/scale8_8h_source.html
index 487a39b5..a51898d0 100644
--- a/docs/3.1/scale8_8h_source.html
+++ b/docs/3.1/scale8_8h_source.html
@@ -542,7 +542,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/search/all_0.js b/docs/3.1/search/all_0.js
index 6127d55a..54b37936 100644
--- a/docs/3.1/search/all_0.js
+++ b/docs/3.1/search/all_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['_5f_5fattribute_5f_5f',['__attribute__',['../struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b',1,'PixelController::__attribute__((always_inline)) inline bool has(int n)'],['../struct_pixel_controller.html#afbe76a814e6bec02854dd4df167567b4',1,'PixelController::__attribute__((always_inline)) inline int advanceBy()'],['../struct_pixel_controller.html#a404558c7da7f3f6fae768bc45af9dc03',1,'PixelController::__attribute__((always_inline)) inline void advanceData()'],['../struct_pixel_controller.html#a900493d7e9e345d0cb6e602186151e73',1,'PixelController::__attribute__((always_inline)) inline void stepDithering()'],['../struct_pixel_controller.html#a9b0bc80097821046dbda7bbbf38dd7df',1,'PixelController::__attribute__((always_inline)) inline void preStepFirstByteDithering()'],['../group___bitswap.html#ga01396a2e40133293c3badab349ac99f0',1,'__attribute__((always_inline)) inline void swapbits8(bitswap_type in:&#160;fastled_delay.h'],['../group___bitswap.html#ga01396a2e40133293c3badab349ac99f0',1,'__attribute__((always_inline)) inline void delaycycles():&#160;fastled_delay.h'],['../group___bitswap.html#ga01396a2e40133293c3badab349ac99f0',1,'__attribute__((always_inline)) inline void delaycycles&lt;-6 &gt;():&#160;fastled_delay.h'],['../group___bitswap.html#ga01396a2e40133293c3badab349ac99f0',1,'__attribute__((always_inline)) bool operator:&#160;fastled_delay.h']]]
+ ['_5f_5fattribute_5f_5f',['__attribute__',['../struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b',1,'PixelController::__attribute__((always_inline)) inline bool has(int n)'],['../struct_pixel_controller.html#afbe76a814e6bec02854dd4df167567b4',1,'PixelController::__attribute__((always_inline)) inline int advanceBy()'],['../struct_pixel_controller.html#a404558c7da7f3f6fae768bc45af9dc03',1,'PixelController::__attribute__((always_inline)) inline void advanceData()'],['../struct_pixel_controller.html#a900493d7e9e345d0cb6e602186151e73',1,'PixelController::__attribute__((always_inline)) inline void stepDithering()'],['../struct_pixel_controller.html#a9b0bc80097821046dbda7bbbf38dd7df',1,'PixelController::__attribute__((always_inline)) inline void preStepFirstByteDithering()'],['../group___bitswap.html#ga01396a2e40133293c3badab349ac99f0',1,'__attribute__((always_inline)) inline void swapbits8(bitswap_type in:&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) inline void delaycycles():&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) inline void delaycycles&lt;-6 &gt;():&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) bool operator:&#160;fastled_delay.h']]]
];
diff --git a/docs/3.1/search/all_3.js b/docs/3.1/search/all_3.js
index 26def6a4..ed5a7c0d 100644
--- a/docs/3.1/search/all_3.js
+++ b/docs/3.1/search/all_3.js
@@ -3,6 +3,7 @@ var searchData=
['carbonarc',['CarbonArc',['../group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9aa9dab8ea30eb2a41c48956480b7014d1',1,'color.h']]],
['ceveryntimeperiods',['CEveryNTimePeriods',['../class_c_every_n_time_periods.html',1,'']]],
['cfastled',['CFastLED',['../class_c_fast_l_e_d.html',1,'']]],
+ ['chipsets',['Chipsets',['../group__chipsets.html',1,'']]],
['chsv',['CHSV',['../struct_c_h_s_v.html',1,'']]],
['chsvpalette16',['CHSVPalette16',['../class_c_h_s_v_palette16.html',1,'']]],
['chsvpalette256',['CHSVPalette256',['../class_c_h_s_v_palette256.html',1,'']]],
@@ -25,5 +26,6 @@ var searchData=
['crgb',['CRGB',['../struct_c_r_g_b.html',1,'']]],
['crgbpalette16',['CRGBPalette16',['../class_c_r_g_b_palette16.html',1,'']]],
['crgbpalette256',['CRGBPalette256',['../class_c_r_g_b_palette256.html',1,'']]],
- ['cubicwave8',['cubicwave8',['../group__lib8tion.html#ga06b04a0cf955ec107d49b76e0cb35225',1,'lib8tion.h']]]
+ ['cubicwave8',['cubicwave8',['../group__lib8tion.html#ga06b04a0cf955ec107d49b76e0cb35225',1,'lib8tion.h']]],
+ ['chsv_20and_20crgb_20type_20definitions',['CHSV and CRGB type definitions',['../group___pixeltypes.html',1,'']]]
];
diff --git a/docs/3.1/search/all_8.js b/docs/3.1/search/all_8.js
index 8318353f..56ed99e4 100644
--- a/docs/3.1/search/all_8.js
+++ b/docs/3.1/search/all_8.js
@@ -3,5 +3,8 @@ var searchData=
['halogen',['Halogen',['../group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae5ec76aa869b51e645e9f226dfee4b79',1,'color.h']]],
['head',['head',['../class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0',1,'CLEDController']]],
['highnoonsun',['HighNoonSun',['../group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76',1,'color.h']]],
- ['hours8',['hours8',['../group__lib8tion.html#ga837f5a688998f3340994613944e47d41',1,'lib8tion.h']]]
+ ['hours8',['hours8',['../group__lib8tion.html#ga837f5a688998f3340994613944e47d41',1,'lib8tion.h']]],
+ ['hsv2rgb_5frainbow',['hsv2rgb_rainbow',['../group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8',1,'hsv2rgb_rainbow(const CHSV &amp;hsv, CRGB &amp;rgb):&#160;hsv2rgb.cpp'],['../group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8',1,'hsv2rgb_rainbow(const CHSV &amp;hsv, CRGB &amp;rgb):&#160;hsv2rgb.cpp']]],
+ ['hsvhue',['HSVHue',['../group___pixeltypes.html#ga6585ae9f9a54e6a1fcb7c5f985931fb3',1,'pixeltypes.h']]],
+ ['htmlcolorcode',['HTMLColorCode',['../group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99',1,'CRGB']]]
];
diff --git a/docs/3.1/search/all_f.js b/docs/3.1/search/all_f.js
index 2791dd2b..ed1093be 100644
--- a/docs/3.1/search/all_f.js
+++ b/docs/3.1/search/all_f.js
@@ -4,5 +4,6 @@ var searchData=
['porting',['PORTING',['../md__p_o_r_t_i_n_g.html',1,'']]],
['p9813controller',['P9813Controller',['../class_p9813_controller.html',1,'']]],
['pin',['Pin',['../class_pin.html',1,'']]],
- ['pixelcontroller',['PixelController',['../struct_pixel_controller.html',1,'PixelController&lt; RGB_ORDER &gt;'],['../struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71',1,'PixelController::PixelController(const PixelController &amp;other)'],['../struct_pixel_controller.html#a81403c8810658d3c41cb210703bbfc00',1,'PixelController::PixelController(const uint8_t *d, int len, CRGB &amp;s, EDitherMode dither=BINARY_DITHER, bool advance=true, uint8_t skip=0)']]]
+ ['pixelcontroller',['PixelController',['../struct_pixel_controller.html',1,'PixelController&lt; RGB_ORDER &gt;'],['../struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71',1,'PixelController::PixelController(const PixelController &amp;other)'],['../struct_pixel_controller.html#a81403c8810658d3c41cb210703bbfc00',1,'PixelController::PixelController(const uint8_t *d, int len, CRGB &amp;s, EDitherMode dither=BINARY_DITHER, bool advance=true, uint8_t skip=0)']]],
+ ['power_20management_20functions',['Power management functions',['../group___power.html',1,'']]]
];
diff --git a/docs/3.1/search/enums_1.js b/docs/3.1/search/enums_1.js
index a1193f1b..d1e0d7b2 100644
--- a/docs/3.1/search/enums_1.js
+++ b/docs/3.1/search/enums_1.js
@@ -1,4 +1,5 @@
var searchData=
[
- ['ledcolorcorrection',['LEDColorCorrection',['../group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8',1,'color.h']]]
+ ['hsvhue',['HSVHue',['../group___pixeltypes.html#ga6585ae9f9a54e6a1fcb7c5f985931fb3',1,'pixeltypes.h']]],
+ ['htmlcolorcode',['HTMLColorCode',['../group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99',1,'CRGB']]]
];
diff --git a/docs/3.1/search/enums_2.html b/docs/3.1/search/enums_2.html
new file mode 100644
index 00000000..bff4b298
--- /dev/null
+++ b/docs/3.1/search/enums_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.9.1"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/3.1/search/enums_2.js b/docs/3.1/search/enums_2.js
new file mode 100644
index 00000000..a1193f1b
--- /dev/null
+++ b/docs/3.1/search/enums_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['ledcolorcorrection',['LEDColorCorrection',['../group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8',1,'color.h']]]
+];
diff --git a/docs/3.1/search/functions_0.js b/docs/3.1/search/functions_0.js
index 6127d55a..54b37936 100644
--- a/docs/3.1/search/functions_0.js
+++ b/docs/3.1/search/functions_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['_5f_5fattribute_5f_5f',['__attribute__',['../struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b',1,'PixelController::__attribute__((always_inline)) inline bool has(int n)'],['../struct_pixel_controller.html#afbe76a814e6bec02854dd4df167567b4',1,'PixelController::__attribute__((always_inline)) inline int advanceBy()'],['../struct_pixel_controller.html#a404558c7da7f3f6fae768bc45af9dc03',1,'PixelController::__attribute__((always_inline)) inline void advanceData()'],['../struct_pixel_controller.html#a900493d7e9e345d0cb6e602186151e73',1,'PixelController::__attribute__((always_inline)) inline void stepDithering()'],['../struct_pixel_controller.html#a9b0bc80097821046dbda7bbbf38dd7df',1,'PixelController::__attribute__((always_inline)) inline void preStepFirstByteDithering()'],['../group___bitswap.html#ga01396a2e40133293c3badab349ac99f0',1,'__attribute__((always_inline)) inline void swapbits8(bitswap_type in:&#160;fastled_delay.h'],['../group___bitswap.html#ga01396a2e40133293c3badab349ac99f0',1,'__attribute__((always_inline)) inline void delaycycles():&#160;fastled_delay.h'],['../group___bitswap.html#ga01396a2e40133293c3badab349ac99f0',1,'__attribute__((always_inline)) inline void delaycycles&lt;-6 &gt;():&#160;fastled_delay.h'],['../group___bitswap.html#ga01396a2e40133293c3badab349ac99f0',1,'__attribute__((always_inline)) bool operator:&#160;fastled_delay.h']]]
+ ['_5f_5fattribute_5f_5f',['__attribute__',['../struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b',1,'PixelController::__attribute__((always_inline)) inline bool has(int n)'],['../struct_pixel_controller.html#afbe76a814e6bec02854dd4df167567b4',1,'PixelController::__attribute__((always_inline)) inline int advanceBy()'],['../struct_pixel_controller.html#a404558c7da7f3f6fae768bc45af9dc03',1,'PixelController::__attribute__((always_inline)) inline void advanceData()'],['../struct_pixel_controller.html#a900493d7e9e345d0cb6e602186151e73',1,'PixelController::__attribute__((always_inline)) inline void stepDithering()'],['../struct_pixel_controller.html#a9b0bc80097821046dbda7bbbf38dd7df',1,'PixelController::__attribute__((always_inline)) inline void preStepFirstByteDithering()'],['../group___bitswap.html#ga01396a2e40133293c3badab349ac99f0',1,'__attribute__((always_inline)) inline void swapbits8(bitswap_type in:&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) inline void delaycycles():&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) inline void delaycycles&lt;-6 &gt;():&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) bool operator:&#160;fastled_delay.h']]]
];
diff --git a/docs/3.1/search/functions_8.js b/docs/3.1/search/functions_8.js
index 0fd2e25a..e0606f7c 100644
--- a/docs/3.1/search/functions_8.js
+++ b/docs/3.1/search/functions_8.js
@@ -1,5 +1,6 @@
var searchData=
[
['head',['head',['../class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0',1,'CLEDController']]],
- ['hours8',['hours8',['../group__lib8tion.html#ga837f5a688998f3340994613944e47d41',1,'lib8tion.h']]]
+ ['hours8',['hours8',['../group__lib8tion.html#ga837f5a688998f3340994613944e47d41',1,'lib8tion.h']]],
+ ['hsv2rgb_5frainbow',['hsv2rgb_rainbow',['../group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8',1,'hsv2rgb_rainbow(const CHSV &amp;hsv, CRGB &amp;rgb):&#160;hsv2rgb.cpp'],['../group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8',1,'hsv2rgb_rainbow(const CHSV &amp;hsv, CRGB &amp;rgb):&#160;hsv2rgb.cpp']]]
];
diff --git a/docs/3.1/search/groups_1.js b/docs/3.1/search/groups_1.js
index c55c2b7e..78c29c67 100644
--- a/docs/3.1/search/groups_1.js
+++ b/docs/3.1/search/groups_1.js
@@ -1,5 +1,7 @@
var searchData=
[
+ ['chipsets',['Chipsets',['../group__chipsets.html',1,'']]],
['color_20correction_2ftemperature',['Color correction/temperature',['../group___color_enums.html',1,'']]],
- ['color_20utility_20functions',['Color utility functions',['../group___colorutils.html',1,'']]]
+ ['color_20utility_20functions',['Color utility functions',['../group___colorutils.html',1,'']]],
+ ['chsv_20and_20crgb_20type_20definitions',['CHSV and CRGB type definitions',['../group___pixeltypes.html',1,'']]]
];
diff --git a/docs/3.1/search/groups_5.js b/docs/3.1/search/groups_5.js
index 99ca0c3d..4a4d1711 100644
--- a/docs/3.1/search/groups_5.js
+++ b/docs/3.1/search/groups_5.js
@@ -1,4 +1,5 @@
var searchData=
[
- ['pre_2ddefined_20color_20palletes',['Pre-defined color palletes',['../group___colorpalletes.html',1,'']]]
+ ['pre_2ddefined_20color_20palletes',['Pre-defined color palletes',['../group___colorpalletes.html',1,'']]],
+ ['power_20management_20functions',['Power management functions',['../group___power.html',1,'']]]
];
diff --git a/docs/3.1/search/searchdata.js b/docs/3.1/search/searchdata.js
index 2fe9e1af..ade48478 100644
--- a/docs/3.1/search/searchdata.js
+++ b/docs/3.1/search/searchdata.js
@@ -6,7 +6,7 @@ var indexSectionsWithContent =
3: "_abcdefghilmnopqrst",
4: "fr",
5: "afqs",
- 6: "cl",
+ 6: "chl",
7: "cdhotu",
8: "bcdfnps",
9: "fprt"
diff --git a/docs/3.1/struct_c_h_s_v-members.html b/docs/3.1/struct_c_h_s_v-members.html
index ca85900a..cd3db77c 100644
--- a/docs/3.1/struct_c_h_s_v-members.html
+++ b/docs/3.1/struct_c_h_s_v-members.html
@@ -109,7 +109,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/struct_c_h_s_v.html b/docs/3.1/struct_c_h_s_v.html
index 2c3c7397..06b96a65 100644
--- a/docs/3.1/struct_c_h_s_v.html
+++ b/docs/3.1/struct_c_h_s_v.html
@@ -90,23 +90,28 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="struct_c_h_s_v-members.html">List of all members</a> </div>
<div class="headertitle">
-<div class="title">CHSV Struct Reference</div> </div>
+<div class="title">CHSV Struct Reference<div class="ingroups"><a class="el" href="group___pixeltypes.html">CHSV and CRGB type definitions</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Representation of an HSV pixel (hue, saturation, value (aka brightness)).
+ <a href="struct_c_h_s_v.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="pixeltypes_8h_source.html">pixeltypes.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1cae6431597acc31363c47748da6f32d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1cae6431597acc31363c47748da6f32d"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>CHSV</b> (uint8_t ih, uint8_t is, uint8_t iv) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CHSV</b> (uint8_t ih, uint8_t is, uint8_t iv) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a1cae6431597acc31363c47748da6f32d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a077b49ca9dfa160ea6321e633efd7421"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a077b49ca9dfa160ea6321e633efd7421"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>CHSV</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;rhs) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CHSV</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;rhs) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a077b49ca9dfa160ea6321e633efd7421"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62abbb334cc9f4f839a133e949968297"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a62abbb334cc9f4f839a133e949968297"></a>
-<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;rhs) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;rhs) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a62abbb334cc9f4f839a133e949968297"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af43ae960c609ddb5ccde16693aec0a6b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af43ae960c609ddb5ccde16693aec0a6b"></a>
-<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>setHSV</b> (uint8_t ih, uint8_t is, uint8_t iv) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>setHSV</b> (uint8_t ih, uint8_t is, uint8_t iv) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:af43ae960c609ddb5ccde16693aec0a6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
@@ -159,13 +164,15 @@ union {</td></tr>
<tr class="memitem:a75981833b6ce61cc7fdcf1d7d816ec29"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
<tr class="separator:a75981833b6ce61cc7fdcf1d7d816ec29"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<hr/>The documentation for this struct was generated from the following file:<ul>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Representation of an HSV pixel (hue, saturation, value (aka brightness)). </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="pixeltypes_8h_source.html">pixeltypes.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/struct_c_r_g_b-members.html b/docs/3.1/struct_c_r_g_b-members.html
index 5a18c190..0896b376 100644
--- a/docs/3.1/struct_c_r_g_b-members.html
+++ b/docs/3.1/struct_c_r_g_b-members.html
@@ -171,7 +171,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Grey</b> enum value (defined in <a class="el" href="struct_c_r_g_b.html">CRGB</a>)</td><td class="entry"><a class="el" href="struct_c_r_g_b.html">CRGB</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>Honeydew</b> enum value (defined in <a class="el" href="struct_c_r_g_b.html">CRGB</a>)</td><td class="entry"><a class="el" href="struct_c_r_g_b.html">CRGB</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>HotPink</b> enum value (defined in <a class="el" href="struct_c_r_g_b.html">CRGB</a>)</td><td class="entry"><a class="el" href="struct_c_r_g_b.html">CRGB</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>HTMLColorCode</b> enum name (defined in <a class="el" href="struct_c_r_g_b.html">CRGB</a>)</td><td class="entry"><a class="el" href="struct_c_r_g_b.html">CRGB</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99">HTMLColorCode</a> enum name</td><td class="entry"><a class="el" href="struct_c_r_g_b.html">CRGB</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>IndianRed</b> enum value (defined in <a class="el" href="struct_c_r_g_b.html">CRGB</a>)</td><td class="entry"><a class="el" href="struct_c_r_g_b.html">CRGB</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>Indigo</b> enum value (defined in <a class="el" href="struct_c_r_g_b.html">CRGB</a>)</td><td class="entry"><a class="el" href="struct_c_r_g_b.html">CRGB</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Ivory</b> enum value (defined in <a class="el" href="struct_c_r_g_b.html">CRGB</a>)</td><td class="entry"><a class="el" href="struct_c_r_g_b.html">CRGB</a></td><td class="entry"></td></tr>
@@ -299,7 +299,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/struct_c_r_g_b.html b/docs/3.1/struct_c_r_g_b.html
index dbe309bd..88204551 100644
--- a/docs/3.1/struct_c_r_g_b.html
+++ b/docs/3.1/struct_c_r_g_b.html
@@ -91,13 +91,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="struct_c_r_g_b-members.html">List of all members</a> </div>
<div class="headertitle">
-<div class="title">CRGB Struct Reference</div> </div>
+<div class="title">CRGB Struct Reference<div class="ingroups"><a class="el" href="group___pixeltypes.html">CHSV and CRGB type definitions</a></div></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Representation of an RGB pixel (Red, Green, Blue)
+ <a href="struct_c_r_g_b.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="pixeltypes_8h_source.html">pixeltypes.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
-<tr class="memitem:aeb40a08b7cb90c1e21bd408261558b99"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb40a08b7cb90c1e21bd408261558b99"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>HTMLColorCode</b> { <br />
+<tr class="memitem:gaeb40a08b7cb90c1e21bd408261558b99"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeb40a08b7cb90c1e21bd408261558b99"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99">HTMLColorCode</a> { <br />
&#160;&#160;<b>AliceBlue</b> =0xF0F8FF,
<b>Amethyst</b> =0x9966CC,
<b>AntiqueWhite</b> =0xFAEBD7,
@@ -287,54 +292,55 @@ Public Types</h2></td></tr>
<b>FairyLightNCC</b> =0xFF9D2A
<br />
}</td></tr>
-<tr class="separator:aeb40a08b7cb90c1e21bd408261558b99"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memdesc:gaeb40a08b7cb90c1e21bd408261558b99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Predefined RGB colors. <br /></td></tr>
+<tr class="separator:gaeb40a08b7cb90c1e21bd408261558b99"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a387c1484960be0f72a87c3369cdbba26"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a387c1484960be0f72a87c3369cdbba26"></a>
-uint8_t &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+uint8_t &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a387c1484960be0f72a87c3369cdbba26"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4a041a5ad28b9ffb3a69fa88a0bd635"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa4a041a5ad28b9ffb3a69fa88a0bd635"></a>
-const uint8_t &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) const <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+const uint8_t &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) const <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:aa4a041a5ad28b9ffb3a69fa88a0bd635"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac97afb676b3be14769ede58a55b1078a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac97afb676b3be14769ede58a55b1078a"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>CRGB</b> (uint8_t ir, uint8_t ig, uint8_t ib) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGB</b> (uint8_t ir, uint8_t ig, uint8_t ib) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ac97afb676b3be14769ede58a55b1078a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae912836f41dd2979ade6188ab0446fcf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae912836f41dd2979ade6188ab0446fcf"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>CRGB</b> (uint32_t colorcode) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGB</b> (uint32_t colorcode) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ae912836f41dd2979ade6188ab0446fcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d12a1fba2712ba1153f5b73da6a3e3d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d12a1fba2712ba1153f5b73da6a3e3d"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>CRGB</b> (<a class="el" href="group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8">LEDColorCorrection</a> colorcode) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGB</b> (<a class="el" href="group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8">LEDColorCorrection</a> colorcode) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a7d12a1fba2712ba1153f5b73da6a3e3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86a495b2fb767196fb6b9e1d202a97c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a86a495b2fb767196fb6b9e1d202a97c8"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>CRGB</b> (<a class="el" href="group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9">ColorTemperature</a> colorcode) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGB</b> (<a class="el" href="group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9">ColorTemperature</a> colorcode) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a86a495b2fb767196fb6b9e1d202a97c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ac0b64fb80dde1dc28e74b60da00b82"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6ac0b64fb80dde1dc28e74b60da00b82"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>CRGB</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;rhs) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGB</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;rhs) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a6ac0b64fb80dde1dc28e74b60da00b82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9edaa43d7f1d6777b543c08b14844f13"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9edaa43d7f1d6777b543c08b14844f13"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>CRGB</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;rhs) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGB</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;rhs) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a9edaa43d7f1d6777b543c08b14844f13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15ece8b6b3b8a54e61716cd2f0ecfd79"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a15ece8b6b3b8a54e61716cd2f0ecfd79"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;rhs) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;rhs) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a15ece8b6b3b8a54e61716cd2f0ecfd79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a296fb2b628e6323d78fabcb6feee60ad"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a296fb2b628e6323d78fabcb6feee60ad"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const uint32_t colorcode) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const uint32_t colorcode) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a296fb2b628e6323d78fabcb6feee60ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a838b22bb1632166760934935a309e9d9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a838b22bb1632166760934935a309e9d9"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>setRGB</b> (uint8_t nr, uint8_t ng, uint8_t nb) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>setRGB</b> (uint8_t nr, uint8_t ng, uint8_t nb) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a838b22bb1632166760934935a309e9d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac53fdb8ec5dc5b8c16904d971106ad75"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac53fdb8ec5dc5b8c16904d971106ad75"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>setHSV</b> (uint8_t hue, uint8_t sat, uint8_t val) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>setHSV</b> (uint8_t hue, uint8_t sat, uint8_t val) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ac53fdb8ec5dc5b8c16904d971106ad75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed04286b07335deede64d6de109a7312"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aed04286b07335deede64d6de109a7312"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>setHue</b> (uint8_t hue) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>setHue</b> (uint8_t hue) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:aed04286b07335deede64d6de109a7312"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a959221eefd8848005cf726d3acd7a1d0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a959221eefd8848005cf726d3acd7a1d0"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;rhs) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;rhs) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a959221eefd8848005cf726d3acd7a1d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee58e5c4ced4d42332280252d7e516d5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aee58e5c4ced4d42332280252d7e516d5"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>setColorCode</b> (uint32_t colorcode) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>setColorCode</b> (uint32_t colorcode) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:aee58e5c4ced4d42332280252d7e516d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb47a8179f4124ba90c701b467e705ce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adb47a8179f4124ba90c701b467e705ce"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator+=</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;rhs)</td></tr>
@@ -349,16 +355,16 @@ const uint8_t &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operat
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>subtractFromRGB</b> (uint8_t d)</td></tr>
<tr class="separator:af5e0ce520027b5bc5b8aa106c113119c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a218446cd8788c0659c5ad2b4c16c425c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a218446cd8788c0659c5ad2b4c16c425c"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator--</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator--</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a218446cd8788c0659c5ad2b4c16c425c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afca6a189ce1da99d897f755b1ca16638"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afca6a189ce1da99d897f755b1ca16638"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator--</b> (int DUMMY_ARG) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator--</b> (int DUMMY_ARG) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:afca6a189ce1da99d897f755b1ca16638"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2a226518db12ea874e182a7d311c2e3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac2a226518db12ea874e182a7d311c2e3"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator++</b> () <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator++</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ac2a226518db12ea874e182a7d311c2e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c63d3f14b33017ff037309324d93169"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2c63d3f14b33017ff037309324d93169"></a>
-<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator++</b> (int DUMMY_ARG) <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator++</b> (int DUMMY_ARG) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a2c63d3f14b33017ff037309324d93169"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa630fb7918dc81f255525ee90152e62f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa630fb7918dc81f255525ee90152e62f"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator/=</b> (uint8_t d)</td></tr>
@@ -397,7 +403,7 @@ const uint8_t &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operat
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator&amp;=</b> (uint8_t d)</td></tr>
<tr class="separator:a29d80828c7e4dfc2107b38dd51496234"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa09bbdf1b04eac9fb792ca4cbf9fd74c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa09bbdf1b04eac9fb792ca4cbf9fd74c"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>operator bool</b> () const <a class="el" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</td></tr>
+&#160;</td><td class="memItemRight" valign="bottom"><b>operator bool</b> () const <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:aa09bbdf1b04eac9fb792ca4cbf9fd74c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af32e6bf80075fd5b3d8195fff790a036"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af32e6bf80075fd5b3d8195fff790a036"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator-</b> ()</td></tr>
@@ -471,13 +477,15 @@ union {</td></tr>
<tr class="memitem:a13feb5e21536c8f16ba7dcab8ba8a190"><td class="memItemLeft" valign="top">};&#160;</td><td class="memItemRight" valign="bottom"></td></tr>
<tr class="separator:a13feb5e21536c8f16ba7dcab8ba8a190"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<hr/>The documentation for this struct was generated from the following file:<ul>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Representation of an RGB pixel (Red, Green, Blue) </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="pixeltypes_8h_source.html">pixeltypes.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/struct_multi_pixel_controller-members.html b/docs/3.1/struct_multi_pixel_controller-members.html
index a5156fe9..65d5638c 100644
--- a/docs/3.1/struct_multi_pixel_controller-members.html
+++ b/docs/3.1/struct_multi_pixel_controller-members.html
@@ -143,7 +143,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/struct_multi_pixel_controller.html b/docs/3.1/struct_multi_pixel_controller.html
index 6d881a39..65de22d5 100644
--- a/docs/3.1/struct_multi_pixel_controller.html
+++ b/docs/3.1/struct_multi_pixel_controller.html
@@ -98,7 +98,7 @@ Collaboration diagram for MultiPixelController&lt; LANES, MASK, RGB_ORDER &gt;:<
<div class="dyncontent">
<div class="center"><img src="struct_multi_pixel_controller__coll__graph.png" border="0" usemap="#_multi_pixel_controller_3_01_l_a_n_e_s_00_01_m_a_s_k_00_01_r_g_b___o_r_d_e_r_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_multi_pixel_controller_3_01_l_a_n_e_s_00_01_m_a_s_k_00_01_r_g_b___o_r_d_e_r_01_4_coll__map" id="_multi_pixel_controller_3_01_l_a_n_e_s_00_01_m_a_s_k_00_01_r_g_b___o_r_d_e_r_01_4_coll__map">
-<area shape="rect" id="node2" href="struct_c_r_g_b.html" title="CRGB" alt="" coords="87,5,147,32"/></map>
+<area shape="rect" id="node2" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="87,5,147,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -268,7 +268,7 @@ int uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>scale</b> { re
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/struct_multi_pixel_controller__coll__graph.map b/docs/3.1/struct_multi_pixel_controller__coll__graph.map
index f244491f..89a43b3f 100644
--- a/docs/3.1/struct_multi_pixel_controller__coll__graph.map
+++ b/docs/3.1/struct_multi_pixel_controller__coll__graph.map
@@ -1,3 +1,3 @@
<map id="MultiPixelController&lt; LANES, MASK, RGB_ORDER &gt;" name="MultiPixelController&lt; LANES, MASK, RGB_ORDER &gt;">
-<area shape="rect" id="node2" href="$struct_c_r_g_b.html" title="CRGB" alt="" coords="87,5,147,32"/>
+<area shape="rect" id="node2" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="87,5,147,32"/>
</map>
diff --git a/docs/3.1/struct_multi_pixel_controller__coll__graph.md5 b/docs/3.1/struct_multi_pixel_controller__coll__graph.md5
index 484c9873..cbd67afb 100644
--- a/docs/3.1/struct_multi_pixel_controller__coll__graph.md5
+++ b/docs/3.1/struct_multi_pixel_controller__coll__graph.md5
@@ -1 +1 @@
-61d977013f233d056958dce8c6307e72 \ No newline at end of file
+9c67f536c85f38df195d1e7dda9d2708 \ No newline at end of file
diff --git a/docs/3.1/struct_pixel_controller-members.html b/docs/3.1/struct_pixel_controller-members.html
index 704d79c1..569c3d71 100644
--- a/docs/3.1/struct_pixel_controller-members.html
+++ b/docs/3.1/struct_pixel_controller-members.html
@@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/struct_pixel_controller.html b/docs/3.1/struct_pixel_controller.html
index 490d2651..7370a36e 100644
--- a/docs/3.1/struct_pixel_controller.html
+++ b/docs/3.1/struct_pixel_controller.html
@@ -103,7 +103,7 @@ Collaboration diagram for PixelController&lt; RGB_ORDER &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="struct_pixel_controller__coll__graph.png" border="0" usemap="#_pixel_controller_3_01_r_g_b___o_r_d_e_r_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_pixel_controller_3_01_r_g_b___o_r_d_e_r_01_4_coll__map" id="_pixel_controller_3_01_r_g_b___o_r_d_e_r_01_4_coll__map">
-<area shape="rect" id="node2" href="struct_c_r_g_b.html" title="CRGB" alt="" coords="50,5,109,32"/></map>
+<area shape="rect" id="node2" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="50,5,109,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -302,7 +302,7 @@ template&lt;EOrder RGB_ORDER&gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/struct_pixel_controller__coll__graph.map b/docs/3.1/struct_pixel_controller__coll__graph.map
index 32cb74ad..4fcc503a 100644
--- a/docs/3.1/struct_pixel_controller__coll__graph.map
+++ b/docs/3.1/struct_pixel_controller__coll__graph.map
@@ -1,3 +1,3 @@
<map id="PixelController&lt; RGB_ORDER &gt;" name="PixelController&lt; RGB_ORDER &gt;">
-<area shape="rect" id="node2" href="$struct_c_r_g_b.html" title="CRGB" alt="" coords="50,5,109,32"/>
+<area shape="rect" id="node2" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="50,5,109,32"/>
</map>
diff --git a/docs/3.1/struct_pixel_controller__coll__graph.md5 b/docs/3.1/struct_pixel_controller__coll__graph.md5
index 0748f30e..171bff77 100644
--- a/docs/3.1/struct_pixel_controller__coll__graph.md5
+++ b/docs/3.1/struct_pixel_controller__coll__graph.md5
@@ -1 +1 @@
-c97168bcfc5680ee3fd8d3adec522d99 \ No newline at end of file
+0f02aaba6831ab2d8c77a90d7f085f32 \ No newline at end of file
diff --git a/docs/3.1/structsub4-members.html b/docs/3.1/structsub4-members.html
index d873e8fc..782e52d8 100644
--- a/docs/3.1/structsub4-members.html
+++ b/docs/3.1/structsub4-members.html
@@ -127,7 +127,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/structsub4.html b/docs/3.1/structsub4.html
index e0b17ee4..2acbcf0e 100644
--- a/docs/3.1/structsub4.html
+++ b/docs/3.1/structsub4.html
@@ -205,7 +205,7 @@ uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>d7</b>:1</td></tr
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/todo.html b/docs/3.1/todo.html
index b31dbe36..95cc4ff7 100644
--- a/docs/3.1/todo.html
+++ b/docs/3.1/todo.html
@@ -94,7 +94,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/trig8_8h_source.html b/docs/3.1/trig8_8h_source.html
index a27d0fb0..5a84b587 100644
--- a/docs/3.1/trig8_8h_source.html
+++ b/docs/3.1/trig8_8h_source.html
@@ -304,7 +304,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/union_i_e_e_e754binary32__t-members.html b/docs/3.1/union_i_e_e_e754binary32__t-members.html
index 91c6c79e..63004fb8 100644
--- a/docs/3.1/union_i_e_e_e754binary32__t-members.html
+++ b/docs/3.1/union_i_e_e_e754binary32__t-members.html
@@ -107,7 +107,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/union_i_e_e_e754binary32__t.html b/docs/3.1/union_i_e_e_e754binary32__t.html
index b9583fc9..e1b80e9f 100644
--- a/docs/3.1/union_i_e_e_e754binary32__t.html
+++ b/docs/3.1/union_i_e_e_e754binary32__t.html
@@ -157,7 +157,7 @@ struct {</td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/union_t_r_g_b_gradient_palette_entry_union-members.html b/docs/3.1/union_t_r_g_b_gradient_palette_entry_union-members.html
index 5029cceb..b16c3d85 100644
--- a/docs/3.1/union_t_r_g_b_gradient_palette_entry_union-members.html
+++ b/docs/3.1/union_t_r_g_b_gradient_palette_entry_union-members.html
@@ -101,7 +101,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/union_t_r_g_b_gradient_palette_entry_union.html b/docs/3.1/union_t_r_g_b_gradient_palette_entry_union.html
index 7129d631..fd2ce9c1 100644
--- a/docs/3.1/union_t_r_g_b_gradient_palette_entry_union.html
+++ b/docs/3.1/union_t_r_g_b_gradient_palette_entry_union.html
@@ -124,7 +124,7 @@ uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>bytes</b> [4]</td>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/unionbitswap__type-members.html b/docs/3.1/unionbitswap__type-members.html
index 659e7e87..493bb94a 100644
--- a/docs/3.1/unionbitswap__type-members.html
+++ b/docs/3.1/unionbitswap__type-members.html
@@ -99,7 +99,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/unionbitswap__type.html b/docs/3.1/unionbitswap__type.html
index 1cd10ed4..f6c59ff0 100644
--- a/docs/3.1/unionbitswap__type.html
+++ b/docs/3.1/unionbitswap__type.html
@@ -132,7 +132,7 @@ struct {</td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/unionjust8bits-members.html b/docs/3.1/unionjust8bits-members.html
index 438d2e1a..9571050a 100644
--- a/docs/3.1/unionjust8bits-members.html
+++ b/docs/3.1/unionjust8bits-members.html
@@ -104,7 +104,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/unionjust8bits.html b/docs/3.1/unionjust8bits.html
index 90bf0219..f78283f9 100644
--- a/docs/3.1/unionjust8bits.html
+++ b/docs/3.1/unionjust8bits.html
@@ -140,7 +140,7 @@ struct {</td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/uniont_bytes_for_long-members.html b/docs/3.1/uniont_bytes_for_long-members.html
index 8f52a866..12954ec5 100644
--- a/docs/3.1/uniont_bytes_for_long-members.html
+++ b/docs/3.1/uniont_bytes_for_long-members.html
@@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
diff --git a/docs/3.1/uniont_bytes_for_long.html b/docs/3.1/uniont_bytes_for_long.html
index 104f5546..b083bd54 100644
--- a/docs/3.1/uniont_bytes_for_long.html
+++ b/docs/3.1/uniont_bytes_for_long.html
@@ -108,7 +108,7 @@ uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>raw</b> [4]</td></
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 22:46:45 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Mon Aug 10 2015 23:02:36 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>