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-11-12 02:11:15 +0300
committerDaniel Garcia <danielgarcia@gmail.com>2015-11-12 02:11:15 +0300
commit61281475063f7c593c4369cdf61ec51ffd06ff12 (patch)
tree80fa32fdec457639d3cf4235971000e5c626e16c
parent6061e1b06eb99dcb927bbbc652ba2956652fa325 (diff)
Updating 3.1 docs
-rw-r--r--docs/3.1/_fast_l_e_d_8h.html15
-rw-r--r--docs/3.1/_fast_l_e_d_8h_source.html753
-rw-r--r--docs/3.1/annotated.html91
-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.html10
-rw-r--r--docs/3.1/chipsets_8h_source.html701
-rw-r--r--docs/3.1/class_a_p_a102_controller-members.html69
-rw-r--r--docs/3.1/class_a_p_a102_controller.html13
-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.html4
-rw-r--r--docs/3.1/class_c_fast_l_e_d.html83
-rw-r--r--docs/3.1/class_c_h_s_v_palette16-members.html8
-rw-r--r--docs/3.1/class_c_h_s_v_palette16.html8
-rw-r--r--docs/3.1/class_c_h_s_v_palette256-members.html10
-rw-r--r--docs/3.1/class_c_h_s_v_palette256.html8
-rw-r--r--docs/3.1/class_c_l_e_d_controller-members.html69
-rw-r--r--docs/3.1/class_c_l_e_d_controller.html13
-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.html12
-rw-r--r--docs/3.1/class_c_r_g_b_palette16.html8
-rw-r--r--docs/3.1/class_c_r_g_b_palette256-members.html14
-rw-r--r--docs/3.1/class_c_r_g_b_palette256.html8
-rw-r--r--docs/3.1/class_d_a_t_a___n_o_p-members.html4
-rw-r--r--docs/3.1/class_d_a_t_a___n_o_p.html8
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l-members.html69
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l.html13
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e-members.html69
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e.html13
-rw-r--r--docs/3.1/class_d_m_x_serial_controller-members.html69
-rw-r--r--docs/3.1/class_d_m_x_serial_controller.html13
-rw-r--r--docs/3.1/class_d_m_x_simple_controller-members.html69
-rw-r--r--docs/3.1/class_d_m_x_simple_controller.html13
-rw-r--r--docs/3.1/class_fast_pin-members.html22
-rw-r--r--docs/3.1/class_fast_pin.html50
-rw-r--r--docs/3.1/class_fast_pin_b_b-members.html22
-rw-r--r--docs/3.1/class_fast_pin_b_b.html50
-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.html2
-rw-r--r--docs/3.1/class_g_w6205_controller800_khz.html2
-rw-r--r--docs/3.1/class_input_pin-members.html2
-rw-r--r--docs/3.1/class_input_pin.html2
-rw-r--r--docs/3.1/class_l_p_d1886.html2
-rw-r--r--docs/3.1/class_l_p_d1886_controller1250_khz.html2
-rw-r--r--docs/3.1/class_l_p_d8806_controller-members.html71
-rw-r--r--docs/3.1/class_l_p_d8806_controller.html13
-rw-r--r--docs/3.1/class_n_e_o_p_i_x_e_l.html2
-rw-r--r--docs/3.1/class_n_o_p_s_p_i_output-members.html118
-rw-r--r--docs/3.1/class_n_o_p_s_p_i_output.html183
-rw-r--r--docs/3.1/class_output_pin-members.html2
-rw-r--r--docs/3.1/class_output_pin.html2
-rw-r--r--docs/3.1/class_p9813_controller-members.html71
-rw-r--r--docs/3.1/class_p9813_controller.html13
-rw-r--r--docs/3.1/class_p_l9823.html117
-rw-r--r--docs/3.1/class_p_l9823__coll__graph.map3
-rw-r--r--docs/3.1/class_p_l9823__coll__graph.md51
-rw-r--r--docs/3.1/class_p_l9823__coll__graph.pngbin0 -> 25731 bytes
-rw-r--r--docs/3.1/class_p_l9823__inherit__graph.map3
-rw-r--r--docs/3.1/class_p_l9823__inherit__graph.md51
-rw-r--r--docs/3.1/class_p_l9823__inherit__graph.pngbin0 -> 25731 bytes
-rw-r--r--docs/3.1/class_p_l9823_controller.html117
-rw-r--r--docs/3.1/class_p_l9823_controller__coll__graph.map2
-rw-r--r--docs/3.1/class_p_l9823_controller__coll__graph.md51
-rw-r--r--docs/3.1/class_p_l9823_controller__coll__graph.pngbin0 -> 19276 bytes
-rw-r--r--docs/3.1/class_p_l9823_controller__inherit__graph.map3
-rw-r--r--docs/3.1/class_p_l9823_controller__inherit__graph.md51
-rw-r--r--docs/3.1/class_p_l9823_controller__inherit__graph.pngbin0 -> 25711 bytes
-rw-r--r--docs/3.1/class_pin-members.html2
-rw-r--r--docs/3.1/class_pin.html2
-rw-r--r--docs/3.1/class_r_e_f_hardware_s_p_i_output-members.html118
-rw-r--r--docs/3.1/class_r_e_f_hardware_s_p_i_output.html162
-rw-r--r--docs/3.1/class_s_k6812.html117
-rw-r--r--docs/3.1/class_s_k6812__coll__graph.map3
-rw-r--r--docs/3.1/class_s_k6812__coll__graph.md51
-rw-r--r--docs/3.1/class_s_k6812__coll__graph.pngbin0 -> 25788 bytes
-rw-r--r--docs/3.1/class_s_k6812__inherit__graph.map3
-rw-r--r--docs/3.1/class_s_k6812__inherit__graph.md51
-rw-r--r--docs/3.1/class_s_k6812__inherit__graph.pngbin0 -> 25788 bytes
-rw-r--r--docs/3.1/class_s_k6812_controller.html117
-rw-r--r--docs/3.1/class_s_k6812_controller__coll__graph.map2
-rw-r--r--docs/3.1/class_s_k6812_controller__coll__graph.md51
-rw-r--r--docs/3.1/class_s_k6812_controller__coll__graph.pngbin0 -> 19303 bytes
-rw-r--r--docs/3.1/class_s_k6812_controller__inherit__graph.map3
-rw-r--r--docs/3.1/class_s_k6812_controller__inherit__graph.md51
-rw-r--r--docs/3.1/class_s_k6812_controller__inherit__graph.pngbin0 -> 25816 bytes
-rw-r--r--docs/3.1/class_s_m16716_controller-members.html71
-rw-r--r--docs/3.1/class_s_m16716_controller.html13
-rw-r--r--docs/3.1/class_s_p_i_output-members.html2
-rw-r--r--docs/3.1/class_s_p_i_output.html6
-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_s_p_i_output__coll__graph.map2
-rw-r--r--docs/3.1/class_s_p_i_output__coll__graph.md52
-rw-r--r--docs/3.1/class_s_p_i_output__coll__graph.pngbin10489 -> 17580 bytes
-rw-r--r--docs/3.1/class_s_p_i_output__inherit__graph.map2
-rw-r--r--docs/3.1/class_s_p_i_output__inherit__graph.md52
-rw-r--r--docs/3.1/class_s_p_i_output__inherit__graph.pngbin10489 -> 17580 bytes
-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.html2
-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_m1809_controller800_khz__inherit__graph.map5
-rw-r--r--docs/3.1/class_t_m1809_controller800_khz__inherit__graph.md52
-rw-r--r--docs/3.1/class_t_m1809_controller800_khz__inherit__graph.pngbin28898 -> 29161 bytes
-rw-r--r--docs/3.1/class_t_m1812.html117
-rw-r--r--docs/3.1/class_t_m1812__coll__graph.map3
-rw-r--r--docs/3.1/class_t_m1812__coll__graph.md51
-rw-r--r--docs/3.1/class_t_m1812__coll__graph.pngbin0 -> 25742 bytes
-rw-r--r--docs/3.1/class_t_m1812__inherit__graph.map3
-rw-r--r--docs/3.1/class_t_m1812__inherit__graph.md51
-rw-r--r--docs/3.1/class_t_m1812__inherit__graph.pngbin0 -> 25742 bytes
-rw-r--r--docs/3.1/class_t_m1829.html2
-rw-r--r--docs/3.1/class_t_m1829_controller1600_khz.html2
-rw-r--r--docs/3.1/class_t_m1829_controller800_khz.html2
-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.html2
-rw-r--r--docs/3.1/class_u_c_s1903_controller400_khz.html2
-rw-r--r--docs/3.1/class_u_c_s1904.html2
-rw-r--r--docs/3.1/class_u_c_s1904_controller800_khz.html2
-rw-r--r--docs/3.1/class_w_s2801_controller-members.html71
-rw-r--r--docs/3.1/class_w_s2801_controller.html13
-rw-r--r--docs/3.1/class_w_s2803_controller-members.html71
-rw-r--r--docs/3.1/class_w_s2803_controller.html13
-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.html2
-rw-r--r--docs/3.1/class_w_s2811_controller800_khz.html2
-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.html2
-rw-r--r--docs/3.1/classes.html81
-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.html2
-rw-r--r--docs/3.1/color_8h_source.html2
-rw-r--r--docs/3.1/colorpalettes_8h.html2
-rw-r--r--docs/3.1/colorpalettes_8h_source.html2
-rw-r--r--docs/3.1/colorutils_8h.html2
-rw-r--r--docs/3.1/colorutils_8h_source.html1538
-rw-r--r--docs/3.1/controller_8h.html2
-rw-r--r--docs/3.1/controller_8h_source.html837
-rw-r--r--docs/3.1/cpp__compat_8h_source.html112
-rw-r--r--docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html2
-rw-r--r--docs/3.1/dmx_8h_source.html2
-rw-r--r--docs/3.1/fastled__config_8h.html2
-rw-r--r--docs/3.1/fastled__config_8h_source.html2
-rw-r--r--docs/3.1/fastled__delay_8h.html2
-rw-r--r--docs/3.1/fastled__delay_8h_source.html2
-rw-r--r--docs/3.1/fastled__progmem_8h.html2
-rw-r--r--docs/3.1/fastled__progmem_8h_source.html2
-rw-r--r--docs/3.1/fastpin_8h.html5
-rw-r--r--docs/3.1/fastpin_8h_source.html391
-rw-r--r--docs/3.1/fastspi_8h_source.html180
-rw-r--r--docs/3.1/fastspi__bitbang_8h_source.html8
-rw-r--r--docs/3.1/fastspi__dma_8h_source.html2
-rw-r--r--docs/3.1/fastspi__nop_8h_source.html51
-rw-r--r--docs/3.1/fastspi__ref_8h_source.html52
-rw-r--r--docs/3.1/fastspi__types_8h_source.html4
-rw-r--r--docs/3.1/files.html41
-rw-r--r--docs/3.1/functions.html58
-rw-r--r--docs/3.1/functions_enum.html2
-rw-r--r--docs/3.1/functions_func.html58
-rw-r--r--docs/3.1/globals.html2
-rw-r--r--docs/3.1/globals_enum.html2
-rw-r--r--docs/3.1/globals_eval.html2
-rw-r--r--docs/3.1/globals_func.html2
-rw-r--r--docs/3.1/globals_vars.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.html2
-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.html2
-rw-r--r--docs/3.1/group___power.html2
-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.html6
-rw-r--r--docs/3.1/group__lib8tion.html2
-rw-r--r--docs/3.1/hierarchy.html110
-rw-r--r--docs/3.1/hsv2rgb_8h_source.html2
-rw-r--r--docs/3.1/index.html2
-rw-r--r--docs/3.1/inherit_graph_0.map5
-rw-r--r--docs/3.1/inherit_graph_0.md52
-rw-r--r--docs/3.1/inherit_graph_0.pngbin19481 -> 5269 bytes
-rw-r--r--docs/3.1/inherit_graph_1.map2
-rw-r--r--docs/3.1/inherit_graph_1.md52
-rw-r--r--docs/3.1/inherit_graph_1.pngbin5269 -> 1742 bytes
-rw-r--r--docs/3.1/inherit_graph_10.map2
-rw-r--r--docs/3.1/inherit_graph_10.md52
-rw-r--r--docs/3.1/inherit_graph_10.pngbin2280 -> 1112 bytes
-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_11.pngbin1112 -> 2032 bytes
-rw-r--r--docs/3.1/inherit_graph_12.map2
-rw-r--r--docs/3.1/inherit_graph_12.md52
-rw-r--r--docs/3.1/inherit_graph_12.pngbin2032 -> 2240 bytes
-rw-r--r--docs/3.1/inherit_graph_13.map2
-rw-r--r--docs/3.1/inherit_graph_13.md52
-rw-r--r--docs/3.1/inherit_graph_13.pngbin2240 -> 1321 bytes
-rw-r--r--docs/3.1/inherit_graph_14.map2
-rw-r--r--docs/3.1/inherit_graph_14.md52
-rw-r--r--docs/3.1/inherit_graph_14.pngbin1321 -> 2327 bytes
-rw-r--r--docs/3.1/inherit_graph_15.map3
-rw-r--r--docs/3.1/inherit_graph_15.md52
-rw-r--r--docs/3.1/inherit_graph_15.pngbin2327 -> 2402 bytes
-rw-r--r--docs/3.1/inherit_graph_16.map37
-rw-r--r--docs/3.1/inherit_graph_16.md52
-rw-r--r--docs/3.1/inherit_graph_16.pngbin2402 -> 181249 bytes
-rw-r--r--docs/3.1/inherit_graph_17.map31
-rw-r--r--docs/3.1/inherit_graph_17.md52
-rw-r--r--docs/3.1/inherit_graph_17.pngbin143288 -> 2189 bytes
-rw-r--r--docs/3.1/inherit_graph_18.map2
-rw-r--r--docs/3.1/inherit_graph_18.md52
-rw-r--r--docs/3.1/inherit_graph_18.pngbin2189 -> 1344 bytes
-rw-r--r--docs/3.1/inherit_graph_19.map2
-rw-r--r--docs/3.1/inherit_graph_19.md52
-rw-r--r--docs/3.1/inherit_graph_19.pngbin1344 -> 4886 bytes
-rw-r--r--docs/3.1/inherit_graph_2.map2
-rw-r--r--docs/3.1/inherit_graph_2.md52
-rw-r--r--docs/3.1/inherit_graph_2.pngbin1742 -> 3958 bytes
-rw-r--r--docs/3.1/inherit_graph_20.map2
-rw-r--r--docs/3.1/inherit_graph_20.md52
-rw-r--r--docs/3.1/inherit_graph_20.pngbin4886 -> 4513 bytes
-rw-r--r--docs/3.1/inherit_graph_23.map5
-rw-r--r--docs/3.1/inherit_graph_23.md52
-rw-r--r--docs/3.1/inherit_graph_23.pngbin5086 -> 5714 bytes
-rw-r--r--docs/3.1/inherit_graph_24.map8
-rw-r--r--docs/3.1/inherit_graph_24.md52
-rw-r--r--docs/3.1/inherit_graph_24.pngbin26334 -> 5086 bytes
-rw-r--r--docs/3.1/inherit_graph_25.map5
-rw-r--r--docs/3.1/inherit_graph_25.md52
-rw-r--r--docs/3.1/inherit_graph_25.pngbin6339 -> 23961 bytes
-rw-r--r--docs/3.1/inherit_graph_26.map5
-rw-r--r--docs/3.1/inherit_graph_26.md52
-rw-r--r--docs/3.1/inherit_graph_26.pngbin6168 -> 26334 bytes
-rw-r--r--docs/3.1/inherit_graph_27.map2
-rw-r--r--docs/3.1/inherit_graph_27.md52
-rw-r--r--docs/3.1/inherit_graph_27.pngbin857 -> 6339 bytes
-rw-r--r--docs/3.1/inherit_graph_28.map2
-rw-r--r--docs/3.1/inherit_graph_28.md52
-rw-r--r--docs/3.1/inherit_graph_28.pngbin1762 -> 6168 bytes
-rw-r--r--docs/3.1/inherit_graph_29.map2
-rw-r--r--docs/3.1/inherit_graph_29.md52
-rw-r--r--docs/3.1/inherit_graph_29.pngbin3149 -> 857 bytes
-rw-r--r--docs/3.1/inherit_graph_3.map2
-rw-r--r--docs/3.1/inherit_graph_3.md52
-rw-r--r--docs/3.1/inherit_graph_3.pngbin3958 -> 1384 bytes
-rw-r--r--docs/3.1/inherit_graph_31.map3
-rw-r--r--docs/3.1/inherit_graph_31.md51
-rw-r--r--docs/3.1/inherit_graph_31.pngbin0 -> 3149 bytes
-rw-r--r--docs/3.1/inherit_graph_4.map2
-rw-r--r--docs/3.1/inherit_graph_4.md52
-rw-r--r--docs/3.1/inherit_graph_4.pngbin1384 -> 1060 bytes
-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/inherit_graph_5.pngbin1060 -> 1985 bytes
-rw-r--r--docs/3.1/inherit_graph_6.map2
-rw-r--r--docs/3.1/inherit_graph_6.md52
-rw-r--r--docs/3.1/inherit_graph_6.pngbin1985 -> 2157 bytes
-rw-r--r--docs/3.1/inherit_graph_7.map12
-rw-r--r--docs/3.1/inherit_graph_7.md52
-rw-r--r--docs/3.1/inherit_graph_7.pngbin2157 -> 64958 bytes
-rw-r--r--docs/3.1/inherit_graph_8.map12
-rw-r--r--docs/3.1/inherit_graph_8.md52
-rw-r--r--docs/3.1/inherit_graph_8.pngbin64958 -> 2059 bytes
-rw-r--r--docs/3.1/inherit_graph_9.map2
-rw-r--r--docs/3.1/inherit_graph_9.md52
-rw-r--r--docs/3.1/inherit_graph_9.pngbin2059 -> 2280 bytes
-rw-r--r--docs/3.1/inherits.html74
-rw-r--r--docs/3.1/led__sysdefs_8h_source.html2
-rw-r--r--docs/3.1/lib8tion_8h_source.html11
-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.html8
-rw-r--r--docs/3.1/md_release_notes.html37
-rw-r--r--docs/3.1/modules.html2
-rw-r--r--docs/3.1/noise_8h.html2
-rw-r--r--docs/3.1/noise_8h_source.html2
-rw-r--r--docs/3.1/pages.html4
-rw-r--r--docs/3.1/pixeltypes_8h_source.html962
-rw-r--r--docs/3.1/platforms_8h_source.html2
-rw-r--r--docs/3.1/power__mgt_8h_source.html64
-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_11.js4
-rw-r--r--docs/3.1/search/all_12.js8
-rw-r--r--docs/3.1/search/all_13.js1
-rw-r--r--docs/3.1/search/all_15.js8
-rw-r--r--docs/3.1/search/all_6.js2
-rw-r--r--docs/3.1/search/all_9.js2
-rw-r--r--docs/3.1/search/all_d.js1
-rw-r--r--docs/3.1/search/all_f.js2
-rw-r--r--docs/3.1/search/classes_10.js17
-rw-r--r--docs/3.1/search/classes_11.js16
-rw-r--r--docs/3.1/search/classes_a.js3
-rw-r--r--docs/3.1/search/classes_c.js4
-rw-r--r--docs/3.1/search/classes_e.js13
-rw-r--r--docs/3.1/search/classes_f.js24
-rw-r--r--docs/3.1/search/functions_10.js3
-rw-r--r--docs/3.1/search/functions_11.js6
-rw-r--r--docs/3.1/search/functions_13.html26
-rw-r--r--docs/3.1/search/functions_13.js11
-rw-r--r--docs/3.1/search/functions_9.js2
-rw-r--r--docs/3.1/search/pages_0.js2
-rw-r--r--docs/3.1/search/searchdata.js4
-rw-r--r--docs/3.1/struct_c_h_s_v-members.html2
-rw-r--r--docs/3.1/struct_c_h_s_v.html2
-rw-r--r--docs/3.1/struct_c_r_g_b-members.html102
-rw-r--r--docs/3.1/struct_c_r_g_b.html20
-rw-r--r--docs/3.1/struct_multi_pixel_controller-members.html2
-rw-r--r--docs/3.1/struct_multi_pixel_controller.html2
-rw-r--r--docs/3.1/struct_pixel_controller-members.html2
-rw-r--r--docs/3.1/struct_pixel_controller.html2
-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
347 files changed, 5746 insertions, 3718 deletions
diff --git a/docs/3.1/_fast_l_e_d_8h.html b/docs/3.1/_fast_l_e_d_8h.html
index a8a7bafa..82b9a3a6 100644
--- a/docs/3.1/_fast_l_e_d_8h.html
+++ b/docs/3.1/_fast_l_e_d_8h.html
@@ -85,6 +85,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
@@ -103,6 +104,8 @@ Classes</h2></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.html">TM1829&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_m1812.html">TM1812&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.html">TM1809&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_m1804.html">TM1804&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
@@ -119,6 +122,10 @@ Classes</h2></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_b.html">WS2812B&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_s_k6812.html">SK6812&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_p_l9823.html">PL9823&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.html">WS2811&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_a_p_a104.html">APA104&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
@@ -139,6 +146,12 @@ Classes</h2></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">High level controller interface for FastLED. <a href="class_c_fast_l_e_d.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="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:aa8a26176bfad65ad4447edd2ca99145e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa8a26176bfad65ad4447edd2ca99145e"></a>
+typedef uint8_t(*&#160;</td><td class="memItemRight" valign="bottom"><b>power_func</b>) (uint8_t scale, uint32_t data)</td></tr>
+<tr class="separator:aa8a26176bfad65ad4447edd2ca99145e"><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:ac06549dc4a351e2c8f1dda8ae81f7926"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac06549dc4a351e2c8f1dda8ae81f7926"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926">ESPIChipsets</a> { <br />
@@ -189,7 +202,7 @@ Variables</h2></td></tr>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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_l_e_d_8h_source.html b/docs/3.1/_fast_l_e_d_8h_source.html
index 9a80adee..87871813 100644
--- a/docs/3.1/_fast_l_e_d_8h_source.html
+++ b/docs/3.1/_fast_l_e_d_8h_source.html
@@ -94,9 +94,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#define xstr(s) str(s)</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#define str(s) #s</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#define FASTLED_VERSION 3001000</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#define FASTLED_VERSION 3001001</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#ifndef FASTLED_INTERNAL</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#warning FastLED version 3001000 (Not really a warning, just telling you here.)</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#warning FastLED version 3.001.001 (Not really a warning, just telling you here.)</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef __PROG_TYPES_COMPAT__</span></div>
@@ -117,405 +117,426 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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;<span class="preprocessor">#include &lt;stdint.h&gt;</span></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;<span class="preprocessor">#include &quot;<a class="code" href="fastled__config_8h.html">fastled_config.h</a>&quot;</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;led_sysdefs.h&quot;</span></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="preprocessor">#include &quot;<a class="code" href="bitswap_8h.html">bitswap.h</a>&quot;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="controller_8h.html">controller.h</a>&quot;</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="fastpin_8h.html">fastpin.h</a>&quot;</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;fastspi_types.h&quot;</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;./dmx.h&quot;</span></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="preprocessor">#include &quot;platforms.h&quot;</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="fastled__progmem_8h.html">fastled_progmem.h</a>&quot;</span></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;<span class="preprocessor">#include &quot;lib8tion.h&quot;</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;hsv2rgb.h&quot;</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="colorutils_8h.html">colorutils.h</a>&quot;</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="colorpalettes_8h.html">colorpalettes.h</a>&quot;</span></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">#include &quot;<a class="code" href="noise_8h.html">noise.h</a>&quot;</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &quot;power_mgt.h&quot;</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;<span class="preprocessor">#include &quot;fastspi.h&quot;</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="chipsets_8h.html">chipsets.h</a>&quot;</span></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_BEGIN</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;cpp_compat.h&quot;</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="preprocessor">#include &quot;<a class="code" href="fastled__config_8h.html">fastled_config.h</a>&quot;</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;led_sysdefs.h&quot;</span></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;<span class="preprocessor">#include &quot;<a class="code" href="bitswap_8h.html">bitswap.h</a>&quot;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="controller_8h.html">controller.h</a>&quot;</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="fastpin_8h.html">fastpin.h</a>&quot;</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;fastspi_types.h&quot;</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;./dmx.h&quot;</span></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="preprocessor">#include &quot;platforms.h&quot;</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="fastled__progmem_8h.html">fastled_progmem.h</a>&quot;</span></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="preprocessor">#include &quot;lib8tion.h&quot;</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;hsv2rgb.h&quot;</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="colorutils_8h.html">colorutils.h</a>&quot;</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="colorpalettes_8h.html">colorpalettes.h</a>&quot;</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">#include &quot;<a class="code" href="noise_8h.html">noise.h</a>&quot;</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;power_mgt.h&quot;</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;<span class="preprocessor">#include &quot;fastspi.h&quot;</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="chipsets_8h.html">chipsets.h</a>&quot;</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926"> 59</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926">ESPIChipsets</a> {</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; LPD8806,</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; WS2801,</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; WS2803,</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; SM16716,</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; P9813,</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; APA102,</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; DOTSTAR</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;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keyword">enum</span> ESM { SMART_MATRIX };</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keyword">enum</span> OWS2811 { OCTOWS2811,OCTOWS2811_400 };</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="preprocessor">#ifdef FASTLED_HAS_CLOCKLESS</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_n_e_o_p_i_x_e_l.html"> 73</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN&gt; <span class="keyword">class </span><a class="code" href="class_n_e_o_p_i_x_e_l.html">NEOPIXEL</a> : <span class="keyword">public</span> <a class="code" href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a>&lt;DATA_PIN, GRB&gt; {};</div>
-<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="class_t_m1829.html"> 74</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_t_m1829.html">TM1829</a> : <span class="keyword">public</span> <a class="code" href="class_t_m1829_controller800_khz.html">TM1829Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_t_m1809.html"> 75</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_t_m1809.html">TM1809</a> : <span class="keyword">public</span> <a class="code" href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_t_m1804.html"> 76</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_t_m1804.html">TM1804</a> : <span class="keyword">public</span> <a class="code" href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_t_m1803.html"> 77</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_t_m1803.html">TM1803</a> : <span class="keyword">public</span> <a class="code" href="class_t_m1803_controller400_khz.html">TM1803Controller400Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="class_u_c_s1903.html"> 78</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_u_c_s1903.html">UCS1903</a> : <span class="keyword">public</span> <a class="code" href="class_u_c_s1903_controller400_khz.html">UCS1903Controller400Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="class_u_c_s1903_b.html"> 79</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_u_c_s1903_b.html">UCS1903B</a> : <span class="keyword">public</span> <a class="code" href="class_u_c_s1903_b_controller800_khz.html">UCS1903BController800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_u_c_s1904.html"> 80</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_u_c_s1904.html">UCS1904</a> : <span class="keyword">public</span> <a class="code" href="class_u_c_s1904_controller800_khz.html">UCS1904Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_w_s2812.html"> 81</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_w_s2812.html">WS2812</a> : <span class="keyword">public</span> <a class="code" href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_w_s2812_b.html"> 82</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_w_s2812_b.html">WS2812B</a> : <span class="keyword">public</span> <a class="code" href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="class_w_s2811.html"> 83</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_w_s2811.html">WS2811</a> : <span class="keyword">public</span> <a class="code" href="class_w_s2811_controller800_khz.html">WS2811Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_a_p_a104.html"> 84</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_a_p_a104.html">APA104</a> : <span class="keyword">public</span> <a class="code" href="class_w_s2811_controller800_khz.html">WS2811Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="class_w_s2811__400.html"> 85</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_w_s2811__400.html">WS2811_400</a> : <span class="keyword">public</span> <a class="code" href="class_w_s2811_controller400_khz.html">WS2811Controller400Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_g_w6205.html"> 86</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_g_w6205.html">GW6205</a> : <span class="keyword">public</span> <a class="code" href="class_g_w6205_controller800_khz.html">GW6205Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="class_g_w6205__400.html"> 87</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_g_w6205__400.html">GW6205_400</a> : <span class="keyword">public</span> <a class="code" href="class_g_w6205_controller400_khz.html">GW6205Controller400Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_l_p_d1886.html"> 88</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_l_p_d1886.html">LPD1886</a> : <span class="keyword">public</span> <a class="code" href="class_l_p_d1886_controller1250_khz.html">LPD1886Controller1250Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#ifdef DmxSimple_h</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_d_m_x_s_i_m_p_l_e.html"> 90</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_d_m_x_s_i_m_p_l_e.html">DMXSIMPLE</a> : <span class="keyword">public</span> <a class="code" href="class_d_m_x_simple_controller.html">DMXSimpleController</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#ifdef DmxSerial_h</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_d_m_x_s_e_r_i_a_l.html"> 93</a></span>&#160;<span class="keyword">template</span>&lt;EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_d_m_x_s_e_r_i_a_l.html">DMXSERIAL</a> : <span class="keyword">public</span> <a class="code" href="class_d_m_x_serial_controller.html">DMXSerialController</a>&lt;RGB_ORDER&gt; {};</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#endif</span></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;<span class="keyword">enum</span> EBlockChipsets {</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#ifdef PORTA_FIRST_PIN</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; WS2811_PORTA,</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; WS2811_400_PORTA,</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;<span class="preprocessor">#ifdef PORTB_FIRST_PIN</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; WS2811_PORTB,</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; WS2811_400_PORTB,</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#ifdef PORTC_FIRST_PIN</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; WS2811_PORTC,</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; WS2811_400_PORTC,</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#ifdef PORTD_FIRST_PIN</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; WS2811_PORTD,</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; WS2811_400_PORTD,</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#ifdef HAS_PORTDC</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; WS2811_PORTDC,</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; WS2811_400_PORTDC,</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#endif</span></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;<span class="preprocessor">#if defined(LIB8_ATTINY)</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#define NUM_CONTROLLERS 2</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor">#define NUM_CONTROLLERS 8</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html"> 130</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_fast_l_e_d.html">CFastLED</a> {</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="comment">// int m_nControllers;</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; uint8_t m_Scale; </div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; uint16_t m_nFPS; </div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; uint32_t m_nMinMicros; </div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="class_c_fast_l_e_d.html">CFastLED</a>();</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="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *pLed, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0);</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</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="keyword">template</span>&lt;ESPIChipsets CHIPSET, u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER, u<span class="keywordtype">int</span>8_t SPI_DATA_RATE &gt; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">case</span> LPD8806: { <span class="keyword">static</span> <a class="code" href="class_l_p_d8806_controller.html">LPD8806Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_DATA_RATE&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">case</span> WS2801: { <span class="keyword">static</span> <a class="code" href="class_w_s2801_controller.html">WS2801Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_DATA_RATE&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">case</span> WS2803: { <span class="keyword">static</span> <a class="code" href="class_w_s2803_controller.html">WS2803Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_DATA_RATE&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">case</span> SM16716: { <span class="keyword">static</span> <a class="code" href="class_s_m16716_controller.html">SM16716Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_DATA_RATE&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">case</span> P9813: { <span class="keyword">static</span> <a class="code" href="class_p9813_controller.html">P9813Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_DATA_RATE&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">case</span> DOTSTAR:</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">case</span> APA102: { <span class="keyword">static</span> <a class="code" href="class_a_p_a102_controller.html">APA102Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_DATA_RATE&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</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; }</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; <span class="keyword">template</span>&lt;ESPIChipsets CHIPSET, u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN &gt; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">case</span> LPD8806: { <span class="keyword">static</span> <a class="code" href="class_l_p_d8806_controller.html">LPD8806Controller&lt;DATA_PIN, CLOCK_PIN&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">case</span> WS2801: { <span class="keyword">static</span> <a class="code" href="class_w_s2801_controller.html">WS2801Controller&lt;DATA_PIN, CLOCK_PIN&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">case</span> WS2803: { <span class="keyword">static</span> <a class="code" href="class_w_s2803_controller.html">WS2803Controller&lt;DATA_PIN, CLOCK_PIN&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">case</span> SM16716: { <span class="keyword">static</span> <a class="code" href="class_s_m16716_controller.html">SM16716Controller&lt;DATA_PIN, CLOCK_PIN&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">case</span> P9813: { <span class="keyword">static</span> <a class="code" href="class_p9813_controller.html">P9813Controller&lt;DATA_PIN, CLOCK_PIN&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">case</span> DOTSTAR:</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">case</span> APA102: { <span class="keyword">static</span> <a class="code" href="class_a_p_a102_controller.html">APA102Controller&lt;DATA_PIN, CLOCK_PIN&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</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; }</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;ESPIChipsets CHIPSET, u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER &gt; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">case</span> LPD8806: { <span class="keyword">static</span> <a class="code" href="class_l_p_d8806_controller.html">LPD8806Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">case</span> WS2801: { <span class="keyword">static</span> <a class="code" href="class_w_s2801_controller.html">WS2801Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">case</span> WS2803: { <span class="keyword">static</span> <a class="code" href="class_w_s2803_controller.html">WS2803Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">case</span> SM16716: { <span class="keyword">static</span> <a class="code" href="class_s_m16716_controller.html">SM16716Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> P9813: { <span class="keyword">static</span> <a class="code" href="class_p9813_controller.html">P9813Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">case</span> DOTSTAR:</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">case</span> APA102: { <span class="keyword">static</span> <a class="code" href="class_a_p_a102_controller.html">APA102Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</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; }</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="preprocessor">#ifdef SPI_DATA</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">template</span>&lt;ESPIChipsets CHIPSET&gt; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">return</span> addLeds&lt;CHIPSET, SPI_DATA, SPI_CLOCK, RGB&gt;(data, nLedsOrOffset, nLedsIfOffset);</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="keyword">template</span>&lt;ESPIChipsets CHIPSET, EOrder RGB_ORDER&gt; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> addLeds&lt;CHIPSET, SPI_DATA, SPI_CLOCK, RGB_ORDER&gt;(data, nLedsOrOffset, nLedsIfOffset);</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; <span class="keyword">template</span>&lt;ESPIChipsets CHIPSET, EOrder RGB_ORDER, u<span class="keywordtype">int</span>8_t SPI_DATA_RATE&gt; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> addLeds&lt;CHIPSET, SPI_DATA, SPI_CLOCK, RGB_ORDER, SPI_DATA_RATE&gt;(data, nLedsOrOffset, nLedsIfOffset);</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;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926"> 61</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926">ESPIChipsets</a> {</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; LPD8806,</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; WS2801,</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; WS2803,</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; SM16716,</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; P9813,</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; APA102,</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; DOTSTAR</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;<span class="keyword">enum</span> ESM { SMART_MATRIX };</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="keyword">enum</span> OWS2811 { OCTOWS2811,OCTOWS2811_400 };</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="preprocessor">#ifdef FASTLED_HAS_CLOCKLESS</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_n_e_o_p_i_x_e_l.html"> 75</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN&gt; <span class="keyword">class </span><a class="code" href="class_n_e_o_p_i_x_e_l.html">NEOPIXEL</a> : <span class="keyword">public</span> <a class="code" href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a>&lt;DATA_PIN, GRB&gt; {};</div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_t_m1829.html"> 76</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_t_m1829.html">TM1829</a> : <span class="keyword">public</span> <a class="code" href="class_t_m1829_controller800_khz.html">TM1829Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_t_m1812.html"> 77</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_t_m1812.html">TM1812</a> : <span class="keyword">public</span> <a class="code" href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="class_t_m1809.html"> 78</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_t_m1809.html">TM1809</a> : <span class="keyword">public</span> <a class="code" href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="class_t_m1804.html"> 79</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_t_m1804.html">TM1804</a> : <span class="keyword">public</span> <a class="code" href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_t_m1803.html"> 80</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_t_m1803.html">TM1803</a> : <span class="keyword">public</span> <a class="code" href="class_t_m1803_controller400_khz.html">TM1803Controller400Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_u_c_s1903.html"> 81</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_u_c_s1903.html">UCS1903</a> : <span class="keyword">public</span> <a class="code" href="class_u_c_s1903_controller400_khz.html">UCS1903Controller400Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_u_c_s1903_b.html"> 82</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_u_c_s1903_b.html">UCS1903B</a> : <span class="keyword">public</span> <a class="code" href="class_u_c_s1903_b_controller800_khz.html">UCS1903BController800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="class_u_c_s1904.html"> 83</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_u_c_s1904.html">UCS1904</a> : <span class="keyword">public</span> <a class="code" href="class_u_c_s1904_controller800_khz.html">UCS1904Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_w_s2812.html"> 84</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_w_s2812.html">WS2812</a> : <span class="keyword">public</span> <a class="code" href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="class_w_s2812_b.html"> 85</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_w_s2812_b.html">WS2812B</a> : <span class="keyword">public</span> <a class="code" href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_s_k6812.html"> 86</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_s_k6812.html">SK6812</a> : <span class="keyword">public</span> <a class="code" href="class_s_k6812_controller.html">SK6812Controller</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="class_p_l9823.html"> 87</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_p_l9823.html">PL9823</a> : <span class="keyword">public</span> <a class="code" href="class_p_l9823_controller.html">PL9823Controller</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_w_s2811.html"> 88</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_w_s2811.html">WS2811</a> : <span class="keyword">public</span> <a class="code" href="class_w_s2811_controller800_khz.html">WS2811Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="class_a_p_a104.html"> 89</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_a_p_a104.html">APA104</a> : <span class="keyword">public</span> <a class="code" href="class_w_s2811_controller800_khz.html">WS2811Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_w_s2811__400.html"> 90</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_w_s2811__400.html">WS2811_400</a> : <span class="keyword">public</span> <a class="code" href="class_w_s2811_controller400_khz.html">WS2811Controller400Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="class_g_w6205.html"> 91</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_g_w6205.html">GW6205</a> : <span class="keyword">public</span> <a class="code" href="class_g_w6205_controller800_khz.html">GW6205Controller800Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="class_g_w6205__400.html"> 92</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_g_w6205__400.html">GW6205_400</a> : <span class="keyword">public</span> <a class="code" href="class_g_w6205_controller400_khz.html">GW6205Controller400Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_l_p_d1886.html"> 93</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_l_p_d1886.html">LPD1886</a> : <span class="keyword">public</span> <a class="code" href="class_l_p_d1886_controller1250_khz.html">LPD1886Controller1250Khz</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#ifdef DmxSimple_h</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="class_d_m_x_s_i_m_p_l_e.html"> 95</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_d_m_x_s_i_m_p_l_e.html">DMXSIMPLE</a> : <span class="keyword">public</span> <a class="code" href="class_d_m_x_simple_controller.html">DMXSimpleController</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#ifdef DmxSerial_h</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_d_m_x_s_e_r_i_a_l.html"> 98</a></span>&#160;<span class="keyword">template</span>&lt;EOrder RGB_ORDER&gt; <span class="keyword">class </span><a class="code" href="class_d_m_x_s_e_r_i_a_l.html">DMXSERIAL</a> : <span class="keyword">public</span> <a class="code" href="class_d_m_x_serial_controller.html">DMXSerialController</a>&lt;RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#endif</span></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">enum</span> EBlockChipsets {</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#ifdef PORTA_FIRST_PIN</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; WS2811_PORTA,</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; WS2811_400_PORTA,</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#ifdef PORTB_FIRST_PIN</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; WS2811_PORTB,</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; WS2811_400_PORTB,</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;<span class="preprocessor">#ifdef PORTC_FIRST_PIN</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; WS2811_PORTC,</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; WS2811_400_PORTC,</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#ifdef PORTD_FIRST_PIN</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; WS2811_PORTD,</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; WS2811_400_PORTD,</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor">#ifdef HAS_PORTDC</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; WS2811_PORTDC,</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; WS2811_400_PORTDC,</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor">#endif</span></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;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#if defined(LIB8_ATTINY)</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#define NUM_CONTROLLERS 2</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#define NUM_CONTROLLERS 8</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor">#endif</span></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="keyword">typedef</span> uint8_t (*power_func)(uint8_t scale, uint32_t data);</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html"> 137</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_fast_l_e_d.html">CFastLED</a> {</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="comment">// int m_nControllers;</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; uint8_t m_Scale; </div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; uint16_t m_nFPS; </div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; uint32_t m_nMinMicros; </div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; uint32_t m_nPowerData; </div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; power_func m_pPowerFunc; </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="keyword">public</span>:</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="class_c_fast_l_e_d.html">CFastLED</a>();</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="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *pLed, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</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="keyword">template</span>&lt;ESPIChipsets CHIPSET, u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER, u<span class="keywordtype">int</span>8_t SPI_DATA_RATE &gt; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">case</span> LPD8806: { <span class="keyword">static</span> <a class="code" href="class_l_p_d8806_controller.html">LPD8806Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_DATA_RATE&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">case</span> WS2801: { <span class="keyword">static</span> <a class="code" href="class_w_s2801_controller.html">WS2801Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_DATA_RATE&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">case</span> WS2803: { <span class="keyword">static</span> <a class="code" href="class_w_s2803_controller.html">WS2803Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_DATA_RATE&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">case</span> SM16716: { <span class="keyword">static</span> <a class="code" href="class_s_m16716_controller.html">SM16716Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_DATA_RATE&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">case</span> P9813: { <span class="keyword">static</span> <a class="code" href="class_p9813_controller.html">P9813Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_DATA_RATE&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">case</span> DOTSTAR:</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">case</span> APA102: { <span class="keyword">static</span> <a class="code" href="class_a_p_a102_controller.html">APA102Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_DATA_RATE&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</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; }</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="keyword">template</span>&lt;ESPIChipsets CHIPSET, u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN &gt; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">case</span> LPD8806: { <span class="keyword">static</span> <a class="code" href="class_l_p_d8806_controller.html">LPD8806Controller&lt;DATA_PIN, CLOCK_PIN&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">case</span> WS2801: { <span class="keyword">static</span> <a class="code" href="class_w_s2801_controller.html">WS2801Controller&lt;DATA_PIN, CLOCK_PIN&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">case</span> WS2803: { <span class="keyword">static</span> <a class="code" href="class_w_s2803_controller.html">WS2803Controller&lt;DATA_PIN, CLOCK_PIN&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">case</span> SM16716: { <span class="keyword">static</span> <a class="code" href="class_s_m16716_controller.html">SM16716Controller&lt;DATA_PIN, CLOCK_PIN&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">case</span> P9813: { <span class="keyword">static</span> <a class="code" href="class_p9813_controller.html">P9813Controller&lt;DATA_PIN, CLOCK_PIN&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">case</span> DOTSTAR:</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> APA102: { <span class="keyword">static</span> <a class="code" href="class_a_p_a102_controller.html">APA102Controller&lt;DATA_PIN, CLOCK_PIN&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</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; }</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; <span class="keyword">template</span>&lt;ESPIChipsets CHIPSET, u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER &gt; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">case</span> LPD8806: { <span class="keyword">static</span> <a class="code" href="class_l_p_d8806_controller.html">LPD8806Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">case</span> WS2801: { <span class="keyword">static</span> <a class="code" href="class_w_s2801_controller.html">WS2801Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">case</span> WS2803: { <span class="keyword">static</span> <a class="code" href="class_w_s2803_controller.html">WS2803Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">case</span> SM16716: { <span class="keyword">static</span> <a class="code" href="class_s_m16716_controller.html">SM16716Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">case</span> P9813: { <span class="keyword">static</span> <a class="code" href="class_p9813_controller.html">P9813Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">case</span> DOTSTAR:</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">case</span> APA102: { <span class="keyword">static</span> <a class="code" href="class_a_p_a102_controller.html">APA102Controller&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER&gt;</a> c; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset); }</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="preprocessor">#ifdef SPI_DATA</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">template</span>&lt;ESPIChipsets CHIPSET&gt; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> addLeds&lt;CHIPSET, SPI_DATA, SPI_CLOCK, RGB&gt;(data, nLedsOrOffset, nLedsIfOffset);</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;</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;<span class="preprocessor">#ifdef FASTLED_HAS_CLOCKLESS</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span>CHIPSET, uint8_t DATA_PIN, EOrder RGB_ORDER&gt;</div>
-<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9"> 244</a></span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">static</span> CHIPSET&lt;DATA_PIN, RGB_ORDER&gt; c;</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset);</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;</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span>CHIPSET, uint8_t DATA_PIN&gt;</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">static</span> CHIPSET&lt;DATA_PIN, RGB&gt; c;</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset);</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="keyword">template</span>&lt;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN&gt; <span class="keyword">class </span>CHIPSET, uint8_t DATA_PIN&gt;</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">static</span> CHIPSET&lt;DATA_PIN&gt; c;</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset);</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;</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor"> #ifdef FASTSPI_USE_DMX_SIMPLE</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">template</span>&lt;EClocklessChipsets CHIPSET, u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER=RGB&gt;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0)</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; <span class="keywordflow">switch</span>(CHIPSET) {</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">case</span> DMX: { <span class="keyword">static</span> DMXController&lt;DATA_PIN&gt; controller; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;controller, data, nLedsOrOffset, nLedsIfOffset); }</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; }</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor"> #endif</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">template</span>&lt;ESPIChipsets CHIPSET, EOrder RGB_ORDER&gt; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> addLeds&lt;CHIPSET, SPI_DATA, SPI_CLOCK, RGB_ORDER&gt;(data, nLedsOrOffset, nLedsIfOffset);</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="keyword">template</span>&lt;ESPIChipsets CHIPSET, EOrder RGB_ORDER, u<span class="keywordtype">int</span>8_t SPI_DATA_RATE&gt; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> addLeds&lt;CHIPSET, SPI_DATA, SPI_CLOCK, RGB_ORDER, SPI_DATA_RATE&gt;(data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor">#endif</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="preprocessor">#ifdef FASTLED_HAS_CLOCKLESS</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span>CHIPSET, uint8_t DATA_PIN, EOrder RGB_ORDER&gt;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9"> 254</a></span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">static</span> CHIPSET&lt;DATA_PIN, RGB_ORDER&gt; c;</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset);</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;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER&gt; <span class="keyword">class </span>CHIPSET, uint8_t DATA_PIN&gt;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">static</span> CHIPSET&lt;DATA_PIN, RGB&gt; c;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; }</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; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t DATA_PIN&gt; <span class="keyword">class </span>CHIPSET, uint8_t DATA_PIN&gt;</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">static</span> CHIPSET&lt;DATA_PIN&gt; c;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset);</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="preprocessor">#endif</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</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="keyword">template</span>&lt;<span class="keyword">template</span>&lt;EOrder RGB_ORDER&gt; <span class="keyword">class </span>CHIPSET, EOrder RGB_ORDER&gt;</div>
-<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ac4dff92f45048399edb0812a02ab9d96"> 292</a></span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#ac4dff92f45048399edb0812a02ab9d96">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">static</span> CHIPSET&lt;RGB_ORDER&gt; c;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset);</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</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="keyword">template</span>&lt;<span class="keyword">template</span>&lt;EOrder RGB_ORDER&gt; <span class="keyword">class </span>CHIPSET&gt;</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">static</span> CHIPSET&lt;RGB&gt; c;</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset);</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="preprocessor">#ifdef USE_OCTOWS2811</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">template</span>&lt;OWS2811 CHIPSET, EOrder RGB_ORDER&gt;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0)</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; <span class="keywordflow">switch</span>(CHIPSET) {</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">case</span> OCTOWS2811: { <span class="keyword">static</span> COctoWS2811Controller&lt;RGB_ORDER&gt; controller; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;controller, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">case</span> OCTOWS2811_400: { <span class="keyword">static</span> COctoWS2811Controller&lt;RGB_ORDER,true&gt; controller; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;controller, data, nLedsOrOffset, nLedsIfOffset); }</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"> #ifdef FASTSPI_USE_DMX_SIMPLE</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keyword">template</span>&lt;EClocklessChipsets CHIPSET, u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER=RGB&gt;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0)</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="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">case</span> DMX: { <span class="keyword">static</span> DMXController&lt;DATA_PIN&gt; controller; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;controller, data, nLedsOrOffset, nLedsIfOffset); }</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; }</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor"> #endif</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;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</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="keyword">template</span>&lt;<span class="keyword">template</span>&lt;EOrder RGB_ORDER&gt; <span class="keyword">class </span>CHIPSET, EOrder RGB_ORDER&gt;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ac4dff92f45048399edb0812a02ab9d96"> 302</a></span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#ac4dff92f45048399edb0812a02ab9d96">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keyword">static</span> CHIPSET&lt;RGB_ORDER&gt; c;</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset);</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;</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;EOrder RGB_ORDER&gt; <span class="keyword">class </span>CHIPSET&gt;</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">static</span> CHIPSET&lt;RGB&gt; c;</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;c, data, nLedsOrOffset, nLedsIfOffset);</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="keyword">template</span>&lt;OWS2811 CHIPSET&gt;</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0)</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; <span class="keywordflow">return</span> addLeds&lt;CHIPSET,GRB&gt;(data,nLedsOrOffset,nLedsIfOffset);</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;</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor">#endif</span></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;<span class="preprocessor">#ifdef SmartMatrix_h</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keyword">template</span>&lt;ESM CHIPSET&gt;</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0)</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="keywordflow">switch</span>(CHIPSET) {</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">case</span> SMART_MATRIX: { <span class="keyword">static</span> CSmartMatrixController controller; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;controller, data, nLedsOrOffset, nLedsIfOffset); }</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="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor">#ifdef USE_OCTOWS2811</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">template</span>&lt;OWS2811 CHIPSET, EOrder RGB_ORDER&gt;</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0)</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="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">case</span> OCTOWS2811: { <span class="keyword">static</span> COctoWS2811Controller&lt;RGB_ORDER&gt; controller; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;controller, data, nLedsOrOffset, nLedsIfOffset); }</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">case</span> OCTOWS2811_400: { <span class="keyword">static</span> COctoWS2811Controller&lt;RGB_ORDER,true&gt; controller; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;controller, data, nLedsOrOffset, nLedsIfOffset); }</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; }</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="keyword">template</span>&lt;OWS2811 CHIPSET&gt;</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0)</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; {</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">return</span> addLeds&lt;CHIPSET,GRB&gt;(data,nLedsOrOffset,nLedsIfOffset);</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="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="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor">#ifdef FASTLED_HAS_BLOCKLESS</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</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="keyword">template</span>&lt;EBlockChipsets CHIPSET, <span class="keywordtype">int</span> NUM_LANES, EOrder RGB_ORDER&gt;</div>
-<div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9"> 354</a></span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor"> #ifdef PORTA_FIRST_PIN</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">case</span> WS2811_PORTA: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> InlineBlockClocklessController&lt;NUM_LANES, PORTA_FIRST_PIN, NS(320), NS(320), NS(640), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">case</span> WS2811_400_PORTA: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> InlineBlockClocklessController&lt;NUM_LANES, PORTA_FIRST_PIN, NS(800), NS(800), NS(900), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor"> #ifdef PORTB_FIRST_PIN</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">case</span> WS2811_PORTB: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> InlineBlockClocklessController&lt;NUM_LANES, PORTB_FIRST_PIN, NS(320), NS(320), NS(640), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">case</span> WS2811_400_PORTB: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> InlineBlockClocklessController&lt;NUM_LANES, PORTB_FIRST_PIN, NS(800), NS(800), NS(900), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor"> #ifdef PORTC_FIRST_PIN</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">case</span> WS2811_PORTC: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> InlineBlockClocklessController&lt;NUM_LANES, PORTC_FIRST_PIN, NS(320), NS(320), NS(640), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">case</span> WS2811_400_PORTC: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> InlineBlockClocklessController&lt;NUM_LANES, PORTC_FIRST_PIN, NS(800), NS(800), NS(900), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor"> #ifdef PORTD_FIRST_PIN</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">case</span> WS2811_PORTD: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> InlineBlockClocklessController&lt;NUM_LANES, PORTD_FIRST_PIN, NS(320), NS(320), NS(640), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">case</span> WS2811_400_PORTD: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> InlineBlockClocklessController&lt;NUM_LANES, PORTD_FIRST_PIN, NS(800), NS(800), NS(900), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor"> #ifdef HAS_PORTDC</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">case</span> WS2811_PORTDC: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> SixteenWayInlineBlockClocklessController&lt;16,NS(320), NS(320), NS(640), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">case</span> WS2811_400_PORTDC: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> SixteenWayInlineBlockClocklessController&lt;16,NS(800), NS(800), NS(900), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; }</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">template</span>&lt;EBlockChipsets CHIPSET, <span class="keywordtype">int</span> NUM_LANES&gt;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">return</span> addLeds&lt;CHIPSET,NUM_LANES,GRB&gt;(data,nLedsOrOffset,nLedsIfOffset);</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; }</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div>
-<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a730ba7d967e882b4b893689cf333b2eb"> 388</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a730ba7d967e882b4b893689cf333b2eb">setBrightness</a>(uint8_t scale) { m_Scale = scale; }</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div>
-<div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ac2615781ec12e025fb17cc0e66281716"> 392</a></span>&#160; uint8_t <a class="code" href="class_c_fast_l_e_d.html#ac2615781ec12e025fb17cc0e66281716">getBrightness</a>() { <span class="keywordflow">return</span> m_Scale; }</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de">show</a>(uint8_t scale);</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div>
-<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de"> 399</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de">show</a>() { <a class="code" href="class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de">show</a>(m_Scale); }</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a042989511cbc42390620bedc196ea956">clear</a>(<span class="keywordtype">boolean</span> writeData = <span class="keyword">false</span>);</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#ac4f613f1b3e618528dca3189df88ce80">clearData</a>();</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a7315b060d295bad5fbd32e50eaaf02b0">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; color, uint8_t scale);</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor">#ifdef SmartMatrix_h</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">template</span>&lt;ESM CHIPSET&gt;</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0)</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="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">case</span> SMART_MATRIX: { <span class="keyword">static</span> CSmartMatrixController controller; <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(&amp;controller, data, nLedsOrOffset, nLedsIfOffset); }</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="preprocessor">#endif</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</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="preprocessor">#ifdef FASTLED_HAS_BLOCKLESS</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</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; <span class="keyword">template</span>&lt;EBlockChipsets CHIPSET, <span class="keywordtype">int</span> NUM_LANES, EOrder RGB_ORDER&gt;</div>
+<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9"> 364</a></span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor"> #ifdef PORTA_FIRST_PIN</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">case</span> WS2811_PORTA: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> InlineBlockClocklessController&lt;NUM_LANES, PORTA_FIRST_PIN, NS(320), NS(320), NS(640), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">case</span> WS2811_400_PORTA: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> InlineBlockClocklessController&lt;NUM_LANES, PORTA_FIRST_PIN, NS(800), NS(800), NS(900), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="preprocessor"> #endif</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="preprocessor"> #ifdef PORTB_FIRST_PIN</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">case</span> WS2811_PORTB: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> InlineBlockClocklessController&lt;NUM_LANES, PORTB_FIRST_PIN, NS(320), NS(320), NS(640), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">case</span> WS2811_400_PORTB: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> InlineBlockClocklessController&lt;NUM_LANES, PORTB_FIRST_PIN, NS(800), NS(800), NS(900), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor"> #endif</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor"> #ifdef PORTC_FIRST_PIN</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">case</span> WS2811_PORTC: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> InlineBlockClocklessController&lt;NUM_LANES, PORTC_FIRST_PIN, NS(320), NS(320), NS(640), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">case</span> WS2811_400_PORTC: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> InlineBlockClocklessController&lt;NUM_LANES, PORTC_FIRST_PIN, NS(800), NS(800), NS(900), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor"> #endif</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor"> #ifdef PORTD_FIRST_PIN</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">case</span> WS2811_PORTD: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> InlineBlockClocklessController&lt;NUM_LANES, PORTD_FIRST_PIN, NS(320), NS(320), NS(640), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">case</span> WS2811_400_PORTD: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> InlineBlockClocklessController&lt;NUM_LANES, PORTD_FIRST_PIN, NS(800), NS(800), NS(900), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor"> #endif</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor"> #ifdef HAS_PORTDC</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">case</span> WS2811_PORTDC: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> SixteenWayInlineBlockClocklessController&lt;16,NS(320), NS(320), NS(640), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">case</span> WS2811_400_PORTDC: <span class="keywordflow">return</span> <a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">new</span> SixteenWayInlineBlockClocklessController&lt;16,NS(800), NS(800), NS(900), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor"> #endif</span></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;</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">template</span>&lt;EBlockChipsets CHIPSET, <span class="keywordtype">int</span> NUM_LANES&gt;</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;<a class="code" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">addLeds</a>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLedsOrOffset, <span class="keywordtype">int</span> nLedsIfOffset = 0) {</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">return</span> addLeds&lt;CHIPSET,NUM_LANES,GRB&gt;(data,nLedsOrOffset,nLedsIfOffset);</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a730ba7d967e882b4b893689cf333b2eb"> 398</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a730ba7d967e882b4b893689cf333b2eb">setBrightness</a>(uint8_t scale) { m_Scale = scale; }</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div>
+<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ac2615781ec12e025fb17cc0e66281716"> 402</a></span>&#160; uint8_t <a class="code" href="class_c_fast_l_e_d.html#ac2615781ec12e025fb17cc0e66281716">getBrightness</a>() { <span class="keywordflow">return</span> m_Scale; }</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div>
+<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a996375a3f4a7b8c096f87d8a93c2b196"> 407</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a996375a3f4a7b8c096f87d8a93c2b196">setMaxPowerInVoltsAndMilliamps</a>(uint8_t volts, uint32_t milliamps) { <a class="code" href="class_c_fast_l_e_d.html#ab07d62cdec036af9ede70cbd06ece40f">setMaxPowerInMilliWatts</a>(volts * milliamps); }</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ab07d62cdec036af9ede70cbd06ece40f"> 411</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#ab07d62cdec036af9ede70cbd06ece40f">setMaxPowerInMilliWatts</a>(uint32_t milliwatts) { m_pPowerFunc = &amp;calculate_max_brightness_for_power_mW; m_nPowerData = milliwatts; }</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div>
-<div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a570df74cf09e6215c3647333d2b479a9"> 415</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a570df74cf09e6215c3647333d2b479a9">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; color) { <a class="code" href="class_c_fast_l_e_d.html#a570df74cf09e6215c3647333d2b479a9">showColor</a>(color, m_Scale); }</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de">show</a>(uint8_t scale);</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a6819ff831058a710d4582dfc09817202">delay</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> ms);</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a28c2dfb0ec592db03f3063ade135f19f">setTemperature</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; temp);</div>
+<div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de"> 418</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de">show</a>() { <a class="code" href="class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de">show</a>(m_Scale); }</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a042989511cbc42390620bedc196ea956">clear</a>(<span class="keywordtype">boolean</span> writeData = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#ac4f613f1b3e618528dca3189df88ce80">clearData</a>();</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;</div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#ad266c3e649cc12a6dc49a1e229acc282">setCorrection</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; correction);</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a7315b060d295bad5fbd32e50eaaf02b0">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; color, uint8_t scale);</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a7ae5d3864df01101d82d242c123ffb36">setDither</a>(uint8_t ditherMode = BINARY_DITHER);</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a1f39e8404db214bbd6a776f52a77d8b1">setMaxRefreshRate</a>(uint16_t refresh, <span class="keywordtype">bool</span> constrain=<span class="keyword">false</span>);</div>
+<div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a570df74cf09e6215c3647333d2b479a9"> 434</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a570df74cf09e6215c3647333d2b479a9">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; color) { <a class="code" href="class_c_fast_l_e_d.html#a570df74cf09e6215c3647333d2b479a9">showColor</a>(color, m_Scale); }</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a6819ff831058a710d4582dfc09817202">delay</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> ms);</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a28c2dfb0ec592db03f3063ade135f19f">setTemperature</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; temp);</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a61d27e179c9b68bde89d220aebc0de32">countFPS</a>(<span class="keywordtype">int</span> nFrames=25);</div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div>
-<div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#aa8c3ae3381e524ce30b181ffa23b83cd"> 454</a></span>&#160; uint16_t <a class="code" href="class_c_fast_l_e_d.html#aa8c3ae3381e524ce30b181ffa23b83cd">getFPS</a>() { <span class="keywordflow">return</span> m_nFPS; }</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#ad266c3e649cc12a6dc49a1e229acc282">setCorrection</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; correction);</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a7ae5d3864df01101d82d242c123ffb36">setDither</a>(uint8_t ditherMode = BINARY_DITHER);</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_c_fast_l_e_d.html#ae5730545ea18b1f5228172f9d246beb6">count</a>();</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp; <a class="code" href="class_c_fast_l_e_d.html#a646128b7d8c14b5020b285dbc8bc713b">operator[]</a>(<span class="keywordtype">int</span> x);</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;</div>
-<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0"> 466</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0">size</a>() { <span class="keywordflow">return</span> (*<span class="keyword">this</span>)[0].size(); }</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div>
-<div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ae3c0a81b88fb64a65725cb2fed67f766"> 470</a></span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> *<a class="code" href="class_c_fast_l_e_d.html#ae3c0a81b88fb64a65725cb2fed67f766">leds</a>() { <span class="keywordflow">return</span> (*<span class="keyword">this</span>)[0].leds(); }</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="preprocessor">#define FastSPI_LED FastLED</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor">#define FastSPI_LED2 FastLED</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor">#ifndef LEDS</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor">#define LEDS FastLED</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a1f39e8404db214bbd6a776f52a77d8b1">setMaxRefreshRate</a>(uint16_t refresh, <span class="keywordtype">bool</span> constrain=<span class="keyword">false</span>);</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a61d27e179c9b68bde89d220aebc0de32">countFPS</a>(<span class="keywordtype">int</span> nFrames=25);</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;</div>
+<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#aa8c3ae3381e524ce30b181ffa23b83cd"> 473</a></span>&#160; uint16_t <a class="code" href="class_c_fast_l_e_d.html#aa8c3ae3381e524ce30b181ffa23b83cd">getFPS</a>() { <span class="keywordflow">return</span> m_nFPS; }</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_c_fast_l_e_d.html#ae5730545ea18b1f5228172f9d246beb6">count</a>();</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">extern</span> <a class="code" href="class_c_fast_l_e_d.html">CFastLED</a> FastLED;</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="comment">// Warnings for undefined things</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="preprocessor">#ifndef HAS_HARDWARE_PIN_SUPPORT</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="preprocessor">#warning &quot;No pin/port mappings found, pin access will be slightly slower. See fastpin.h for info.&quot;</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor">#define NO_HARDWARE_PIN_SUPPORT</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp; <a class="code" href="class_c_fast_l_e_d.html#a646128b7d8c14b5020b285dbc8bc713b">operator[]</a>(<span class="keywordtype">int</span> x);</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div>
+<div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0"> 485</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0">size</a>() { <span class="keywordflow">return</span> (*<span class="keyword">this</span>)[0].size(); }</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</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;FASTLED_NAMESPACE_END</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="preprocessor">#endif</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ae3c0a81b88fb64a65725cb2fed67f766"> 489</a></span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> *<a class="code" href="class_c_fast_l_e_d.html#ae3c0a81b88fb64a65725cb2fed67f766">leds</a>() { <span class="keywordflow">return</span> (*<span class="keyword">this</span>)[0].leds(); }</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;</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor">#define FastSPI_LED FastLED</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="preprocessor">#define FastSPI_LED2 FastLED</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="preprocessor">#ifndef LEDS</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor">#define LEDS FastLED</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor">#endif</span></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;<span class="keyword">extern</span> <a class="code" href="class_c_fast_l_e_d.html">CFastLED</a> FastLED;</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="comment">// Warnings for undefined things</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="preprocessor">#ifndef HAS_HARDWARE_PIN_SUPPORT</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="preprocessor">#warning &quot;No pin/port mappings found, pin access will be slightly slower. See fastpin.h for info.&quot;</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="preprocessor">#define NO_HARDWARE_PIN_SUPPORT</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor">#endif</span></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="l00507"></a><span class="lineno"> 507</span>&#160;FASTLED_NAMESPACE_END</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;<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:440</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="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:457</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:302</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:84</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:446</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_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:73</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:93</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:463</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:91</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:37</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_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:485</div></div>
+<div class="ttc" id="class_s_k6812_html"><div class="ttname"><a href="class_s_k6812.html">SK6812</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:86</div></div>
<div class="ttc" id="fastled__config_8h_html"><div class="ttname"><a href="fastled__config_8h.html">fastled_config.h</a></div><div class="ttdoc">contains definitions that can be used to configure FastLED at compile time </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:434</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_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:448</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:402</div></div>
<div class="ttc" id="colorpalettes_8h_html"><div class="ttname"><a href="colorpalettes_8h.html">colorpalettes.h</a></div><div class="ttdoc">contains definitions for the predefined color palettes supplied by FastLED. </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:29</div></div>
<div class="ttc" id="fastpin_8h_html"><div class="ttname"><a href="fastpin_8h.html">fastpin.h</a></div><div class="ttdoc">Class base definitions for defining fast pin access. </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:443</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:461</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_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:460</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:478</div></div>
+<div class="ttc" id="class_c_fast_l_e_d_html_a996375a3f4a7b8c096f87d8a93c2b196"><div class="ttname"><a href="class_c_fast_l_e_d.html#a996375a3f4a7b8c096f87d8a93c2b196">CFastLED::setMaxPowerInVoltsAndMilliamps</a></div><div class="ttdeci">void setMaxPowerInVoltsAndMilliamps(uint8_t volts, uint32_t milliamps)</div><div class="ttdoc">Set the maximum power to be used, given in volts and milliamps. </div><div class="ttdef"><b>Definition:</b> FastLED.h:407</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:63</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:137</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:431</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:452</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:449</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_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:254</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:445</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:469</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:81</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:466</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:78</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:103</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:427</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_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:143</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:127</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:473</div></div>
+<div class="ttc" id="class_c_fast_l_e_d_html_ab07d62cdec036af9ede70cbd06ece40f"><div class="ttname"><a href="class_c_fast_l_e_d.html#ab07d62cdec036af9ede70cbd06ece40f">CFastLED::setMaxPowerInMilliWatts</a></div><div class="ttdeci">void setMaxPowerInMilliWatts(uint32_t milliwatts)</div><div class="ttdoc">Set the maximum power to be used, given in milliwatts. </div><div class="ttdef"><b>Definition:</b> FastLED.h:411</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:95</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:441</div></div>
+<div class="ttc" id="class_t_m1812_html"><div class="ttname"><a href="class_t_m1812.html">TM1812</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:77</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:489</div></div>
<div class="ttc" id="chipsets_8h_html"><div class="ttname"><a href="chipsets_8h.html">chipsets.h</a></div><div class="ttdoc">contains the bulk of the definitions for the various LED chipsets supported. </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:455</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>
-<div class="ttc" id="class_c_fast_l_e_d_html_ad266c3e649cc12a6dc49a1e229acc282"><div class="ttname"><a href="class_c_fast_l_e_d.html#ad266c3e649cc12a6dc49a1e229acc282">CFastLED::setCorrection</a></div><div class="ttdeci">void setCorrection(const struct CRGB &amp;correction)</div><div class="ttdoc">Set a global color correction. </div><div class="ttdef"><b>Definition:</b> FastLED.cpp:128</div></div>
-<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_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:472</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:76</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:75</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:418</div></div>
+<div class="ttc" id="class_c_fast_l_e_d_html_ad266c3e649cc12a6dc49a1e229acc282"><div class="ttname"><a href="class_c_fast_l_e_d.html#ad266c3e649cc12a6dc49a1e229acc282">CFastLED::setCorrection</a></div><div class="ttdeci">void setCorrection(const struct CRGB &amp;correction)</div><div class="ttdoc">Set a global color correction. </div><div class="ttdef"><b>Definition:</b> FastLED.cpp:135</div></div>
+<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:85</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:85</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:83</div></div>
<div class="ttc" id="controller_8h_html"><div class="ttname"><a href="controller_8h.html">controller.h</a></div><div class="ttdoc">base definitions used by led controllers for writing out led data </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:258</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_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:272</div></div>
+<div class="ttc" id="class_s_k6812_controller_html"><div class="ttname"><a href="class_s_k6812_controller.html">SK6812Controller</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:454</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:30</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:98</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:458</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:398</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:475</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="colorutils_8h_html"><div class="ttname"><a href="colorutils_8h.html">colorutils.h</a></div><div class="ttdoc">functions for color fill, paletters, blending, and more </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:437</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_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:451</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:434</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:79</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:82</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:159</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_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:196</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:145</div></div>
-<div class="ttc" id="_fast_l_e_d_8h_html_ac06549dc4a351e2c8f1dda8ae81f7926"><div class="ttname"><a href="_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926">ESPIChipsets</a></div><div class="ttdeci">ESPIChipsets</div><div class="ttdoc">definitions for the spi chipset constants </div><div class="ttdef"><b>Definition:</b> FastLED.h:59</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>
-<div class="ttc" id="class_a_p_a104_html"><div class="ttname"><a href="class_a_p_a104.html">APA104</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:84</div></div>
-<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="_fast_l_e_d_8h_html_ac06549dc4a351e2c8f1dda8ae81f7926"><div class="ttname"><a href="_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926">ESPIChipsets</a></div><div class="ttdeci">ESPIChipsets</div><div class="ttdoc">definitions for the spi chipset constants </div><div class="ttdef"><b>Definition:</b> FastLED.h:61</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:100</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:88</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:90</div></div>
+<div class="ttc" id="class_a_p_a104_html"><div class="ttname"><a href="class_a_p_a104.html">APA104</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:89</div></div>
+<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:107</div></div>
<div class="ttc" id="fastled__progmem_8h_html"><div class="ttname"><a href="fastled__progmem_8h.html">fastled_progmem.h</a></div><div class="ttdoc">wrapper definitions to allow seamless use of PROGMEM in environmens that have it </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:348</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 class="ttc" id="class_p_l9823_controller_html"><div class="ttname"><a href="class_p_l9823_controller.html">PL9823Controller</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:481</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:209</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:115</div></div>
+<div class="ttc" id="class_p_l9823_html"><div class="ttname"><a href="class_p_l9823.html">PL9823</a></div><div class="ttdef"><b>Definition:</b> FastLED.h:87</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:362</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:80</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:92</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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/annotated.html b/docs/3.1/annotated.html
index 2ec50015..a9da1aa7 100644
--- a/docs/3.1/annotated.html
+++ b/docs/3.1/annotated.html
@@ -124,53 +124,60 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr id="row_30_" 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_l_p_d8806_controller.html" target="_self">LPD8806Controller</a></td><td class="desc">LPD8806 controller class </td></tr>
<tr id="row_31_"><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_multi_pixel_controller.html" target="_self">MultiPixelController</a></td><td class="desc"></td></tr>
<tr id="row_32_" 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_n_e_o_p_i_x_e_l.html" target="_self">NEOPIXEL</a></td><td class="desc"></td></tr>
-<tr id="row_33_"><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_output_pin.html" target="_self">OutputPin</a></td><td class="desc"></td></tr>
-<tr id="row_34_" 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_p9813_controller.html" target="_self">P9813Controller</a></td><td class="desc">P9813 controller class </td></tr>
-<tr id="row_35_"><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_pin.html" target="_self">Pin</a></td><td class="desc"></td></tr>
-<tr id="row_36_" 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_pixel_controller.html" target="_self">PixelController</a></td><td class="desc">Pixel controller class </td></tr>
-<tr id="row_37_"><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="classq.html" target="_self">q</a></td><td class="desc">Template class for represneting fractional ints </td></tr>
-<tr id="row_38_" 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_selectable.html" target="_self">Selectable</a></td><td class="desc"></td></tr>
-<tr id="row_39_"><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_s_m16716_controller.html" target="_self">SM16716Controller</a></td><td class="desc">SM16716 controller class </td></tr>
-<tr id="row_40_" 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_software_s_p_i_output.html" target="_self">SoftwareSPIOutput</a></td><td class="desc"></td></tr>
-<tr id="row_41_"><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_s_p_i_output.html" target="_self">SPIOutput</a></td><td class="desc"></td></tr>
-<tr id="row_42_" 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_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" target="_self">SPIOutput&lt; SPI2_DATA, SPI2_CLOCK, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_43_"><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_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" target="_self">SPIOutput&lt; SPI2_DATA, SPI_CLOCK, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_44_" 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_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" target="_self">SPIOutput&lt; SPI_DATA, SPI2_CLOCK, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_45_"><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_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" target="_self">SPIOutput&lt; SPI_DATA, SPI_CLOCK, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_46_" 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_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" target="_self">SPIOutput&lt; SPI_UART0_DATA, SPI_UART0_CLOCK, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_47_"><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_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" target="_self">SPIOutput&lt; SPI_UART1_DATA, SPI_UART1_CLOCK, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_48_" 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="structsub4.html" target="_self">sub4</a></td><td class="desc">Structure representing 32 bits of access </td></tr>
-<tr id="row_49_"><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="uniont_bytes_for_long.html" target="_self">tBytesForLong</a></td><td class="desc"></td></tr>
-<tr id="row_50_" 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_t_m1803.html" target="_self">TM1803</a></td><td class="desc"></td></tr>
-<tr id="row_51_"><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_t_m1803_controller400_khz.html" target="_self">TM1803Controller400Khz</a></td><td class="desc"></td></tr>
-<tr id="row_52_" 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_t_m1804.html" target="_self">TM1804</a></td><td class="desc"></td></tr>
-<tr id="row_53_"><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_t_m1809.html" target="_self">TM1809</a></td><td class="desc"></td></tr>
-<tr id="row_54_" 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_t_m1809_controller800_khz.html" target="_self">TM1809Controller800Khz</a></td><td class="desc"></td></tr>
-<tr id="row_55_"><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_t_m1829.html" target="_self">TM1829</a></td><td class="desc"></td></tr>
-<tr id="row_56_" 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_t_m1829_controller1600_khz.html" target="_self">TM1829Controller1600Khz</a></td><td class="desc"></td></tr>
-<tr id="row_57_"><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_t_m1829_controller800_khz.html" target="_self">TM1829Controller800Khz</a></td><td class="desc"></td></tr>
-<tr id="row_58_" 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="union_t_r_g_b_gradient_palette_entry_union.html" target="_self">TRGBGradientPaletteEntryUnion</a></td><td class="desc"></td></tr>
-<tr id="row_59_"><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_u_c_s1903.html" target="_self">UCS1903</a></td><td class="desc"></td></tr>
-<tr id="row_60_" 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_u_c_s1903_b.html" target="_self">UCS1903B</a></td><td class="desc"></td></tr>
-<tr id="row_61_"><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_u_c_s1903_b_controller800_khz.html" target="_self">UCS1903BController800Khz</a></td><td class="desc"></td></tr>
-<tr id="row_62_" 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_u_c_s1903_controller400_khz.html" target="_self">UCS1903Controller400Khz</a></td><td class="desc"></td></tr>
-<tr id="row_63_"><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_u_c_s1904.html" target="_self">UCS1904</a></td><td class="desc"></td></tr>
-<tr id="row_64_" 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_u_c_s1904_controller800_khz.html" target="_self">UCS1904Controller800Khz</a></td><td class="desc"></td></tr>
-<tr id="row_65_"><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_w_s2801_controller.html" target="_self">WS2801Controller</a></td><td class="desc">WS2801 controller class </td></tr>
-<tr id="row_66_" 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_w_s2803_controller.html" target="_self">WS2803Controller</a></td><td class="desc"></td></tr>
-<tr id="row_67_"><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_w_s2811.html" target="_self">WS2811</a></td><td class="desc"></td></tr>
-<tr id="row_68_" 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_w_s2811__400.html" target="_self">WS2811_400</a></td><td class="desc"></td></tr>
-<tr id="row_69_"><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_w_s2811_controller400_khz.html" target="_self">WS2811Controller400Khz</a></td><td class="desc"></td></tr>
-<tr id="row_70_" 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_w_s2811_controller800_khz.html" target="_self">WS2811Controller800Khz</a></td><td class="desc"></td></tr>
-<tr id="row_71_"><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_w_s2812.html" target="_self">WS2812</a></td><td class="desc"></td></tr>
-<tr id="row_72_" 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_w_s2812_b.html" target="_self">WS2812B</a></td><td class="desc"></td></tr>
-<tr id="row_73_"><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_w_s2812_controller800_khz.html" target="_self">WS2812Controller800Khz</a></td><td class="desc"></td></tr>
+<tr id="row_33_"><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_n_o_p_s_p_i_output.html" target="_self">NOPSPIOutput</a></td><td class="desc">A nop/stub class, mostly to show the SPI methods that are needed/used by the various SPI chipset implementations </td></tr>
+<tr id="row_34_" 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_output_pin.html" target="_self">OutputPin</a></td><td class="desc"></td></tr>
+<tr id="row_35_"><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_p9813_controller.html" target="_self">P9813Controller</a></td><td class="desc">P9813 controller class </td></tr>
+<tr id="row_36_" 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_pin.html" target="_self">Pin</a></td><td class="desc"></td></tr>
+<tr id="row_37_"><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_pixel_controller.html" target="_self">PixelController</a></td><td class="desc">Pixel controller class </td></tr>
+<tr id="row_38_" 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_p_l9823.html" target="_self">PL9823</a></td><td class="desc"></td></tr>
+<tr id="row_39_"><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_p_l9823_controller.html" target="_self">PL9823Controller</a></td><td class="desc"></td></tr>
+<tr id="row_40_" 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="classq.html" target="_self">q</a></td><td class="desc">Template class for represneting fractional ints </td></tr>
+<tr id="row_41_"><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_r_e_f_hardware_s_p_i_output.html" target="_self">REFHardwareSPIOutput</a></td><td class="desc"></td></tr>
+<tr id="row_42_" 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_selectable.html" target="_self">Selectable</a></td><td class="desc"></td></tr>
+<tr id="row_43_"><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_s_k6812.html" target="_self">SK6812</a></td><td class="desc"></td></tr>
+<tr id="row_44_" 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_s_k6812_controller.html" target="_self">SK6812Controller</a></td><td class="desc"></td></tr>
+<tr id="row_45_"><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_s_m16716_controller.html" target="_self">SM16716Controller</a></td><td class="desc">SM16716 controller class </td></tr>
+<tr id="row_46_" 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_software_s_p_i_output.html" target="_self">SoftwareSPIOutput</a></td><td class="desc"></td></tr>
+<tr id="row_47_"><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_s_p_i_output.html" target="_self">SPIOutput</a></td><td class="desc"></td></tr>
+<tr id="row_48_" 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_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" target="_self">SPIOutput&lt; SPI2_DATA, SPI2_CLOCK, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_49_"><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_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" target="_self">SPIOutput&lt; SPI2_DATA, SPI_CLOCK, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_50_" 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_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" target="_self">SPIOutput&lt; SPI_DATA, SPI2_CLOCK, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_51_"><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_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" target="_self">SPIOutput&lt; SPI_DATA, SPI_CLOCK, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_52_" 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_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" target="_self">SPIOutput&lt; SPI_UART0_DATA, SPI_UART0_CLOCK, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_53_"><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_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" target="_self">SPIOutput&lt; SPI_UART1_DATA, SPI_UART1_CLOCK, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_54_" 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="structsub4.html" target="_self">sub4</a></td><td class="desc">Structure representing 32 bits of access </td></tr>
+<tr id="row_55_"><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="uniont_bytes_for_long.html" target="_self">tBytesForLong</a></td><td class="desc"></td></tr>
+<tr id="row_56_" 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_t_m1803.html" target="_self">TM1803</a></td><td class="desc"></td></tr>
+<tr id="row_57_"><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_t_m1803_controller400_khz.html" target="_self">TM1803Controller400Khz</a></td><td class="desc"></td></tr>
+<tr id="row_58_" 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_t_m1804.html" target="_self">TM1804</a></td><td class="desc"></td></tr>
+<tr id="row_59_"><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_t_m1809.html" target="_self">TM1809</a></td><td class="desc"></td></tr>
+<tr id="row_60_" 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_t_m1809_controller800_khz.html" target="_self">TM1809Controller800Khz</a></td><td class="desc"></td></tr>
+<tr id="row_61_"><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_t_m1812.html" target="_self">TM1812</a></td><td class="desc"></td></tr>
+<tr id="row_62_" 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_t_m1829.html" target="_self">TM1829</a></td><td class="desc"></td></tr>
+<tr id="row_63_"><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_t_m1829_controller1600_khz.html" target="_self">TM1829Controller1600Khz</a></td><td class="desc"></td></tr>
+<tr id="row_64_" 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_t_m1829_controller800_khz.html" target="_self">TM1829Controller800Khz</a></td><td class="desc"></td></tr>
+<tr id="row_65_"><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="union_t_r_g_b_gradient_palette_entry_union.html" target="_self">TRGBGradientPaletteEntryUnion</a></td><td class="desc"></td></tr>
+<tr id="row_66_" 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_u_c_s1903.html" target="_self">UCS1903</a></td><td class="desc"></td></tr>
+<tr id="row_67_"><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_u_c_s1903_b.html" target="_self">UCS1903B</a></td><td class="desc"></td></tr>
+<tr id="row_68_" 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_u_c_s1903_b_controller800_khz.html" target="_self">UCS1903BController800Khz</a></td><td class="desc"></td></tr>
+<tr id="row_69_"><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_u_c_s1903_controller400_khz.html" target="_self">UCS1903Controller400Khz</a></td><td class="desc"></td></tr>
+<tr id="row_70_" 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_u_c_s1904.html" target="_self">UCS1904</a></td><td class="desc"></td></tr>
+<tr id="row_71_"><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_u_c_s1904_controller800_khz.html" target="_self">UCS1904Controller800Khz</a></td><td class="desc"></td></tr>
+<tr id="row_72_" 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_w_s2801_controller.html" target="_self">WS2801Controller</a></td><td class="desc">WS2801 controller class </td></tr>
+<tr id="row_73_"><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_w_s2803_controller.html" target="_self">WS2803Controller</a></td><td class="desc"></td></tr>
+<tr id="row_74_" 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_w_s2811.html" target="_self">WS2811</a></td><td class="desc"></td></tr>
+<tr id="row_75_"><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_w_s2811__400.html" target="_self">WS2811_400</a></td><td class="desc"></td></tr>
+<tr id="row_76_" 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_w_s2811_controller400_khz.html" target="_self">WS2811Controller400Khz</a></td><td class="desc"></td></tr>
+<tr id="row_77_"><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_w_s2811_controller800_khz.html" target="_self">WS2811Controller800Khz</a></td><td class="desc"></td></tr>
+<tr id="row_78_" 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_w_s2812.html" target="_self">WS2812</a></td><td class="desc"></td></tr>
+<tr id="row_79_"><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_w_s2812_b.html" target="_self">WS2812B</a></td><td class="desc"></td></tr>
+<tr id="row_80_" 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_w_s2812_controller800_khz.html" target="_self">WS2812Controller800Khz</a></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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 e5fc573c..4eb934e9 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 f216bd49..e53e20e1 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 23:10:46 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10:35 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.html b/docs/3.1/chipsets_8h.html
index 3c4fcc47..761e8b47 100644
--- a/docs/3.1/chipsets_8h.html
+++ b/docs/3.1/chipsets_8h.html
@@ -122,6 +122,8 @@ Classes</h2></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_s_k6812_controller.html">SK6812Controller&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>
@@ -138,6 +140,8 @@ Classes</h2></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_p_l9823_controller.html">PL9823Controller&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>
@@ -164,13 +168,17 @@ Classes</h2></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_s_k6812_controller.html">SK6812Controller&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_p_l9823_controller.html">PL9823Controller&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>
<div class="textblock"><p>contains the bulk of the definitions for the various LED chipsets supported. </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 760db1a2..8136edb6 100644
--- a/docs/3.1/chipsets_8h_source.html
+++ b/docs/3.1/chipsets_8h_source.html
@@ -247,401 +247,392 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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; startBoundary();</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; uint8_t b = pixels.loadAndScale0();</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; mSPI.writeWord(0xFF00 | b);</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; uint16_t w = pixels.loadAndScale1() &lt;&lt; 8;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; w |= pixels.loadAndScale2();</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; mSPI.writeWord(w);</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; pixels.stepDithering();</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; endBoundary(nLeds);</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; mSPI.waitFully();</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; mSPI.release();</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"><a class="line" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332"> 203</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="l00204"></a><span class="lineno"> 204</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="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor">#ifdef FASTLED_SPI_BYTE_ONLY</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; mSPI.writeByte(0xFF);</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; mSPI.writeByte(pixels.loadAndScale0());</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; mSPI.writeByte(pixels.loadAndScale1());</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; mSPI.writeByte(pixels.loadAndScale2());</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; uint16_t b = 0xFF00 | (uint16_t)pixels.loadAndScale0();</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; mSPI.writeWord(b);</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; uint16_t w = pixels.loadAndScale1() &lt;&lt; 8;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; w |= pixels.loadAndScale2();</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; mSPI.writeWord(w);</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; pixels.stepDithering();</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; endBoundary(nLeds);</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; mSPI.select();</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; startBoundary();</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; uint16_t b = 0xFF00 | (uint16_t)pixels.loadAndScale0();</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; mSPI.writeWord(b);</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; uint16_t w = pixels.loadAndScale1() &lt;&lt; 8;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; w |= pixels.loadAndScale2();</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; mSPI.writeWord(w);</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; pixels.advanceData();</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; pixels.stepDithering();</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; endBoundary(nLeds);</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; mSPI.release();</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;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332"> 224</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="l00225"></a><span class="lineno"> 225</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="l00226"></a><span class="lineno"> 226</span>&#160;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; mSPI.select();</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; startBoundary();</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; mSPI.writeByte(0xFF);</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; uint8_t b = pixels.loadAndScale0(); mSPI.writeByte(b);</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; b = pixels.loadAndScale1(); mSPI.writeByte(b);</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; b = pixels.loadAndScale2(); mSPI.writeByte(b);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; pixels.advanceData();</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; pixels.stepDithering();</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; endBoundary(nLeds);</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; mSPI.release();</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;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;};</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</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="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</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="l00258"></a><span class="lineno"><a class="line" href="class_p9813_controller.html"> 258</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="l00259"></a><span class="lineno"> 259</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="l00260"></a><span class="lineno"> 260</span>&#160; SPI mSPI;</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="keywordtype">void</span> writeBoundary() { mSPI.writeWord(0); mSPI.writeWord(0); }</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</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="l00265"></a><span class="lineno"> 265</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="l00266"></a><span class="lineno"> 266</span>&#160; mSPI.writeByte(top); mSPI.writeByte(b); mSPI.writeByte(g); mSPI.writeByte(r);</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;</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="class_p9813_controller.html">P9813Controller</a>() {}</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"><a class="line" href="class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a"> 272</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="l00273"></a><span class="lineno"> 273</span>&#160; mSPI.init();</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; mSPI.waitFully();</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; mSPI.release();</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;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332"> 210</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="l00211"></a><span class="lineno"> 211</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="l00212"></a><span class="lineno"> 212</span>&#160;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; mSPI.select();</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; startBoundary();</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor">#ifdef FASTLED_SPI_BYTE_ONLY</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; mSPI.writeByte(0xFF);</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; mSPI.writeByte(pixels.loadAndScale0());</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; mSPI.writeByte(pixels.loadAndScale1());</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; mSPI.writeByte(pixels.loadAndScale2());</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; uint16_t b = 0xFF00 | (uint16_t)pixels.loadAndScale0();</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; mSPI.writeWord(b);</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; uint16_t w = pixels.loadAndScale1() &lt;&lt; 8;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; w |= pixels.loadAndScale2();</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; mSPI.writeWord(w);</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; pixels.stepDithering();</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; pixels.advanceData();</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; endBoundary(nLeds);</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; mSPI.waitFully();</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; mSPI.release();</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="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332"> 238</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="l00239"></a><span class="lineno"> 239</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="l00240"></a><span class="lineno"> 240</span>&#160;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; mSPI.select();</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; startBoundary();</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; mSPI.writeByte(0xFF);</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; uint8_t b = pixels.loadAndScale0(); mSPI.writeByte(b);</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; b = pixels.loadAndScale1(); mSPI.writeByte(b);</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; b = pixels.loadAndScale2(); mSPI.writeByte(b);</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; pixels.advanceData();</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; pixels.stepDithering();</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; endBoundary(nLeds);</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; mSPI.waitFully();</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; mSPI.release();</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor">#endif</span></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;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</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="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</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="l00272"></a><span class="lineno"><a class="line" href="class_p9813_controller.html"> 272</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="l00273"></a><span class="lineno"> 273</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="l00274"></a><span class="lineno"> 274</span>&#160; SPI mSPI;</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"><a class="line" href="class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c"> 276</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="l00277"></a><span class="lineno"> 277</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="l00278"></a><span class="lineno"> 278</span>&#160; }</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;<span class="keyword">protected</span>:</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"><a class="line" href="class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a"> 282</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="l00283"></a><span class="lineno"> 283</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="l00284"></a><span class="lineno"> 284</span>&#160;</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; mSPI.select();</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; writeBoundary();</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">while</span>(nLeds--) {</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; writeLed(pixels.loadAndScale0(), pixels.loadAndScale1(), pixels.loadAndScale2());</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; pixels.stepDithering();</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; writeBoundary();</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordtype">void</span> writeBoundary() { mSPI.writeWord(0); mSPI.writeWord(0); }</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; <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="l00279"></a><span class="lineno"> 279</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="l00280"></a><span class="lineno"> 280</span>&#160; mSPI.writeByte(top); mSPI.writeByte(b); mSPI.writeByte(g); mSPI.writeByte(r);</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;</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="class_p9813_controller.html">P9813Controller</a>() {}</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"><a class="line" href="class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a"> 286</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="l00287"></a><span class="lineno"> 287</span>&#160; mSPI.init();</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"><a class="line" href="class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c"> 290</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="l00291"></a><span class="lineno"> 291</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="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; mSPI.waitFully();</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; mSPI.release();</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;</div>
-<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81"> 298</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="l00299"></a><span class="lineno"> 299</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="l00294"></a><span class="lineno"> 294</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
+<div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a"> 296</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="l00297"></a><span class="lineno"> 297</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="l00298"></a><span class="lineno"> 298</span>&#160;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; mSPI.select();</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; mSPI.select();</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; writeBoundary();</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; writeLed(pixels.loadAndScale0(), pixels.loadAndScale1(), pixels.loadAndScale2());</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; pixels.advanceData();</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; pixels.stepDithering();</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; writeBoundary();</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; mSPI.waitFully();</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; writeBoundary();</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">while</span>(nLeds--) {</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; writeLed(pixels.loadAndScale0(), pixels.loadAndScale1(), pixels.loadAndScale2());</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;</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; mSPI.waitFully();</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; mSPI.release();</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; }</div>
+<div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81"> 312</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="l00313"></a><span class="lineno"> 313</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="l00314"></a><span class="lineno"> 314</span>&#160;</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81"> 316</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="l00317"></a><span class="lineno"> 317</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="l00318"></a><span class="lineno"> 318</span>&#160;</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; mSPI.select();</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; writeBoundary();</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; writeLed(pixels.loadAndScale0(), pixels.loadAndScale1(), pixels.loadAndScale2());</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; pixels.advanceData();</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; pixels.stepDithering();</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; writeBoundary();</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; mSPI.release();</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="preprocessor">#endif</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;};</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; mSPI.select();</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; writeBoundary();</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; writeLed(pixels.loadAndScale0(), pixels.loadAndScale1(), pixels.loadAndScale2());</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; pixels.advanceData();</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; pixels.stepDithering();</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; writeBoundary();</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; mSPI.waitFully();</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; mSPI.release();</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="preprocessor">#ifdef SUPPORT_ARGB</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81"> 330</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="l00331"></a><span class="lineno"> 331</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="l00332"></a><span class="lineno"> 332</span>&#160;</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; mSPI.select();</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;</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</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="l00339"></a><span class="lineno"> 339</span>&#160;<span class="comment">//</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="l00347"></a><span class="lineno"> 347</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="l00348"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html"> 348</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="l00349"></a><span class="lineno"> 349</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="l00350"></a><span class="lineno"> 350</span>&#160; SPI mSPI;</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; <span class="keywordtype">void</span> writeHeader() {</div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</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="l00354"></a><span class="lineno"> 354</span>&#160; mSPI.select();</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; mSPI.writeBytesValueRaw(0, 6);</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; mSPI.release();</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</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"> 362</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="class_s_m16716_controller.html">SM16716Controller</a>() {}</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"><a class="line" href="class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591"> 365</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="l00366"></a><span class="lineno"> 366</span>&#160; mSPI.init();</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;</div>
-<div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8"> 369</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="l00370"></a><span class="lineno"> 370</span>&#160; mSPI.select();</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">while</span>(nLeds--) {</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; mSPI.template writeBit&lt;0&gt;(1);</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; mSPI.writeByte(0);</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; mSPI.writeByte(0);</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; mSPI.writeByte(0);</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; }</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; mSPI.release();</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; writeHeader();</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;</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="keyword">protected</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"><a class="line" href="class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677"> 384</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="l00385"></a><span class="lineno"> 385</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="l00386"></a><span class="lineno"> 386</span>&#160; writeHeader();</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;</div>
-<div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d"> 389</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="l00390"></a><span class="lineno"> 390</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="l00391"></a><span class="lineno"> 391</span>&#160; <span class="comment">// of each triplet of bytes for rgb data</span></div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="comment">// writeHeader();</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</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="l00394"></a><span class="lineno"> 394</span>&#160; writeHeader();</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;</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</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="l00399"></a><span class="lineno"> 399</span>&#160; mSPI.writeBytesValue(0, 6);</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; writeBoundary();</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; writeLed(pixels.loadAndScale0(), pixels.loadAndScale1(), pixels.loadAndScale2());</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; pixels.advanceData();</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; pixels.stepDithering();</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; writeBoundary();</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; mSPI.waitFully();</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; mSPI.release();</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="preprocessor">#endif</span></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;</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</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="l00353"></a><span class="lineno"> 353</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</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="l00362"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html"> 362</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="l00363"></a><span class="lineno"> 363</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="l00364"></a><span class="lineno"> 364</span>&#160; SPI mSPI;</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"> 366</span>&#160; <span class="keywordtype">void</span> writeHeader() {</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</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="l00368"></a><span class="lineno"> 368</span>&#160; mSPI.select();</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; mSPI.writeBytesValueRaw(0, 6);</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; mSPI.waitFully();</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; mSPI.release();</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="keyword">public</span>:</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <a class="code" href="class_s_m16716_controller.html">SM16716Controller</a>() {}</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"><a class="line" href="class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591"> 379</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="l00380"></a><span class="lineno"> 380</span>&#160; mSPI.init();</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; }</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div>
+<div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8"> 383</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="l00384"></a><span class="lineno"> 384</span>&#160; mSPI.select();</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">while</span>(nLeds--) {</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; mSPI.template writeBit&lt;0&gt;(1);</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; mSPI.writeByte(0);</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; mSPI.writeByte(0);</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; mSPI.writeByte(0);</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; mSPI.waitFully();</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; mSPI.release();</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; writeHeader();</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;</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="keyword">protected</span>:</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"><a class="line" href="class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677"> 398</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="l00399"></a><span class="lineno"> 399</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="l00400"></a><span class="lineno"> 400</span>&#160; writeHeader();</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="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="l00404"></a><span class="lineno"> 404</span>&#160; <span class="comment">// of each triplet of bytes for rgb data</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</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="l00406"></a><span class="lineno"> 406</span>&#160; }</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;};</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</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="l00413"></a><span class="lineno"> 413</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor">#ifdef FASTLED_HAS_CLOCKLESS</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</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="l00422"></a><span class="lineno"> 422</span>&#160;<span class="comment">// need the more tightly defined timeframes.</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</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="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor">#define FMUL (F_CPU/8000000)</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="comment">// LPD1886</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</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="l00427"></a><span class="lineno"><a class="line" href="class_l_p_d1886_controller1250_khz.html"> 427</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="l00428"></a><span class="lineno"> 428</span>&#160;</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="comment">// WS2811@800khz 2 clocks, 5 clocks, 3 clocks</span></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_w_s2812_controller800_khz.html"> 431</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="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_w_s2811_controller800_khz.html"> 434</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="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_w_s2811_controller400_khz.html"> 437</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="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_u_c_s1903_controller400_khz.html"> 440</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="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_u_c_s1903_b_controller800_khz.html"> 443</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="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_u_c_s1904_controller800_khz.html"> 446</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="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_t_m1809_controller800_khz.html"> 449</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="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_t_m1803_controller400_khz.html"> 452</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="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">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_t_m1829_controller800_khz.html"> 455</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="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_controller400_khz.html"> 458</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="l00459"></a><span class="lineno"> 459</span>&#160;</div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</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="l00461"></a><span class="lineno"><a class="line" href="class_g_w6205_controller800_khz.html"> 461</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="l00462"></a><span class="lineno"> 462</span>&#160;</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="comment">// GW6205@400khz - 800ns, 800ns, 800ns</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d"> 403</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="l00404"></a><span class="lineno"> 404</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="l00405"></a><span class="lineno"> 405</span>&#160; <span class="comment">// of each triplet of bytes for rgb data</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="comment">// writeHeader();</span></div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</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="l00408"></a><span class="lineno"> 408</span>&#160; writeHeader();</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; }</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">#ifdef SUPPORT_ARGB</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</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="l00413"></a><span class="lineno"> 413</span>&#160; mSPI.writeBytesValue(0, 6);</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</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; <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="l00418"></a><span class="lineno"> 418</span>&#160; <span class="comment">// of each triplet of bytes for rgb data</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</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="l00420"></a><span class="lineno"> 420</span>&#160; }</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;};</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</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="l00427"></a><span class="lineno"> 427</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="preprocessor">#ifdef FASTLED_HAS_CLOCKLESS</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</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="l00436"></a><span class="lineno"> 436</span>&#160;<span class="comment">// need the more tightly defined timeframes.</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</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="l00438"></a><span class="lineno"> 438</span>&#160;<span class="preprocessor">#define FMUL (F_CPU/8000000)</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="comment">// LPD1886</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</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="l00441"></a><span class="lineno"><a class="line" href="class_l_p_d1886_controller1250_khz.html"> 441</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="l00442"></a><span class="lineno"> 442</span>&#160;</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="comment">// WS2811@800khz 2 clocks, 5 clocks, 3 clocks</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</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="l00445"></a><span class="lineno"><a class="line" href="class_w_s2812_controller800_khz.html"> 445</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="l00446"></a><span class="lineno"> 446</span>&#160;</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</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="l00448"></a><span class="lineno"><a class="line" href="class_w_s2811_controller800_khz.html"> 448</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="l00449"></a><span class="lineno"> 449</span>&#160;</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</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="l00451"></a><span class="lineno"><a class="line" href="class_w_s2811_controller400_khz.html"> 451</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="l00452"></a><span class="lineno"> 452</span>&#160;</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</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="l00454"></a><span class="lineno"><a class="line" href="class_s_k6812_controller.html"> 454</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_k6812_controller.html">SK6812Controller</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="l00455"></a><span class="lineno"> 455</span>&#160;</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"><a class="line" href="class_u_c_s1903_controller400_khz.html"> 457</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="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">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="class_u_c_s1903_b_controller800_khz.html"> 460</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="l00461"></a><span class="lineno"> 461</span>&#160;</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"><a class="line" href="class_u_c_s1904_controller800_khz.html"> 463</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="l00464"></a><span class="lineno"> 464</span>&#160;</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</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="l00466"></a><span class="lineno"> 466</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="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor">#if NO_TIME(800, 800, 800)</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the GW6205@400khz&quot;</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="class_t_m1809_controller800_khz.html"> 466</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="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">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="class_t_m1803_controller400_khz.html"> 469</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="l00470"></a><span class="lineno"> 470</span>&#160;</div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="comment">// GW6205@400khz - 400ns, 400ns, 400ns</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</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="l00473"></a><span class="lineno"> 473</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="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor">#if NO_TIME(400, 400, 400)</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the GW6205@400khz&quot;</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor">#endif</span></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">// UCS1903 - 500ns, 1500ns, 500ns</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</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="l00480"></a><span class="lineno"> 480</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="l00481"></a><span class="lineno"> 481</span>&#160;<span class="preprocessor">#if NO_TIME(500, 1500, 500)</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the UCS1903@400khz&quot;</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;<span class="preprocessor">#endif</span></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;<span class="comment">// UCS1903B - 400ns, 450ns, 450ns</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</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="l00487"></a><span class="lineno"> 487</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="l00488"></a><span class="lineno"> 488</span>&#160;<span class="preprocessor">#if NO_TIME(400, 450, 450)</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the UCS1903B@800khz&quot;</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</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="l00472"></a><span class="lineno"><a class="line" href="class_t_m1829_controller800_khz.html"> 472</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="l00473"></a><span class="lineno"> 473</span>&#160;</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</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="l00475"></a><span class="lineno"><a class="line" href="class_g_w6205_controller400_khz.html"> 475</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="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">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"><a class="line" href="class_g_w6205_controller800_khz.html"> 478</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="l00479"></a><span class="lineno"> 479</span>&#160;</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</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="l00481"></a><span class="lineno"><a class="line" href="class_p_l9823_controller.html"> 481</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_p_l9823_controller.html">PL9823Controller</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 3 * FMUL, 8 * FMUL, 3 * FMUL, RGB_ORDER&gt; {}; </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="preprocessor">#else</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="comment">// GW6205@400khz - 800ns, 800ns, 800ns</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</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="l00486"></a><span class="lineno"> 486</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="l00487"></a><span class="lineno"> 487</span>&#160;</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="comment">// GW6205@400khz - 400ns, 400ns, 400ns</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</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="l00490"></a><span class="lineno"> 490</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="l00491"></a><span class="lineno"> 491</span>&#160;</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="comment">// UCS1904 - 400ns, 400ns, 450ns</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="comment">// UCS1903 - 500ns, 1500ns, 500ns</span></div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</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="l00494"></a><span class="lineno"> 494</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="l00495"></a><span class="lineno"> 495</span>&#160;<span class="preprocessor">#if NO_TIME(400, 400, 450)</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the UCS1904@800khz&quot;</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="preprocessor">#endif</span></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;<span class="comment">// TM1809 - 350ns, 350ns, 550ns</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</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="l00501"></a><span class="lineno"> 501</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="l00502"></a><span class="lineno"> 502</span>&#160;<span class="preprocessor">#if NO_TIME(350, 350, 550)</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the TM1809&quot;</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor">#endif</span></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;<span class="comment">// WS2811 - 320ns, 320ns, 640ns</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</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="l00508"></a><span class="lineno"> 508</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="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor">#if NO_TIME(320, 320, 640)</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the WS2811 (800khz)&quot;</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="comment">// WS2812 - 250ns, 625ns, 375ns</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</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="l00515"></a><span class="lineno"> 515</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="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor">#if NO_TIME(250, 625, 375)</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the WS2812 (800khz)&quot;</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</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="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">// UCS1903B - 400ns, 450ns, 450ns</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_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="l00499"></a><span class="lineno"> 499</span>&#160;</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="comment">// UCS1904 - 400ns, 400ns, 450ns</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</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="l00502"></a><span class="lineno"> 502</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="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">// TM1809 - 350ns, 350ns, 550ns</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_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="l00507"></a><span class="lineno"> 507</span>&#160;</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="comment">// WS2811 - 320ns, 320ns, 640ns</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</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="l00510"></a><span class="lineno"> 510</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="l00511"></a><span class="lineno"> 511</span>&#160;</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="comment">// WS2812 - 250ns, 625ns, 375ns</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</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="l00514"></a><span class="lineno"> 514</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="l00515"></a><span class="lineno"> 515</span>&#160;</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="comment">// WS2811@400khz - 800ns, 800ns, 900ns</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</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="l00518"></a><span class="lineno"> 518</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="l00519"></a><span class="lineno"> 519</span>&#160;</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="comment">// WS2811@400khz - 800ns, 800ns, 900ns</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="comment">// 750NS, 750NS, 750NS</span></div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</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="l00522"></a><span class="lineno"> 522</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="l00523"></a><span class="lineno"> 523</span>&#160;<span class="preprocessor">#if NO_TIME(800, 800, 900)</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for the WS2811 (400Khz)&quot;</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</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="l00523"></a><span class="lineno"> 523</span>&#160;</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</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="l00525"></a><span class="lineno"> 525</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="l00526"></a><span class="lineno"> 526</span>&#160;</div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;<span class="comment">// 750NS, 750NS, 750NS</span></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"> 529</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="l00530"></a><span class="lineno"> 530</span>&#160;<span class="preprocessor">#if NO_TIME(750, 750, 750)</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 the TM1803&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="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_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="l00536"></a><span class="lineno"> 536</span>&#160;</div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</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="l00538"></a><span class="lineno"><a class="line" href="class_t_m1829_controller1600_khz.html"> 538</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="l00539"></a><span class="lineno"> 539</span>&#160;<span class="preprocessor">#if NO_TIME(100, 300, 200)</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles available for TM1829@1.6Mhz&quot;</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</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="l00528"></a><span class="lineno"><a class="line" href="class_t_m1829_controller1600_khz.html"> 528</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="l00529"></a><span class="lineno"> 529</span>&#160;</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</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="l00531"></a><span class="lineno"> 531</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="l00532"></a><span class="lineno"> 532</span>&#160;</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</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="l00534"></a><span class="lineno"> 534</span>&#160;<span class="keyword">class </span><a class="code" href="class_s_k6812_controller.html">SK6812Controller</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(300), NS(300), NS(600), RGB_ORDER&gt; {};</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;<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="l00537"></a><span class="lineno"> 537</span>&#160;<span class="keyword">class </span><a class="code" href="class_p_l9823_controller.html">PL9823Controller</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(350), NS(1010), NS(350), RGB_ORDER&gt; {}; </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="l00541"></a><span class="lineno"> 541</span>&#160;<span class="preprocessor">#endif</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;<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="l00544"></a><span class="lineno"> 544</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="l00545"></a><span class="lineno"> 545</span>&#160;<span class="preprocessor">#if NO_TIME(200,400,200)</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;<span class="preprocessor">#warning &quot;Not enough clock cycles for LPD1886&quot;</span></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="l00548"></a><span class="lineno"> 548</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;</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;FASTLED_NAMESPACE_END</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="preprocessor">#endif</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;FASTLED_NAMESPACE_END</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;<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:440</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:457</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:446</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:463</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:37</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:110</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:73</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:434</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:538</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:448</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:528</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:63</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:29</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:203</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:443</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:272</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:365</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:461</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:210</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:460</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:286</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:379</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:478</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:173</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:58</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:282</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:369</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:184</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:431</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:452</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:298</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:449</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:296</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:383</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:187</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:445</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:469</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:312</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:466</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:177</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:103</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:427</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:441</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:115</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:455</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:472</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:77</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:123</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:276</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:258</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:389</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:290</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:272</div></div>
+<div class="ttc" id="class_s_k6812_controller_html"><div class="ttname"><a href="class_s_k6812_controller.html">SK6812Controller</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:454</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:403</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:183</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:458</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:437</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:475</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:451</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:138</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:159</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:145</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:85</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:384</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:348</div></div>
+<div class="ttc" id="class_p_l9823_controller_html"><div class="ttname"><a href="class_p_l9823_controller.html">PL9823Controller</a></div><div class="ttdef"><b>Definition:</b> chipsets.h:481</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:398</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:362</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:129</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:46 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10:35 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 e9eb8dab..ee9a6886 100644
--- a/docs/3.1/class_a_p_a102_controller-members.html
+++ b/docs/3.1/class_a_p_a102_controller-members.html
@@ -96,44 +96,45 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb">clearLeds</a>(int nLeds)</td><td class="entry"><a class="el" href="class_a_p_a102_controller.html">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0">init</a>()</td><td class="entry"><a class="el" href="class_a_p_a102_controller.html">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_a_p_a102_controller.html">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>computeAdjustment</b>(uint8_t scale, const CRGB &amp;colorCorrection, const CRGB &amp;colorTemperature) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0">init</a>()</td><td class="entry"><a class="el" href="class_a_p_a102_controller.html">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_a_p_a102_controller.html">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t brightness) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_a_p_a102_controller.html">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_a_p_a102_controller.html">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t brightness) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_a_p_a102_controller.html">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 55d31abc..adf9aea0 100644
--- a/docs/3.1/class_a_p_a102_controller.html
+++ b/docs/3.1/class_a_p_a102_controller.html
@@ -159,10 +159,10 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struc
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a> ()</td></tr>
<tr class="memdesc:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">zero out the led data managed by this controller <br /></td></tr>
<tr class="separator:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8840496d231f1fe0fa640970dc14db08"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a> ()</td></tr>
-<tr class="memdesc:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
-<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63f75cf7e55cf8da46db5fd27110bb3e"></a>
+virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a> ()</td></tr>
+<tr class="memdesc:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
+<tr class="separator:a63f75cf7e55cf8da46db5fd27110bb3e 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" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
@@ -234,6 +234,9 @@ Additional Inherited Members</h2></td></tr>
static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a> ()</td></tr>
<tr class="memdesc:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the first led controller in the chain of controllers <br /></td></tr>
<tr class="separator:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ad4ceb3bc9ae2efa11e50ffe4b140d4"></a>
+static <a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>computeAdjustment</b> (uint8_t scale, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorCorrection, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorTemperature)</td></tr>
+<tr class="separator:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a4672f8f1e93d5df90685cb62c4ebbe0e inherit pro_attribs_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4672f8f1e93d5df90685cb62c4ebbe0e"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>m_Data</b></td></tr>
@@ -444,7 +447,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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_a104.html b/docs/3.1/class_a_p_a104.html
index 2fafaa1e..626a454e 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 2ec62dc0..bde37efc 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 4d0137ec..87462115 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 efe600ea..91e2cc9a 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 47de0658..485d1fbe 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 5d0897ea..7b6cdb30 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
@@ -123,6 +123,8 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr class="even"><td class="entry"><a class="el" href="class_c_fast_l_e_d.html#a730ba7d967e882b4b893689cf333b2eb">setBrightness</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_fast_l_e_d.html">CFastLED</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_c_fast_l_e_d.html#ad266c3e649cc12a6dc49a1e229acc282">setCorrection</a>(const struct CRGB &amp;correction)</td><td class="entry"><a class="el" href="class_c_fast_l_e_d.html">CFastLED</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_fast_l_e_d.html#a7ae5d3864df01101d82d242c123ffb36">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_fast_l_e_d.html">CFastLED</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_fast_l_e_d.html#ab07d62cdec036af9ede70cbd06ece40f">setMaxPowerInMilliWatts</a>(uint32_t milliwatts)</td><td class="entry"><a class="el" href="class_c_fast_l_e_d.html">CFastLED</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_fast_l_e_d.html#a996375a3f4a7b8c096f87d8a93c2b196">setMaxPowerInVoltsAndMilliamps</a>(uint8_t volts, uint32_t milliamps)</td><td class="entry"><a class="el" href="class_c_fast_l_e_d.html">CFastLED</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_c_fast_l_e_d.html#a1f39e8404db214bbd6a776f52a77d8b1">setMaxRefreshRate</a>(uint16_t refresh, bool constrain=false)</td><td class="entry"><a class="el" href="class_c_fast_l_e_d.html">CFastLED</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_fast_l_e_d.html#a28c2dfb0ec592db03f3063ade135f19f">setTemperature</a>(const struct CRGB &amp;temp)</td><td class="entry"><a class="el" href="class_c_fast_l_e_d.html">CFastLED</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_c_fast_l_e_d.html#a83afdd1e2a21f33ac4f8d2610d6e331b">show</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_fast_l_e_d.html">CFastLED</a></td><td class="entry"></td></tr>
@@ -133,7 +135,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 66050259..ea294a6d 100644
--- a/docs/3.1/class_c_fast_l_e_d.html
+++ b/docs/3.1/class_c_fast_l_e_d.html
@@ -107,6 +107,12 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:ac2615781ec12e025fb17cc0e66281716"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_fast_l_e_d.html#ac2615781ec12e025fb17cc0e66281716">getBrightness</a> ()</td></tr>
<tr class="memdesc:ac2615781ec12e025fb17cc0e66281716"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the current global brightness setting. <a href="#ac2615781ec12e025fb17cc0e66281716">More...</a><br /></td></tr>
<tr class="separator:ac2615781ec12e025fb17cc0e66281716"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a996375a3f4a7b8c096f87d8a93c2b196"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_fast_l_e_d.html#a996375a3f4a7b8c096f87d8a93c2b196">setMaxPowerInVoltsAndMilliamps</a> (uint8_t volts, uint32_t milliamps)</td></tr>
+<tr class="memdesc:a996375a3f4a7b8c096f87d8a93c2b196"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the maximum power to be used, given in volts and milliamps. <a href="#a996375a3f4a7b8c096f87d8a93c2b196">More...</a><br /></td></tr>
+<tr class="separator:a996375a3f4a7b8c096f87d8a93c2b196"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab07d62cdec036af9ede70cbd06ece40f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_fast_l_e_d.html#ab07d62cdec036af9ede70cbd06ece40f">setMaxPowerInMilliWatts</a> (uint32_t milliwatts)</td></tr>
+<tr class="memdesc:ab07d62cdec036af9ede70cbd06ece40f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the maximum power to be used, given in milliwatts. <a href="#ab07d62cdec036af9ede70cbd06ece40f">More...</a><br /></td></tr>
+<tr class="separator:ab07d62cdec036af9ede70cbd06ece40f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83afdd1e2a21f33ac4f8d2610d6e331b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_fast_l_e_d.html#a83afdd1e2a21f33ac4f8d2610d6e331b">show</a> (uint8_t scale)</td></tr>
<tr class="memdesc:a83afdd1e2a21f33ac4f8d2610d6e331b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Update all our controllers with the current led colors, using the passed in brightness. <a href="#a83afdd1e2a21f33ac4f8d2610d6e331b">More...</a><br /></td></tr>
<tr class="separator:a83afdd1e2a21f33ac4f8d2610d6e331b"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -826,6 +832,81 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</div>
</div>
+<a class="anchor" id="ab07d62cdec036af9ede70cbd06ece40f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void CFastLED::setMaxPowerInMilliWatts </td>
+ <td>(</td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>milliwatts</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Set the maximum power to be used, given in milliwatts. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">milliwatts</td><td>- the max power draw desired, in milliwatts </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="a996375a3f4a7b8c096f87d8a93c2b196"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void CFastLED::setMaxPowerInVoltsAndMilliamps </td>
+ <td>(</td>
+ <td class="paramtype">uint8_t&#160;</td>
+ <td class="paramname"><em>volts</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>milliamps</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Set the maximum power to be used, given in volts and milliamps. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">volts</td><td>- how many volts the leds are being driven at (usually 5 or 12) </td></tr>
+ <tr><td class="paramname">milliamps</td><td>- the maximum milliamps of power draw you want </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
<a class="anchor" id="a1f39e8404db214bbd6a776f52a77d8b1"></a>
<div class="memitem">
<div class="memproto">
@@ -1009,7 +1090,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 0f6f578b..57c75716 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
@@ -102,8 +102,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr bgcolor="#f0f0f0"><td class="entry"><b>CHSVPalette16</b>(const CHSV &amp;c1, const CHSV &amp;c2, const CHSV &amp;c3, const CHSV &amp;c4) (defined in <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>entries</b> (defined in <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator CHSV *</b>() (defined in <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const CHSVPalette16 &amp;rhs) (defined in <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const TProgmemHSVPalette16 &amp;rhs) (defined in <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator!=</b>(const CHSVPalette16 rhs) (defined in <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const CHSVPalette16 &amp;rhs) (defined in <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const TProgmemHSVPalette16 &amp;rhs) (defined in <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator==</b>(const CHSVPalette16 rhs) (defined in <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator[]</b>(uint8_t x) __attribute__((always_inline)) (defined in <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator[]</b>(uint8_t x) const __attribute__((always_inline)) (defined in <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator[]</b>(int x) __attribute__((always_inline)) (defined in <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -111,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 b6a94aa7..60d32b84 100644
--- a/docs/3.1/class_c_h_s_v_palette16.html
+++ b/docs/3.1/class_c_h_s_v_palette16.html
@@ -133,6 +133,12 @@ const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td clas
<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>
<tr class="separator:a3c43a80ad28000fffc27f6e1c136d60c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa13a67297f978af5fd633d1ec5b59324"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa13a67297f978af5fd633d1ec5b59324"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator==</b> (const <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> rhs)</td></tr>
+<tr class="separator:aa13a67297f978af5fd633d1ec5b59324"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a471950ec7141c8b3dd8babd2024872c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a471950ec7141c8b3dd8babd2024872c8"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator!=</b> (const <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> rhs)</td></tr>
+<tr class="separator:a471950ec7141c8b3dd8babd2024872c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a027e4e8f0ea7f2e8622e2376e3699e40"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a027e4e8f0ea7f2e8622e2376e3699e40"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>CHSVPalette16</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c1)</td></tr>
<tr class="separator:a027e4e8f0ea7f2e8622e2376e3699e40"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -158,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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-members.html b/docs/3.1/class_c_h_s_v_palette256-members.html
index 231d9014..0740a46a 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
@@ -103,9 +103,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CHSVPalette256</b>(const CHSV &amp;c1, const CHSV &amp;c2, const CHSV &amp;c3, const CHSV &amp;c4) (defined in <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>entries</b> (defined in <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator CHSV *</b>() (defined in <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const CHSVPalette256 &amp;rhs) (defined in <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const CHSVPalette16 &amp;rhs16) (defined in <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const TProgmemRGBPalette16 &amp;rhs) (defined in <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator!=</b>(const CHSVPalette256 rhs) (defined in <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const CHSVPalette256 &amp;rhs) (defined in <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const CHSVPalette16 &amp;rhs16) (defined in <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const TProgmemRGBPalette16 &amp;rhs) (defined in <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator==</b>(const CHSVPalette256 rhs) (defined in <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator[]</b>(uint8_t x) __attribute__((always_inline)) (defined in <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator[]</b>(uint8_t x) const __attribute__((always_inline)) (defined in <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator[]</b>(int x) __attribute__((always_inline)) (defined in <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -113,7 +115,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 a7de285d..bf605003 100644
--- a/docs/3.1/class_c_h_s_v_palette256.html
+++ b/docs/3.1/class_c_h_s_v_palette256.html
@@ -139,6 +139,12 @@ const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td clas
<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>
<tr class="separator:a2e94a07280c6720c649fbc29d88764c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5e46d1372c6572993ecf72104fcc22f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac5e46d1372c6572993ecf72104fcc22f"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator==</b> (const <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a> rhs)</td></tr>
+<tr class="separator:ac5e46d1372c6572993ecf72104fcc22f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3556103918aaa00413ee5f5e509f19ab"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3556103918aaa00413ee5f5e509f19ab"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator!=</b> (const <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a> rhs)</td></tr>
+<tr class="separator:a3556103918aaa00413ee5f5e509f19ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b0595b0dcf855b06ddce441c6293ab5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6b0595b0dcf855b06ddce441c6293ab5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>CHSVPalette256</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c1)</td></tr>
<tr class="separator:a6b0595b0dcf855b06ddce441c6293ab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -164,7 +170,7 @@ Public Attributes</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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-members.html b/docs/3.1/class_c_l_e_d_controller-members.html
index 7fd34565..2fbc5cb1 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
@@ -96,43 +96,44 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#adfa6601c84fefd733904b32ac98b6dae">clearLeds</a>(int nLeds)=0</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af877a15a5ec452780fbd1d359b8a9913">init</a>()=0</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">show</a>(const struct CRGB *data, int nLeds, CRGB scale)=0</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t brightness) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)=0</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>computeAdjustment</b>(uint8_t scale, const CRGB &amp;colorCorrection, const CRGB &amp;colorTemperature) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af877a15a5ec452780fbd1d359b8a9913">init</a>()=0</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">show</a>(const struct CRGB *data, int nLeds, CRGB scale)=0</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t brightness) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)=0</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 069070df..09bb6b59 100644
--- a/docs/3.1/class_c_l_e_d_controller.html
+++ b/docs/3.1/class_c_l_e_d_controller.html
@@ -162,10 +162,10 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struc
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a> ()</td></tr>
<tr class="memdesc:a7b61c81e004c96ff670a2742057a5a52"><td class="mdescLeft">&#160;</td><td class="mdescRight">zero out the led data managed by this controller <br /></td></tr>
<tr class="separator:a7b61c81e004c96ff670a2742057a5a52"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8840496d231f1fe0fa640970dc14db08"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8840496d231f1fe0fa640970dc14db08"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a> ()</td></tr>
-<tr class="memdesc:a8840496d231f1fe0fa640970dc14db08"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
-<tr class="separator:a8840496d231f1fe0fa640970dc14db08"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63f75cf7e55cf8da46db5fd27110bb3e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63f75cf7e55cf8da46db5fd27110bb3e"></a>
+virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a> ()</td></tr>
+<tr class="memdesc:a63f75cf7e55cf8da46db5fd27110bb3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
+<tr class="separator:a63f75cf7e55cf8da46db5fd27110bb3e"><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" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
@@ -220,6 +220,9 @@ Static Public Member Functions</h2></td></tr>
static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a> ()</td></tr>
<tr class="memdesc:a75a5a6ea50899409d875d72393323ca0"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the first led controller in the chain of controllers <br /></td></tr>
<tr class="separator:a75a5a6ea50899409d875d72393323ca0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ad4ceb3bc9ae2efa11e50ffe4b140d4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ad4ceb3bc9ae2efa11e50ffe4b140d4"></a>
+static <a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>computeAdjustment</b> (uint8_t scale, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorCorrection, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorTemperature)</td></tr>
+<tr class="separator:a3ad4ceb3bc9ae2efa11e50ffe4b140d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
@@ -384,7 +387,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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-members.html b/docs/3.1/class_c_min_wait-members.html
index 14100d43..68ebfa1b 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 218f890e..26c9dca3 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 a80ba747..9e1fc48e 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
@@ -109,10 +109,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>entries</b> (defined in <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>loadDynamicGradientPalette</b>(TDynamicRGBGradientPalette_bytes gpal) (defined in <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator CRGB *</b>() (defined in <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const CRGBPalette16 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const CHSVPalette16 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const TProgmemRGBPalette16 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(TProgmemRGBGradientPalette_bytes progpal) (defined in <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator!=</b>(const CRGBPalette16 rhs) (defined in <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const CRGBPalette16 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const CHSVPalette16 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const TProgmemRGBPalette16 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(TProgmemRGBGradientPalette_bytes progpal) (defined in <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator==</b>(const CRGBPalette16 rhs) (defined in <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator[]</b>(uint8_t x) __attribute__((always_inline)) (defined in <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator[]</b>(uint8_t x) const __attribute__((always_inline)) (defined in <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator[]</b>(int x) __attribute__((always_inline)) (defined in <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -120,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 01cb0ad8..b2998c4e 100644
--- a/docs/3.1/class_c_r_g_b_palette16.html
+++ b/docs/3.1/class_c_r_g_b_palette16.html
@@ -124,6 +124,12 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a1e2866fd76857f99b6174a0bfa794328"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1e2866fd76857f99b6174a0bfa794328"></a>
<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:a0c345a47c6f4beab2eb1c9e91264e6e3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0c345a47c6f4beab2eb1c9e91264e6e3"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator==</b> (const <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> rhs)</td></tr>
+<tr class="separator:a0c345a47c6f4beab2eb1c9e91264e6e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7d5587c81f7dee8be4fc701dd6149fda"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d5587c81f7dee8be4fc701dd6149fda"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator!=</b> (const <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> rhs)</td></tr>
+<tr class="separator:a7d5587c81f7dee8be4fc701dd6149fda"><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___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a71d9faa920f5ce3acd7fb96b24e30f86"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -185,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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-members.html b/docs/3.1/class_c_r_g_b_palette256-members.html
index 296c81d3..412f8e8c 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
@@ -110,11 +110,13 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr bgcolor="#f0f0f0"><td class="entry"><b>entries</b> (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>loadDynamicGradientPalette</b>(TDynamicRGBGradientPalette_bytes gpal) (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator CRGB *</b>() (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const CRGBPalette256 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const CHSVPalette256 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const CRGBPalette16 &amp;rhs16) (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const TProgmemRGBPalette16 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(TProgmemRGBGradientPalette_bytes progpal) (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator!=</b>(const CRGBPalette256 rhs) (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const CRGBPalette256 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const CHSVPalette256 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const CRGBPalette16 &amp;rhs16) (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const TProgmemRGBPalette16 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(TProgmemRGBGradientPalette_bytes progpal) (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator==</b>(const CRGBPalette256 rhs) (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator[]</b>(uint8_t x) __attribute__((always_inline)) (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator[]</b>(uint8_t x) const __attribute__((always_inline)) (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>operator[]</b>(int x) __attribute__((always_inline)) (defined in <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -122,7 +124,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 75451875..e5e371d1 100644
--- a/docs/3.1/class_c_r_g_b_palette256.html
+++ b/docs/3.1/class_c_r_g_b_palette256.html
@@ -130,6 +130,12 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a9cb19dd01548c2c902e5217188552730"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9cb19dd01548c2c902e5217188552730"></a>
<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:a5e3119adf2b983f160b499750766578a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5e3119adf2b983f160b499750766578a"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator==</b> (const <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a> rhs)</td></tr>
+<tr class="separator:a5e3119adf2b983f160b499750766578a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f2e8e46d54553c6ee27fcf50b3da689"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f2e8e46d54553c6ee27fcf50b3da689"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator!=</b> (const <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a> rhs)</td></tr>
+<tr class="separator:a4f2e8e46d54553c6ee27fcf50b3da689"><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___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:a99bfa25583d04e68e6ef4d1626fff96b"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -191,7 +197,7 @@ Public Attributes</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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-members.html b/docs/3.1/class_d_a_t_a___n_o_p-members.html
index cb89a9f2..1d7e381e 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
@@ -94,12 +94,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t adjust(register uint8_t data) (defined in <a class="el" href="class_d_a_t_a___n_o_p.html">DATA_NOP</a>)</td><td class="entry"><a class="el" href="class_d_a_t_a___n_o_p.html">DATA_NOP</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t adjust(register uint8_t data (defined in <a class="el" href="class_d_a_t_a___n_o_p.html">DATA_NOP</a>)</td><td class="entry"><a class="el" href="class_d_a_t_a___n_o_p.html">DATA_NOP</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline void postBlock(int len) (defined in <a class="el" href="class_d_a_t_a___n_o_p.html">DATA_NOP</a>)</td><td class="entry"><a class="el" href="class_d_a_t_a___n_o_p.html">DATA_NOP</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline void postBlock(int) (defined in <a class="el" href="class_d_a_t_a___n_o_p.html">DATA_NOP</a>)</td><td class="entry"><a class="el" href="class_d_a_t_a___n_o_p.html">DATA_NOP</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>scale</b> (defined in <a class="el" href="class_d_a_t_a___n_o_p.html">DATA_NOP</a>)</td><td class="entry"><a class="el" href="class_d_a_t_a___n_o_p.html">DATA_NOP</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 de8dd253..9ea34513 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
@@ -107,9 +107,9 @@ static&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> (
<tr class="memitem:ab350d7d0dee39810272258e1928b11ce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab350d7d0dee39810272258e1928b11ce"></a>
static&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint8_t adjust(register uint8_t data</td></tr>
<tr class="separator:ab350d7d0dee39810272258e1928b11ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab7f7a9e77ee0c8a2acedf90e28a583c2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab7f7a9e77ee0c8a2acedf90e28a583c2"></a>
-static&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline void postBlock(int len)</td></tr>
-<tr class="separator:ab7f7a9e77ee0c8a2acedf90e28a583c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09ede2457cdbc4530a2c4fdb03afb24b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a09ede2457cdbc4530a2c4fdb03afb24b"></a>
+static&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline void postBlock(int)</td></tr>
+<tr class="separator:a09ede2457cdbc4530a2c4fdb03afb24b"><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>
Public Attributes</h2></td></tr>
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 38e02bbb..1acfce48 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
@@ -95,43 +95,44 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129">clearLeds</a>(int nLeds)</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27">init</a>()</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t scale=255)=0 (defined in <a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>computeAdjustment</b>(uint8_t scale, const CRGB &amp;colorCorrection, const CRGB &amp;colorTemperature) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27">init</a>()</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t scale=255)=0 (defined in <a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 cbac3d59..bca51522 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
@@ -162,10 +162,10 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struc
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a> ()</td></tr>
<tr class="memdesc:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">zero out the led data managed by this controller <br /></td></tr>
<tr class="separator:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8840496d231f1fe0fa640970dc14db08"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a> ()</td></tr>
-<tr class="memdesc:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
-<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63f75cf7e55cf8da46db5fd27110bb3e"></a>
+virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a> ()</td></tr>
+<tr class="memdesc:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
+<tr class="separator:a63f75cf7e55cf8da46db5fd27110bb3e 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" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
@@ -218,6 +218,9 @@ virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getMaxRef
static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a> ()</td></tr>
<tr class="memdesc:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the first led controller in the chain of controllers <br /></td></tr>
<tr class="separator:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ad4ceb3bc9ae2efa11e50ffe4b140d4"></a>
+static <a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>computeAdjustment</b> (uint8_t scale, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorCorrection, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorTemperature)</td></tr>
+<tr class="separator:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a3ae4f61fc85ef4609d65c14ca51434c4 inherit pro_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ae4f61fc85ef4609d65c14ca51434c4"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)=0</td></tr>
@@ -255,7 +258,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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-members.html b/docs/3.1/class_d_m_x_s_i_m_p_l_e-members.html
index 253f00e6..72940c0d 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
@@ -95,43 +95,44 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e">clearLeds</a>(int nLeds)</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3">init</a>()</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t scale=255)=0 (defined in <a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>computeAdjustment</b>(uint8_t scale, const CRGB &amp;colorCorrection, const CRGB &amp;colorTemperature) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3">init</a>()</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t scale=255)=0 (defined in <a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 8b924721..14f4fdb2 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
@@ -153,10 +153,10 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struc
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a> ()</td></tr>
<tr class="memdesc:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">zero out the led data managed by this controller <br /></td></tr>
<tr class="separator:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8840496d231f1fe0fa640970dc14db08"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a> ()</td></tr>
-<tr class="memdesc:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
-<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63f75cf7e55cf8da46db5fd27110bb3e"></a>
+virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a> ()</td></tr>
+<tr class="memdesc:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
+<tr class="separator:a63f75cf7e55cf8da46db5fd27110bb3e 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" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
@@ -209,6 +209,9 @@ virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getMaxRef
static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a> ()</td></tr>
<tr class="memdesc:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the first led controller in the chain of controllers <br /></td></tr>
<tr class="separator:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ad4ceb3bc9ae2efa11e50ffe4b140d4"></a>
+static <a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>computeAdjustment</b> (uint8_t scale, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorCorrection, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorTemperature)</td></tr>
+<tr class="separator:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_class_d_m_x_simple_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_d_m_x_simple_controller')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
<tr class="memitem:a3fb3a0501aae1d7a6aefb89f77168bd1 inherit pro_methods_class_d_m_x_simple_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1">showColor</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
<tr class="memdesc:a3fb3a0501aae1d7a6aefb89f77168bd1 inherit pro_methods_class_d_m_x_simple_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#a3fb3a0501aae1d7a6aefb89f77168bd1">More...</a><br /></td></tr>
@@ -256,7 +259,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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-members.html b/docs/3.1/class_d_m_x_serial_controller-members.html
index f2776859..fc1318f6 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
@@ -95,43 +95,44 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129">clearLeds</a>(int nLeds)</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27">init</a>()</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t scale=255)=0 (defined in <a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>computeAdjustment</b>(uint8_t scale, const CRGB &amp;colorCorrection, const CRGB &amp;colorTemperature) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27">init</a>()</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t scale=255)=0 (defined in <a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 8ff7befb..b3efd354 100644
--- a/docs/3.1/class_d_m_x_serial_controller.html
+++ b/docs/3.1/class_d_m_x_serial_controller.html
@@ -162,10 +162,10 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struc
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a> ()</td></tr>
<tr class="memdesc:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">zero out the led data managed by this controller <br /></td></tr>
<tr class="separator:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8840496d231f1fe0fa640970dc14db08"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a> ()</td></tr>
-<tr class="memdesc:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
-<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63f75cf7e55cf8da46db5fd27110bb3e"></a>
+virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a> ()</td></tr>
+<tr class="memdesc:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
+<tr class="separator:a63f75cf7e55cf8da46db5fd27110bb3e 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" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
@@ -221,6 +221,9 @@ Additional Inherited Members</h2></td></tr>
static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a> ()</td></tr>
<tr class="memdesc:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the first led controller in the chain of controllers <br /></td></tr>
<tr class="separator:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ad4ceb3bc9ae2efa11e50ffe4b140d4"></a>
+static <a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>computeAdjustment</b> (uint8_t scale, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorCorrection, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorTemperature)</td></tr>
+<tr class="separator:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a3ae4f61fc85ef4609d65c14ca51434c4 inherit pro_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ae4f61fc85ef4609d65c14ca51434c4"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)=0</td></tr>
@@ -367,7 +370,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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-members.html b/docs/3.1/class_d_m_x_simple_controller-members.html
index a8890fb2..0c83ebe6 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
@@ -95,43 +95,44 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e">clearLeds</a>(int nLeds)</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3">init</a>()</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t scale=255)=0 (defined in <a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>computeAdjustment</b>(uint8_t scale, const CRGB &amp;colorCorrection, const CRGB &amp;colorTemperature) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3">init</a>()</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t scale=255)=0 (defined in <a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 50ef2f1a..b468ddc1 100644
--- a/docs/3.1/class_d_m_x_simple_controller.html
+++ b/docs/3.1/class_d_m_x_simple_controller.html
@@ -154,10 +154,10 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struc
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a> ()</td></tr>
<tr class="memdesc:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">zero out the led data managed by this controller <br /></td></tr>
<tr class="separator:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8840496d231f1fe0fa640970dc14db08"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a> ()</td></tr>
-<tr class="memdesc:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
-<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63f75cf7e55cf8da46db5fd27110bb3e"></a>
+virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a> ()</td></tr>
+<tr class="memdesc:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
+<tr class="separator:a63f75cf7e55cf8da46db5fd27110bb3e 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" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
@@ -229,6 +229,9 @@ Additional Inherited Members</h2></td></tr>
static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a> ()</td></tr>
<tr class="memdesc:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the first led controller in the chain of controllers <br /></td></tr>
<tr class="separator:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ad4ceb3bc9ae2efa11e50ffe4b140d4"></a>
+static <a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>computeAdjustment</b> (uint8_t scale, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorCorrection, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorTemperature)</td></tr>
+<tr class="separator:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a4672f8f1e93d5df90685cb62c4ebbe0e inherit pro_attribs_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4672f8f1e93d5df90685cb62c4ebbe0e"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>m_Data</b></td></tr>
@@ -371,7 +374,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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-members.html b/docs/3.1/class_fast_pin-members.html
index d9856a42..ba8ab475 100644
--- a/docs/3.1/class_fast_pin-members.html
+++ b/docs/3.1/class_fast_pin-members.html
@@ -93,25 +93,41 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<p>This is the complete list of members for <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fastset</b>(register port_ptr_t port, register port_t val) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>hi</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>hi</b>(register port_ptr_t port) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>fastset</b>(register port_ptr_t port, register port_t val) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>hi</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>hi</b>(register port_ptr_t port) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>hi</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>hi</b>(register port_ptr_t port) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>hival</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>hival</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>lo</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>lo</b>(register port_ptr_t port) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>lo</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>lo</b>(register port_ptr_t port) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>loval</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>loval</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>mask</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>mask</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>port</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>port</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>port_ptr_t</b> typedef (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>port_ptr_t</b> typedef (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>port_t</b> typedef (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>port_t</b> typedef (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set</b>(register port_t val) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>set</b>(register port_t val) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setInput</b>() (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>setInput</b>() (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setOutput</b>() (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setOutput</b>() (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>strobe</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>strobe</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>toggle</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>toggle</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 51cc1a3d..81d0d4c6 100644
--- a/docs/3.1/class_fast_pin.html
+++ b/docs/3.1/class_fast_pin.html
@@ -114,6 +114,12 @@ typedef volatile RwReg *&#160;</td><td class="memItemRight" valign="bottom"><b>p
<tr class="memitem:a23ad28734f9597c28afbba8b4bfcda09"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a23ad28734f9597c28afbba8b4bfcda09"></a>
typedef RwReg&#160;</td><td class="memItemRight" valign="bottom"><b>port_t</b></td></tr>
<tr class="separator:a23ad28734f9597c28afbba8b4bfcda09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9f23acc7c8c6ce0c760745d32d14932f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f23acc7c8c6ce0c760745d32d14932f"></a>
+typedef volatile RwReg *&#160;</td><td class="memItemRight" valign="bottom"><b>port_ptr_t</b></td></tr>
+<tr class="separator:a9f23acc7c8c6ce0c760745d32d14932f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a23ad28734f9597c28afbba8b4bfcda09"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a23ad28734f9597c28afbba8b4bfcda09"></a>
+typedef RwReg&#160;</td><td class="memItemRight" valign="bottom"><b>port_t</b></td></tr>
+<tr class="separator:a23ad28734f9597c28afbba8b4bfcda09"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
@@ -159,6 +165,48 @@ static port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b>
<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___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
<tr class="separator:ace4b21f3980bbca6a4be16130053e8f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4b349c1763a7565c3ee7b2de52a50c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4b349c1763a7565c3ee7b2de52a50c8"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>setOutput</b> ()</td></tr>
+<tr class="separator:ab4b349c1763a7565c3ee7b2de52a50c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0543e3ac851ca56f30150fbaf1a109d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af0543e3ac851ca56f30150fbaf1a109d"></a>
+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___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___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___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___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___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___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___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___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___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___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___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___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>
<div class="textblock"><h3>template&lt;uint8_t PIN&gt;<br />
@@ -175,7 +223,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 4e903d65..7f4ed843 100644
--- a/docs/3.1/class_fast_pin_b_b-members.html
+++ b/docs/3.1/class_fast_pin_b_b-members.html
@@ -93,25 +93,41 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<p>This is the complete list of members for <a class="el" href="class_fast_pin_b_b.html">FastPinBB&lt; PIN &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fastset</b>(register port_ptr_t port, register port_t val) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>hi</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>hi</b>(register port_ptr_t port) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>fastset</b>(register port_ptr_t port, register port_t val) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>hi</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>hi</b>(register port_ptr_t port) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>hi</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>hi</b>(register port_ptr_t port) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>hival</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>hival</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>lo</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>lo</b>(register port_ptr_t port) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>lo</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>lo</b>(register port_ptr_t port) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>loval</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>loval</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>mask</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>mask</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>port</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>port</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>port_ptr_t</b> typedef (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>port_ptr_t</b> typedef (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>port_t</b> typedef (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>port_t</b> typedef (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>set</b>(register port_t val) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>set</b>(register port_t val) __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setInput</b>() (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>setInput</b>() (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>setOutput</b>() (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>setOutput</b>() (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>strobe</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>strobe</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>toggle</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>toggle</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a>)</td><td class="entry"><a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 57f807d2..a014222d 100644
--- a/docs/3.1/class_fast_pin_b_b.html
+++ b/docs/3.1/class_fast_pin_b_b.html
@@ -115,6 +115,12 @@ typedef volatile RwReg *&#160;</td><td class="memItemRight" valign="bottom"><b>p
<tr class="memitem:a23ad28734f9597c28afbba8b4bfcda09 inherit pub_types_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a23ad28734f9597c28afbba8b4bfcda09"></a>
typedef RwReg&#160;</td><td class="memItemRight" valign="bottom"><b>port_t</b></td></tr>
<tr class="separator:a23ad28734f9597c28afbba8b4bfcda09 inherit pub_types_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9f23acc7c8c6ce0c760745d32d14932f inherit pub_types_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f23acc7c8c6ce0c760745d32d14932f"></a>
+typedef volatile RwReg *&#160;</td><td class="memItemRight" valign="bottom"><b>port_ptr_t</b></td></tr>
+<tr class="separator:a9f23acc7c8c6ce0c760745d32d14932f inherit pub_types_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a23ad28734f9597c28afbba8b4bfcda09 inherit pub_types_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a23ad28734f9597c28afbba8b4bfcda09"></a>
+typedef RwReg&#160;</td><td class="memItemRight" valign="bottom"><b>port_t</b></td></tr>
+<tr class="separator:a23ad28734f9597c28afbba8b4bfcda09 inherit pub_types_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_static_methods_class_fast_pin"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_fast_pin')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_fast_pin.html">FastPin&lt; PIN &gt;</a></td></tr>
<tr class="memitem:ab4b349c1763a7565c3ee7b2de52a50c8 inherit pub_static_methods_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4b349c1763a7565c3ee7b2de52a50c8"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>setOutput</b> ()</td></tr>
@@ -158,6 +164,48 @@ static port_ptr_t&#160;</td><td class="memItemRight" valign="bottom"><b>port</b>
<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___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>
+<tr class="memitem:ab4b349c1763a7565c3ee7b2de52a50c8 inherit pub_static_methods_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4b349c1763a7565c3ee7b2de52a50c8"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>setOutput</b> ()</td></tr>
+<tr class="separator:ab4b349c1763a7565c3ee7b2de52a50c8 inherit pub_static_methods_class_fast_pin"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0543e3ac851ca56f30150fbaf1a109d inherit pub_static_methods_class_fast_pin"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af0543e3ac851ca56f30150fbaf1a109d"></a>
+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___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___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___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___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___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___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___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___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___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___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___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___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>
<li><a class="el" href="fastpin_8h_source.html">fastpin.h</a></li>
@@ -165,7 +213,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 ef618652..baf7a920 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 edacd5e4..5e1bbf4e 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 2eb30178..3e269454 100644
--- a/docs/3.1/class_g_w6205_controller400_khz.html
+++ b/docs/3.1/class_g_w6205_controller400_khz.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 cb122a24..698890d4 100644
--- a/docs/3.1/class_g_w6205_controller800_khz.html
+++ b/docs/3.1/class_g_w6205_controller800_khz.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 ea93039c..5fbef845 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 f40f51fc..968963df 100644
--- a/docs/3.1/class_input_pin.html
+++ b/docs/3.1/class_input_pin.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 831365ed..fd6b2293 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 2ecca73d..2e43687f 100644
--- a/docs/3.1/class_l_p_d1886_controller1250_khz.html
+++ b/docs/3.1/class_l_p_d1886_controller1250_khz.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 c719e758..8dece079 100644
--- a/docs/3.1/class_l_p_d8806_controller-members.html
+++ b/docs/3.1/class_l_p_d8806_controller-members.html
@@ -95,44 +95,45 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e">clearLeds</a>(int nLeds)</td><td class="entry"><a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608">init</a>()</td><td class="entry"><a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>LPD8806Controller</b>() (defined in <a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>)</td><td class="entry"><a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t scale) (defined in <a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>)</td><td class="entry"><a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>computeAdjustment</b>(uint8_t scale, const CRGB &amp;colorCorrection, const CRGB &amp;colorTemperature) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608">init</a>()</td><td class="entry"><a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>LPD8806Controller</b>() (defined in <a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>)</td><td class="entry"><a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t scale) (defined in <a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>)</td><td class="entry"><a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 1248ebfe..31217d36 100644
--- a/docs/3.1/class_l_p_d8806_controller.html
+++ b/docs/3.1/class_l_p_d8806_controller.html
@@ -160,10 +160,10 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struc
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a> ()</td></tr>
<tr class="memdesc:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">zero out the led data managed by this controller <br /></td></tr>
<tr class="separator:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8840496d231f1fe0fa640970dc14db08"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a> ()</td></tr>
-<tr class="memdesc:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
-<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63f75cf7e55cf8da46db5fd27110bb3e"></a>
+virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a> ()</td></tr>
+<tr class="memdesc:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
+<tr class="separator:a63f75cf7e55cf8da46db5fd27110bb3e 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" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
@@ -235,6 +235,9 @@ Additional Inherited Members</h2></td></tr>
static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a> ()</td></tr>
<tr class="memdesc:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the first led controller in the chain of controllers <br /></td></tr>
<tr class="separator:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ad4ceb3bc9ae2efa11e50ffe4b140d4"></a>
+static <a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>computeAdjustment</b> (uint8_t scale, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorCorrection, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorTemperature)</td></tr>
+<tr class="separator:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a4672f8f1e93d5df90685cb62c4ebbe0e inherit pro_attribs_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4672f8f1e93d5df90685cb62c4ebbe0e"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>m_Data</b></td></tr>
@@ -391,7 +394,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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_n_e_o_p_i_x_e_l.html b/docs/3.1/class_n_e_o_p_i_x_e_l.html
index e60912f5..fbdd6abc 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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_n_o_p_s_p_i_output-members.html b/docs/3.1/class_n_o_p_s_p_i_output-members.html
new file mode 100644
index 00000000..988ce9a4
--- /dev/null
+++ b/docs/3.1/class_n_o_p_s_p_i_output-members.html
@@ -0,0 +1,118 @@
+<!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: Member List</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><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt; Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html#ad9ff9bf62427b69e3bb578699e0ce561">init</a>()</td><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>NOPSPIOutput</b>() (defined in <a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NOPSPIOutput</b>(Selectable *pSelect) (defined in <a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html#a0599fbdf5e04a633d24ff17033443237">release</a>()</td><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html#ae07bb6f787879f28979cccec9ec4965d">select</a>()</td><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html#a6fca9a7e475aecae123879044d33f195">setSelect</a>(Selectable *pSelect)</td><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html#a6d1c46106879fc835ad6ba8149b20068">waitFully</a>()</td><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637">writeBit</a>(uint8_t b)</td><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637">writeBit</a>(uint8_t b)</td><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html#af5485fc346e12c50480b969e5b242636">writeByte</a>(uint8_t b)</td><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html#a7b33548cfee1f5cda7a8a48fa45ee460">writeBytes</a>(uint8_t *data, int len)</td><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html#a2f8e72323c827eb869b222b5a36ebbc1">writeBytesValue</a>(uint8_t value, int len)</td><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html#a7c67ce1f9d44cfcac9b94fa9f097835f">writeBytesValueRaw</a>(uint8_t value, int len)</td><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html#aa192a8b0f727e7c9fc399e94532e287f">writePixels</a>(PixelController&lt; RGB_ORDER &gt; pixels)</td><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html#a31ccabe3e4987751ad67a5d06e502df2">writeWord</a>(uint16_t w)</td><td class="entry"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Nov 11 2015 15:10: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/class_n_o_p_s_p_i_output.html b/docs/3.1/class_n_o_p_s_p_i_output.html
new file mode 100644
index 00000000..d51e111d
--- /dev/null
+++ b/docs/3.1/class_n_o_p_s_p_i_output.html
@@ -0,0 +1,183 @@
+<!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: NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt; Class Template Reference</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><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="class_n_o_p_s_p_i_output-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt; Class Template Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A nop/stub class, mostly to show the SPI methods that are needed/used by the various SPI chipset implementations.
+ <a href="class_n_o_p_s_p_i_output.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="fastspi__nop_8h_source.html">fastspi_nop.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:a3f710f1b58277e67cebcaede84aadbc8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f710f1b58277e67cebcaede84aadbc8"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>NOPSPIOutput</b> (<a class="el" href="class_selectable.html">Selectable</a> *pSelect)</td></tr>
+<tr class="separator:a3f710f1b58277e67cebcaede84aadbc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fca9a7e475aecae123879044d33f195"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6fca9a7e475aecae123879044d33f195"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n_o_p_s_p_i_output.html#a6fca9a7e475aecae123879044d33f195">setSelect</a> (<a class="el" href="class_selectable.html">Selectable</a> *pSelect)</td></tr>
+<tr class="memdesc:a6fca9a7e475aecae123879044d33f195"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the object representing the selectable <br /></td></tr>
+<tr class="separator:a6fca9a7e475aecae123879044d33f195"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9ff9bf62427b69e3bb578699e0ce561"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad9ff9bf62427b69e3bb578699e0ce561"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n_o_p_s_p_i_output.html#ad9ff9bf62427b69e3bb578699e0ce561">init</a> ()</td></tr>
+<tr class="memdesc:ad9ff9bf62427b69e3bb578699e0ce561"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the SPI subssytem <br /></td></tr>
+<tr class="separator:ad9ff9bf62427b69e3bb578699e0ce561"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae07bb6f787879f28979cccec9ec4965d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae07bb6f787879f28979cccec9ec4965d"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n_o_p_s_p_i_output.html#ae07bb6f787879f28979cccec9ec4965d">select</a> ()</td></tr>
+<tr class="memdesc:ae07bb6f787879f28979cccec9ec4965d"><td class="mdescLeft">&#160;</td><td class="mdescRight">latch the CS select <br /></td></tr>
+<tr class="separator:ae07bb6f787879f28979cccec9ec4965d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0599fbdf5e04a633d24ff17033443237"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0599fbdf5e04a633d24ff17033443237"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n_o_p_s_p_i_output.html#a0599fbdf5e04a633d24ff17033443237">release</a> ()</td></tr>
+<tr class="memdesc:a0599fbdf5e04a633d24ff17033443237"><td class="mdescLeft">&#160;</td><td class="mdescRight">release the CS select <br /></td></tr>
+<tr class="separator:a0599fbdf5e04a633d24ff17033443237"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6d1c46106879fc835ad6ba8149b20068"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d1c46106879fc835ad6ba8149b20068"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n_o_p_s_p_i_output.html#a6d1c46106879fc835ad6ba8149b20068">waitFully</a> ()</td></tr>
+<tr class="memdesc:a6d1c46106879fc835ad6ba8149b20068"><td class="mdescLeft">&#160;</td><td class="mdescRight">wait until all queued up data has been written <br /></td></tr>
+<tr class="separator:a6d1c46106879fc835ad6ba8149b20068"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5485fc346e12c50480b969e5b242636"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af5485fc346e12c50480b969e5b242636"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n_o_p_s_p_i_output.html#af5485fc346e12c50480b969e5b242636">writeByte</a> (uint8_t b)</td></tr>
+<tr class="memdesc:af5485fc346e12c50480b969e5b242636"><td class="mdescLeft">&#160;</td><td class="mdescRight">write a byte out via SPI (returns immediately on writing register) <br /></td></tr>
+<tr class="separator:af5485fc346e12c50480b969e5b242636"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a31ccabe3e4987751ad67a5d06e502df2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a31ccabe3e4987751ad67a5d06e502df2"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n_o_p_s_p_i_output.html#a31ccabe3e4987751ad67a5d06e502df2">writeWord</a> (uint16_t w)</td></tr>
+<tr class="memdesc:a31ccabe3e4987751ad67a5d06e502df2"><td class="mdescLeft">&#160;</td><td class="mdescRight">write a word out via SPI (returns immediately on writing register) <br /></td></tr>
+<tr class="separator:a31ccabe3e4987751ad67a5d06e502df2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2f8e72323c827eb869b222b5a36ebbc1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f8e72323c827eb869b222b5a36ebbc1"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n_o_p_s_p_i_output.html#a2f8e72323c827eb869b222b5a36ebbc1">writeBytesValue</a> (uint8_t value, int len)</td></tr>
+<tr class="memdesc:a2f8e72323c827eb869b222b5a36ebbc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">A full cycle of writing a value for len bytes, including select, release, and waiting. <br /></td></tr>
+<tr class="separator:a2f8e72323c827eb869b222b5a36ebbc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b33548cfee1f5cda7a8a48fa45ee460"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b33548cfee1f5cda7a8a48fa45ee460"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n_o_p_s_p_i_output.html#a7b33548cfee1f5cda7a8a48fa45ee460">writeBytes</a> (uint8_t *data, int len)</td></tr>
+<tr class="memdesc:a7b33548cfee1f5cda7a8a48fa45ee460"><td class="mdescLeft">&#160;</td><td class="mdescRight">A full cycle of writing a raw block of data out, including select, release, and waiting. <br /></td></tr>
+<tr class="separator:a7b33548cfee1f5cda7a8a48fa45ee460"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa192a8b0f727e7c9fc399e94532e287f"><td class="memTemplParams" colspan="2"><a class="anchor" id="aa192a8b0f727e7c9fc399e94532e287f"></a>
+template&lt;uint8_t FLAGS, class D , EOrder RGB_ORDER&gt; </td></tr>
+<tr class="memitem:aa192a8b0f727e7c9fc399e94532e287f"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_n_o_p_s_p_i_output.html#aa192a8b0f727e7c9fc399e94532e287f">writePixels</a> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt; pixels)</td></tr>
+<tr class="memdesc:aa192a8b0f727e7c9fc399e94532e287f"><td class="mdescLeft">&#160;</td><td class="mdescRight">write out pixel data from the given <a class="el" href="struct_pixel_controller.html" title="Pixel controller class. ">PixelController</a> object <br /></td></tr>
+<tr class="separator:aa192a8b0f727e7c9fc399e94532e287f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a9b0cd7fa63b1cff86c61f796aa8a6637"><td class="memTemplParams" colspan="2"><a class="anchor" id="a9b0cd7fa63b1cff86c61f796aa8a6637"></a>
+template&lt;uint8_t BIT&gt; </td></tr>
+<tr class="memitem:a9b0cd7fa63b1cff86c61f796aa8a6637"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637">writeBit</a> (uint8_t b)</td></tr>
+<tr class="memdesc:a9b0cd7fa63b1cff86c61f796aa8a6637"><td class="mdescLeft">&#160;</td><td class="mdescRight">not the most efficient mechanism in the world - but should be enough for sm16716 and friends <br /></td></tr>
+<tr class="separator:a9b0cd7fa63b1cff86c61f796aa8a6637"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c67ce1f9d44cfcac9b94fa9f097835f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c67ce1f9d44cfcac9b94fa9f097835f"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_n_o_p_s_p_i_output.html#a7c67ce1f9d44cfcac9b94fa9f097835f">writeBytesValueRaw</a> (uint8_t value, int len)</td></tr>
+<tr class="memdesc:a7c67ce1f9d44cfcac9b94fa9f097835f"><td class="mdescLeft">&#160;</td><td class="mdescRight">A raw set of writing byte values, assumes setup/init/waiting done elsewhere (static for use by adjustment classes) <br /></td></tr>
+<tr class="separator:a7c67ce1f9d44cfcac9b94fa9f097835f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9b0cd7fa63b1cff86c61f796aa8a6637"><td class="memTemplParams" colspan="2"><a class="anchor" id="a9b0cd7fa63b1cff86c61f796aa8a6637"></a>
+template&lt;uint8_t BIT&gt; </td></tr>
+<tr class="memitem:a9b0cd7fa63b1cff86c61f796aa8a6637"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637">writeBit</a> (uint8_t b)</td></tr>
+<tr class="memdesc:a9b0cd7fa63b1cff86c61f796aa8a6637"><td class="mdescLeft">&#160;</td><td class="mdescRight">write a single bit out, which bit from the passed in byte is determined by template parameter <br /></td></tr>
+<tr class="separator:a9b0cd7fa63b1cff86c61f796aa8a6637"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><h3>template&lt;uint8_t _DATA_PIN, uint8_t _CLOCK_PIN, uint8_t _SPI_CLOCK_DIVIDER&gt;<br />
+class NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</h3>
+
+<p>A nop/stub class, mostly to show the SPI methods that are needed/used by the various SPI chipset implementations. </p>
+<p>Should be used as a definition for the set of methods that the spi implementation classes should use (since C++ doesn't support the idea of interfaces - it's possible this could be done with virtual classes, need to decide if i want that overhead) </p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="fastspi__nop_8h_source.html">fastspi_nop.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Nov 11 2015 15:10: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/class_output_pin-members.html b/docs/3.1/class_output_pin-members.html
index 655015d2..4bb9e7aa 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 594a0720..ddaa4e8e 100644
--- a/docs/3.1/class_output_pin.html
+++ b/docs/3.1/class_output_pin.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 3b6865c1..9f7b02aa 100644
--- a/docs/3.1/class_p9813_controller-members.html
+++ b/docs/3.1/class_p9813_controller-members.html
@@ -95,45 +95,46 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c">clearLeds</a>(int nLeds)</td><td class="entry"><a class="el" href="class_p9813_controller.html">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a">init</a>()</td><td class="entry"><a class="el" href="class_p9813_controller.html">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>P9813Controller</b>() (defined in <a class="el" href="class_p9813_controller.html">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>)</td><td class="entry"><a class="el" href="class_p9813_controller.html">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_p9813_controller.html">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>computeAdjustment</b>(uint8_t scale, const CRGB &amp;colorCorrection, const CRGB &amp;colorTemperature) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a">init</a>()</td><td class="entry"><a class="el" href="class_p9813_controller.html">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>P9813Controller</b>() (defined in <a class="el" href="class_p9813_controller.html">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>)</td><td class="entry"><a class="el" href="class_p9813_controller.html">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_p9813_controller.html">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t brightness) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_p9813_controller.html">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_p9813_controller.html">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t brightness) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_p9813_controller.html">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 8526fe5d..3610e324 100644
--- a/docs/3.1/class_p9813_controller.html
+++ b/docs/3.1/class_p9813_controller.html
@@ -159,10 +159,10 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struc
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a> ()</td></tr>
<tr class="memdesc:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">zero out the led data managed by this controller <br /></td></tr>
<tr class="separator:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8840496d231f1fe0fa640970dc14db08"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a> ()</td></tr>
-<tr class="memdesc:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
-<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63f75cf7e55cf8da46db5fd27110bb3e"></a>
+virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a> ()</td></tr>
+<tr class="memdesc:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
+<tr class="separator:a63f75cf7e55cf8da46db5fd27110bb3e 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" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
@@ -234,6 +234,9 @@ Additional Inherited Members</h2></td></tr>
static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a> ()</td></tr>
<tr class="memdesc:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the first led controller in the chain of controllers <br /></td></tr>
<tr class="separator:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ad4ceb3bc9ae2efa11e50ffe4b140d4"></a>
+static <a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>computeAdjustment</b> (uint8_t scale, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorCorrection, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorTemperature)</td></tr>
+<tr class="separator:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a4672f8f1e93d5df90685cb62c4ebbe0e inherit pro_attribs_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4672f8f1e93d5df90685cb62c4ebbe0e"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>m_Data</b></td></tr>
@@ -444,7 +447,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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_p_l9823.html b/docs/3.1/class_p_l9823.html
new file mode 100644
index 00000000..69335f32
--- /dev/null
+++ b/docs/3.1/class_p_l9823.html
@@ -0,0 +1,117 @@
+<!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: PL9823&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</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><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">PL9823&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for PL9823&lt; DATA_PIN, RGB_ORDER &gt;:</div>
+<div class="dyncontent">
+<div class="center"><img src="class_p_l9823__inherit__graph.png" border="0" usemap="#_p_l9823_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map" alt="Inheritance graph"/></div>
+<map name="_p_l9823_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map" id="_p_l9823_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map">
+<area shape="rect" id="node2" href="class_p_l9823_controller.html" title="PL9823Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="229,67,403,109"/></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<div class="dynheader">
+Collaboration diagram for PL9823&lt; DATA_PIN, RGB_ORDER &gt;:</div>
+<div class="dyncontent">
+<div class="center"><img src="class_p_l9823__coll__graph.png" border="0" usemap="#_p_l9823_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="_p_l9823_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map" id="_p_l9823_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_p_l9823_controller.html" title="PL9823Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="229,67,403,109"/></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Nov 11 2015 15:10: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/class_p_l9823__coll__graph.map b/docs/3.1/class_p_l9823__coll__graph.map
new file mode 100644
index 00000000..458eb2d2
--- /dev/null
+++ b/docs/3.1/class_p_l9823__coll__graph.map
@@ -0,0 +1,3 @@
+<map id="PL9823&lt; DATA_PIN, RGB_ORDER &gt;" name="PL9823&lt; DATA_PIN, RGB_ORDER &gt;">
+<area shape="rect" id="node2" href="$class_p_l9823_controller.html" title="PL9823Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="229,67,403,109"/>
+</map>
diff --git a/docs/3.1/class_p_l9823__coll__graph.md5 b/docs/3.1/class_p_l9823__coll__graph.md5
new file mode 100644
index 00000000..fab9970f
--- /dev/null
+++ b/docs/3.1/class_p_l9823__coll__graph.md5
@@ -0,0 +1 @@
+e57b80649c7811691e7ab14e3974e793 \ No newline at end of file
diff --git a/docs/3.1/class_p_l9823__coll__graph.png b/docs/3.1/class_p_l9823__coll__graph.png
new file mode 100644
index 00000000..a78e5a53
--- /dev/null
+++ b/docs/3.1/class_p_l9823__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_p_l9823__inherit__graph.map b/docs/3.1/class_p_l9823__inherit__graph.map
new file mode 100644
index 00000000..458eb2d2
--- /dev/null
+++ b/docs/3.1/class_p_l9823__inherit__graph.map
@@ -0,0 +1,3 @@
+<map id="PL9823&lt; DATA_PIN, RGB_ORDER &gt;" name="PL9823&lt; DATA_PIN, RGB_ORDER &gt;">
+<area shape="rect" id="node2" href="$class_p_l9823_controller.html" title="PL9823Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="229,67,403,109"/>
+</map>
diff --git a/docs/3.1/class_p_l9823__inherit__graph.md5 b/docs/3.1/class_p_l9823__inherit__graph.md5
new file mode 100644
index 00000000..fab9970f
--- /dev/null
+++ b/docs/3.1/class_p_l9823__inherit__graph.md5
@@ -0,0 +1 @@
+e57b80649c7811691e7ab14e3974e793 \ No newline at end of file
diff --git a/docs/3.1/class_p_l9823__inherit__graph.png b/docs/3.1/class_p_l9823__inherit__graph.png
new file mode 100644
index 00000000..a78e5a53
--- /dev/null
+++ b/docs/3.1/class_p_l9823__inherit__graph.png
Binary files differ
diff --git a/docs/3.1/class_p_l9823_controller.html b/docs/3.1/class_p_l9823_controller.html
new file mode 100644
index 00000000..453ea96a
--- /dev/null
+++ b/docs/3.1/class_p_l9823_controller.html
@@ -0,0 +1,117 @@
+<!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: PL9823Controller&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</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><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">PL9823Controller&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">
+Inheritance diagram for PL9823Controller&lt; DATA_PIN, RGB_ORDER &gt;:</div>
+<div class="dyncontent">
+<div class="center"><img src="class_p_l9823_controller__inherit__graph.png" border="0" usemap="#_p_l9823_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map" alt="Inheritance graph"/></div>
+<map name="_p_l9823_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map" id="_p_l9823_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map">
+<area shape="rect" id="node4" href="class_p_l9823.html" title="PL9823\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="451,67,632,109"/></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<div class="dynheader">
+Collaboration diagram for PL9823Controller&lt; DATA_PIN, RGB_ORDER &gt;:</div>
+<div class="dyncontent">
+<div class="center"><img src="class_p_l9823_controller__coll__graph.png" border="0" usemap="#_p_l9823_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="_p_l9823_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="_p_l9823_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map">
+</map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="chipsets_8h_source.html">chipsets.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Nov 11 2015 15:10: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/class_p_l9823_controller__coll__graph.map b/docs/3.1/class_p_l9823_controller__coll__graph.map
new file mode 100644
index 00000000..577c2bb5
--- /dev/null
+++ b/docs/3.1/class_p_l9823_controller__coll__graph.map
@@ -0,0 +1,2 @@
+<map id="PL9823Controller&lt; DATA_PIN, RGB_ORDER &gt;" name="PL9823Controller&lt; DATA_PIN, RGB_ORDER &gt;">
+</map>
diff --git a/docs/3.1/class_p_l9823_controller__coll__graph.md5 b/docs/3.1/class_p_l9823_controller__coll__graph.md5
new file mode 100644
index 00000000..99654555
--- /dev/null
+++ b/docs/3.1/class_p_l9823_controller__coll__graph.md5
@@ -0,0 +1 @@
+c0ffdef01b685337798dba8f3a729ceb \ No newline at end of file
diff --git a/docs/3.1/class_p_l9823_controller__coll__graph.png b/docs/3.1/class_p_l9823_controller__coll__graph.png
new file mode 100644
index 00000000..364c4b65
--- /dev/null
+++ b/docs/3.1/class_p_l9823_controller__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_p_l9823_controller__inherit__graph.map b/docs/3.1/class_p_l9823_controller__inherit__graph.map
new file mode 100644
index 00000000..87653f51
--- /dev/null
+++ b/docs/3.1/class_p_l9823_controller__inherit__graph.map
@@ -0,0 +1,3 @@
+<map id="PL9823Controller&lt; DATA_PIN, RGB_ORDER &gt;" name="PL9823Controller&lt; DATA_PIN, RGB_ORDER &gt;">
+<area shape="rect" id="node4" href="$class_p_l9823.html" title="PL9823\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="451,67,632,109"/>
+</map>
diff --git a/docs/3.1/class_p_l9823_controller__inherit__graph.md5 b/docs/3.1/class_p_l9823_controller__inherit__graph.md5
new file mode 100644
index 00000000..95c75917
--- /dev/null
+++ b/docs/3.1/class_p_l9823_controller__inherit__graph.md5
@@ -0,0 +1 @@
+14c8d354fe87d3e7e009590fa421e9e6 \ No newline at end of file
diff --git a/docs/3.1/class_p_l9823_controller__inherit__graph.png b/docs/3.1/class_p_l9823_controller__inherit__graph.png
new file mode 100644
index 00000000..aca1980c
--- /dev/null
+++ b/docs/3.1/class_p_l9823_controller__inherit__graph.png
Binary files differ
diff --git a/docs/3.1/class_pin-members.html b/docs/3.1/class_pin-members.html
index a20e73ab..1a2950ec 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 4d6e3b92..0ade9d94 100644
--- a/docs/3.1/class_pin.html
+++ b/docs/3.1/class_pin.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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_r_e_f_hardware_s_p_i_output-members.html b/docs/3.1/class_r_e_f_hardware_s_p_i_output-members.html
new file mode 100644
index 00000000..7e57b03f
--- /dev/null
+++ b/docs/3.1/class_r_e_f_hardware_s_p_i_output-members.html
@@ -0,0 +1,118 @@
+<!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: Member List</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><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt; Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>, including all inherited members.</p>
+<table class="directory">
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>init</b>() (defined in <a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>release</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SAMHardwareSPIOutput</b>() (defined in <a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>SAMHArdwareSPIOutput</b>(Selectable *pSelect) (defined in <a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>select</b>() __attribute__((always_inline)) (defined in <a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>setSelect</b>(Selectable *pSelect) (defined in <a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>waitFully</b>() (defined in <a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>writeBit</b>(uint8_t b) (defined in <a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>writeByte</b>(uint8_t b) (defined in <a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>writeBytes</b>(register uint8_t *data, int len) (defined in <a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>writeBytes</b>(register uint8_t *data, int len) (defined in <a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>writeBytesValue</b>(uint8_t value, int len) (defined in <a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>writeBytesValueRaw</b>(uint8_t value, int len) (defined in <a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>writePixels</b>(PixelController&lt; RGB_ORDER &gt; pixels) (defined in <a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>writeWord</b>(uint16_t w) (defined in <a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>)</td><td class="entry"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Nov 11 2015 15:10: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/class_r_e_f_hardware_s_p_i_output.html b/docs/3.1/class_r_e_f_hardware_s_p_i_output.html
new file mode 100644
index 00000000..21790d50
--- /dev/null
+++ b/docs/3.1/class_r_e_f_hardware_s_p_i_output.html
@@ -0,0 +1,162 @@
+<!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: REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt; Class Template Reference</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><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="class_r_e_f_hardware_s_p_i_output-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt; Class Template Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<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:a710536befead0211a0352d93f993431e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a710536befead0211a0352d93f993431e"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>SAMHardwareSPIOutput</b> ()</td></tr>
+<tr class="separator:a710536befead0211a0352d93f993431e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c446c64a3b9fd1989d5f89cf5fe048b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c446c64a3b9fd1989d5f89cf5fe048b"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>SAMHArdwareSPIOutput</b> (<a class="el" href="class_selectable.html">Selectable</a> *pSelect)</td></tr>
+<tr class="separator:a4c446c64a3b9fd1989d5f89cf5fe048b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8725a9913efecca04d39b2ca8f28724f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8725a9913efecca04d39b2ca8f28724f"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>setSelect</b> (<a class="el" href="class_selectable.html">Selectable</a> *pSelect)</td></tr>
+<tr class="separator:a8725a9913efecca04d39b2ca8f28724f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf52398e54f9e5908f3956ce8ef923a5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf52398e54f9e5908f3956ce8ef923a5"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>init</b> ()</td></tr>
+<tr class="separator:aaf52398e54f9e5908f3956ce8ef923a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc1c9187d606c87e465a69a1db98f1ca"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abc1c9187d606c87e465a69a1db98f1ca"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>select</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
+<tr class="separator:abc1c9187d606c87e465a69a1db98f1ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1236b4c028a5aa4070eae0527795172c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1236b4c028a5aa4070eae0527795172c"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>release</b> () <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
+<tr class="separator:a1236b4c028a5aa4070eae0527795172c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a727c7315fab0f11994b879ee8a27460f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a727c7315fab0f11994b879ee8a27460f"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>writeBytesValue</b> (uint8_t value, int len)</td></tr>
+<tr class="separator:a727c7315fab0f11994b879ee8a27460f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e7667bc1bd496c6e8ae8fe60f4f9f7c"><td class="memTemplParams" colspan="2"><a class="anchor" id="a6e7667bc1bd496c6e8ae8fe60f4f9f7c"></a>
+template&lt;class D &gt; </td></tr>
+<tr class="memitem:a6e7667bc1bd496c6e8ae8fe60f4f9f7c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>writeBytes</b> (register uint8_t *data, int len)</td></tr>
+<tr class="separator:a6e7667bc1bd496c6e8ae8fe60f4f9f7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac1e85b75b7bc5f255fdb152d83def6b5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac1e85b75b7bc5f255fdb152d83def6b5"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>writeBytes</b> (register uint8_t *data, int len)</td></tr>
+<tr class="separator:ac1e85b75b7bc5f255fdb152d83def6b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad47c61c0eb6836df464577d0e55ab79c"><td class="memTemplParams" colspan="2"><a class="anchor" id="ad47c61c0eb6836df464577d0e55ab79c"></a>
+template&lt;uint8_t FLAGS, class D , EOrder RGB_ORDER&gt; </td></tr>
+<tr class="memitem:ad47c61c0eb6836df464577d0e55ab79c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>writePixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt; pixels)</td></tr>
+<tr class="separator:ad47c61c0eb6836df464577d0e55ab79c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:acca3a544ce9f832fab85a471432b12bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acca3a544ce9f832fab85a471432b12bd"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>waitFully</b> ()</td></tr>
+<tr class="separator:acca3a544ce9f832fab85a471432b12bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a077457b7a802ee946db4b2f8117d5ad4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a077457b7a802ee946db4b2f8117d5ad4"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>writeByte</b> (uint8_t b)</td></tr>
+<tr class="separator:a077457b7a802ee946db4b2f8117d5ad4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac016d569bfd0e907249a5243d64a2bfe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac016d569bfd0e907249a5243d64a2bfe"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>writeWord</b> (uint16_t w)</td></tr>
+<tr class="separator:ac016d569bfd0e907249a5243d64a2bfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aacffbb49cfb242addffb6e7ffdcb3ef7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aacffbb49cfb242addffb6e7ffdcb3ef7"></a>
+static void&#160;</td><td class="memItemRight" valign="bottom"><b>writeBytesValueRaw</b> (uint8_t value, int len)</td></tr>
+<tr class="separator:aacffbb49cfb242addffb6e7ffdcb3ef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63c213c547fd413c258e9bfbf4c7b982"><td class="memTemplParams" colspan="2"><a class="anchor" id="a63c213c547fd413c258e9bfbf4c7b982"></a>
+template&lt;uint8_t BIT&gt; </td></tr>
+<tr class="memitem:a63c213c547fd413c258e9bfbf4c7b982"><td class="memTemplItemLeft" align="right" valign="top">static void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>writeBit</b> (uint8_t b)</td></tr>
+<tr class="separator:a63c213c547fd413c258e9bfbf4c7b982"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="fastspi__ref_8h_source.html">fastspi_ref.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Nov 11 2015 15:10: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/class_s_k6812.html b/docs/3.1/class_s_k6812.html
new file mode 100644
index 00000000..2b2b1504
--- /dev/null
+++ b/docs/3.1/class_s_k6812.html
@@ -0,0 +1,117 @@
+<!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: SK6812&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</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><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">SK6812&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for SK6812&lt; DATA_PIN, RGB_ORDER &gt;:</div>
+<div class="dyncontent">
+<div class="center"><img src="class_s_k6812__inherit__graph.png" border="0" usemap="#_s_k6812_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map" alt="Inheritance graph"/></div>
+<map name="_s_k6812_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map" id="_s_k6812_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map">
+<area shape="rect" id="node2" href="class_s_k6812_controller.html" title="SK6812Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="230,67,405,109"/></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<div class="dynheader">
+Collaboration diagram for SK6812&lt; DATA_PIN, RGB_ORDER &gt;:</div>
+<div class="dyncontent">
+<div class="center"><img src="class_s_k6812__coll__graph.png" border="0" usemap="#_s_k6812_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="_s_k6812_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map" id="_s_k6812_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_s_k6812_controller.html" title="SK6812Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="230,67,405,109"/></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Nov 11 2015 15:10: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/class_s_k6812__coll__graph.map b/docs/3.1/class_s_k6812__coll__graph.map
new file mode 100644
index 00000000..16ae72d0
--- /dev/null
+++ b/docs/3.1/class_s_k6812__coll__graph.map
@@ -0,0 +1,3 @@
+<map id="SK6812&lt; DATA_PIN, RGB_ORDER &gt;" name="SK6812&lt; DATA_PIN, RGB_ORDER &gt;">
+<area shape="rect" id="node2" href="$class_s_k6812_controller.html" title="SK6812Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="230,67,405,109"/>
+</map>
diff --git a/docs/3.1/class_s_k6812__coll__graph.md5 b/docs/3.1/class_s_k6812__coll__graph.md5
new file mode 100644
index 00000000..f159f7b8
--- /dev/null
+++ b/docs/3.1/class_s_k6812__coll__graph.md5
@@ -0,0 +1 @@
+f42a8a5eacc690a9dd300a1729b98c35 \ No newline at end of file
diff --git a/docs/3.1/class_s_k6812__coll__graph.png b/docs/3.1/class_s_k6812__coll__graph.png
new file mode 100644
index 00000000..daa09d8c
--- /dev/null
+++ b/docs/3.1/class_s_k6812__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_s_k6812__inherit__graph.map b/docs/3.1/class_s_k6812__inherit__graph.map
new file mode 100644
index 00000000..16ae72d0
--- /dev/null
+++ b/docs/3.1/class_s_k6812__inherit__graph.map
@@ -0,0 +1,3 @@
+<map id="SK6812&lt; DATA_PIN, RGB_ORDER &gt;" name="SK6812&lt; DATA_PIN, RGB_ORDER &gt;">
+<area shape="rect" id="node2" href="$class_s_k6812_controller.html" title="SK6812Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="230,67,405,109"/>
+</map>
diff --git a/docs/3.1/class_s_k6812__inherit__graph.md5 b/docs/3.1/class_s_k6812__inherit__graph.md5
new file mode 100644
index 00000000..f159f7b8
--- /dev/null
+++ b/docs/3.1/class_s_k6812__inherit__graph.md5
@@ -0,0 +1 @@
+f42a8a5eacc690a9dd300a1729b98c35 \ No newline at end of file
diff --git a/docs/3.1/class_s_k6812__inherit__graph.png b/docs/3.1/class_s_k6812__inherit__graph.png
new file mode 100644
index 00000000..daa09d8c
--- /dev/null
+++ b/docs/3.1/class_s_k6812__inherit__graph.png
Binary files differ
diff --git a/docs/3.1/class_s_k6812_controller.html b/docs/3.1/class_s_k6812_controller.html
new file mode 100644
index 00000000..0ae8fb49
--- /dev/null
+++ b/docs/3.1/class_s_k6812_controller.html
@@ -0,0 +1,117 @@
+<!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: SK6812Controller&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</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><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">SK6812Controller&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">
+Inheritance diagram for SK6812Controller&lt; DATA_PIN, RGB_ORDER &gt;:</div>
+<div class="dyncontent">
+<div class="center"><img src="class_s_k6812_controller__inherit__graph.png" border="0" usemap="#_s_k6812_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map" alt="Inheritance graph"/></div>
+<map name="_s_k6812_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map" id="_s_k6812_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map">
+<area shape="rect" id="node4" href="class_s_k6812.html" title="SK6812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="454,67,637,109"/></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<div class="dynheader">
+Collaboration diagram for SK6812Controller&lt; DATA_PIN, RGB_ORDER &gt;:</div>
+<div class="dyncontent">
+<div class="center"><img src="class_s_k6812_controller__coll__graph.png" border="0" usemap="#_s_k6812_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="_s_k6812_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="_s_k6812_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map">
+</map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="chipsets_8h_source.html">chipsets.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Nov 11 2015 15:10: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/class_s_k6812_controller__coll__graph.map b/docs/3.1/class_s_k6812_controller__coll__graph.map
new file mode 100644
index 00000000..9c318e52
--- /dev/null
+++ b/docs/3.1/class_s_k6812_controller__coll__graph.map
@@ -0,0 +1,2 @@
+<map id="SK6812Controller&lt; DATA_PIN, RGB_ORDER &gt;" name="SK6812Controller&lt; DATA_PIN, RGB_ORDER &gt;">
+</map>
diff --git a/docs/3.1/class_s_k6812_controller__coll__graph.md5 b/docs/3.1/class_s_k6812_controller__coll__graph.md5
new file mode 100644
index 00000000..9f4fc3a4
--- /dev/null
+++ b/docs/3.1/class_s_k6812_controller__coll__graph.md5
@@ -0,0 +1 @@
+0b26e0203c942f065d308d6a80b94e17 \ No newline at end of file
diff --git a/docs/3.1/class_s_k6812_controller__coll__graph.png b/docs/3.1/class_s_k6812_controller__coll__graph.png
new file mode 100644
index 00000000..fa195a33
--- /dev/null
+++ b/docs/3.1/class_s_k6812_controller__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_s_k6812_controller__inherit__graph.map b/docs/3.1/class_s_k6812_controller__inherit__graph.map
new file mode 100644
index 00000000..7ed3fb42
--- /dev/null
+++ b/docs/3.1/class_s_k6812_controller__inherit__graph.map
@@ -0,0 +1,3 @@
+<map id="SK6812Controller&lt; DATA_PIN, RGB_ORDER &gt;" name="SK6812Controller&lt; DATA_PIN, RGB_ORDER &gt;">
+<area shape="rect" id="node4" href="$class_s_k6812.html" title="SK6812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="454,67,637,109"/>
+</map>
diff --git a/docs/3.1/class_s_k6812_controller__inherit__graph.md5 b/docs/3.1/class_s_k6812_controller__inherit__graph.md5
new file mode 100644
index 00000000..9eaadb68
--- /dev/null
+++ b/docs/3.1/class_s_k6812_controller__inherit__graph.md5
@@ -0,0 +1 @@
+26dd2b76ec2a2d1435ae53b96a19d106 \ No newline at end of file
diff --git a/docs/3.1/class_s_k6812_controller__inherit__graph.png b/docs/3.1/class_s_k6812_controller__inherit__graph.png
new file mode 100644
index 00000000..a59e0175
--- /dev/null
+++ b/docs/3.1/class_s_k6812_controller__inherit__graph.png
Binary files differ
diff --git a/docs/3.1/class_s_m16716_controller-members.html b/docs/3.1/class_s_m16716_controller-members.html
index 541bb55d..6b34a8d1 100644
--- a/docs/3.1/class_s_m16716_controller-members.html
+++ b/docs/3.1/class_s_m16716_controller-members.html
@@ -95,44 +95,45 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8">clearLeds</a>(int nLeds)</td><td class="entry"><a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591">init</a>()</td><td class="entry"><a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale) (defined in <a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>)</td><td class="entry"><a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t brightness) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SM16716Controller</b>() (defined in <a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>)</td><td class="entry"><a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>computeAdjustment</b>(uint8_t scale, const CRGB &amp;colorCorrection, const CRGB &amp;colorTemperature) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591">init</a>()</td><td class="entry"><a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale) (defined in <a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>)</td><td class="entry"><a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t brightness) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>SM16716Controller</b>() (defined in <a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>)</td><td class="entry"><a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 d7b8cb62..b28d4bab 100644
--- a/docs/3.1/class_s_m16716_controller.html
+++ b/docs/3.1/class_s_m16716_controller.html
@@ -159,10 +159,10 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struc
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a> ()</td></tr>
<tr class="memdesc:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">zero out the led data managed by this controller <br /></td></tr>
<tr class="separator:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8840496d231f1fe0fa640970dc14db08"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a> ()</td></tr>
-<tr class="memdesc:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
-<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63f75cf7e55cf8da46db5fd27110bb3e"></a>
+virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a> ()</td></tr>
+<tr class="memdesc:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
+<tr class="separator:a63f75cf7e55cf8da46db5fd27110bb3e 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" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
@@ -230,6 +230,9 @@ Additional Inherited Members</h2></td></tr>
static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a> ()</td></tr>
<tr class="memdesc:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the first led controller in the chain of controllers <br /></td></tr>
<tr class="separator:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ad4ceb3bc9ae2efa11e50ffe4b140d4"></a>
+static <a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>computeAdjustment</b> (uint8_t scale, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorCorrection, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorTemperature)</td></tr>
+<tr class="separator:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a4672f8f1e93d5df90685cb62c4ebbe0e inherit pro_attribs_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4672f8f1e93d5df90685cb62c4ebbe0e"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>m_Data</b></td></tr>
@@ -386,7 +389,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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-members.html b/docs/3.1/class_s_p_i_output-members.html
index 70e32ff2..00807d5a 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 60586125..ed5e8990 100644
--- a/docs/3.1/class_s_p_i_output.html
+++ b/docs/3.1/class_s_p_i_output.html
@@ -96,14 +96,14 @@ Inheritance diagram for SPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER
<div class="dyncontent">
<div class="center"><img src="class_s_p_i_output__inherit__graph.png" border="0" usemap="#_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4_inherit__map" id="_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4_inherit__map">
-<area shape="rect" id="node2" href="class_a_v_r_software_s_p_i_output.html" title="AVRSoftwareSPIOutput\l\&lt; _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="5,5,205,61"/></map>
+<area shape="rect" id="node3" href="class_a_v_r_software_s_p_i_output.html" title="AVRSoftwareSPIOutput\l\&lt; _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="5,85,205,141"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for SPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="class_s_p_i_output__coll__graph.png" border="0" usemap="#_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4_coll__map" id="_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4_coll__map">
-<area shape="rect" id="node2" href="class_a_v_r_software_s_p_i_output.html" title="AVRSoftwareSPIOutput\l\&lt; _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="5,5,205,61"/></map>
+<area shape="rect" id="node3" href="class_a_v_r_software_s_p_i_output.html" title="AVRSoftwareSPIOutput\l\&lt; _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="5,85,205,141"/></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>
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 9150529b..8def952c 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 1c84b63a..1a6ef149 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 45e9fdf9..9180f4df 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 e015ee5a..7676d730 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 039a99e5..32b3a1de 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 c1c47eea..eb4ef7c5 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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__coll__graph.map b/docs/3.1/class_s_p_i_output__coll__graph.map
index aec067d7..8306a3cd 100644
--- a/docs/3.1/class_s_p_i_output__coll__graph.map
+++ b/docs/3.1/class_s_p_i_output__coll__graph.map
@@ -1,3 +1,3 @@
<map id="SPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;" name="SPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;">
-<area shape="rect" id="node2" href="$class_a_v_r_software_s_p_i_output.html" title="AVRSoftwareSPIOutput\l\&lt; _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="5,5,205,61"/>
+<area shape="rect" id="node3" href="$class_a_v_r_software_s_p_i_output.html" title="AVRSoftwareSPIOutput\l\&lt; _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="5,85,205,141"/>
</map>
diff --git a/docs/3.1/class_s_p_i_output__coll__graph.md5 b/docs/3.1/class_s_p_i_output__coll__graph.md5
index 5a4ec375..46f8de64 100644
--- a/docs/3.1/class_s_p_i_output__coll__graph.md5
+++ b/docs/3.1/class_s_p_i_output__coll__graph.md5
@@ -1 +1 @@
-e997dbc42026a264c037737b48759f11 \ No newline at end of file
+ba6f1abfa72175f8890b70db67c1d592 \ No newline at end of file
diff --git a/docs/3.1/class_s_p_i_output__coll__graph.png b/docs/3.1/class_s_p_i_output__coll__graph.png
index 20326a9e..575031cb 100644
--- a/docs/3.1/class_s_p_i_output__coll__graph.png
+++ b/docs/3.1/class_s_p_i_output__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_s_p_i_output__inherit__graph.map b/docs/3.1/class_s_p_i_output__inherit__graph.map
index aec067d7..8306a3cd 100644
--- a/docs/3.1/class_s_p_i_output__inherit__graph.map
+++ b/docs/3.1/class_s_p_i_output__inherit__graph.map
@@ -1,3 +1,3 @@
<map id="SPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;" name="SPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;">
-<area shape="rect" id="node2" href="$class_a_v_r_software_s_p_i_output.html" title="AVRSoftwareSPIOutput\l\&lt; _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="5,5,205,61"/>
+<area shape="rect" id="node3" href="$class_a_v_r_software_s_p_i_output.html" title="AVRSoftwareSPIOutput\l\&lt; _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="5,85,205,141"/>
</map>
diff --git a/docs/3.1/class_s_p_i_output__inherit__graph.md5 b/docs/3.1/class_s_p_i_output__inherit__graph.md5
index 5a4ec375..46f8de64 100644
--- a/docs/3.1/class_s_p_i_output__inherit__graph.md5
+++ b/docs/3.1/class_s_p_i_output__inherit__graph.md5
@@ -1 +1 @@
-e997dbc42026a264c037737b48759f11 \ No newline at end of file
+ba6f1abfa72175f8890b70db67c1d592 \ No newline at end of file
diff --git a/docs/3.1/class_s_p_i_output__inherit__graph.png b/docs/3.1/class_s_p_i_output__inherit__graph.png
index 20326a9e..575031cb 100644
--- a/docs/3.1/class_s_p_i_output__inherit__graph.png
+++ b/docs/3.1/class_s_p_i_output__inherit__graph.png
Binary files differ
diff --git a/docs/3.1/class_selectable-members.html b/docs/3.1/class_selectable-members.html
index c920a0f4..483c7295 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 fd25fe40..50cbe813 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 0420cf4c..bfa9821d 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 5574413b..4041f096 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 5bd3b86f..1e984d7a 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 ba1a7673..f61ca3ce 100644
--- a/docs/3.1/class_t_m1803_controller400_khz.html
+++ b/docs/3.1/class_t_m1803_controller400_khz.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 fb2483d4..85b99a88 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 89065f0f..688baca8 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 7b428c8f..f02a1e27 100644
--- a/docs/3.1/class_t_m1809_controller800_khz.html
+++ b/docs/3.1/class_t_m1809_controller800_khz.html
@@ -94,7 +94,7 @@ Inheritance diagram for TM1809Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;:</di
<div class="dyncontent">
<div class="center"><img src="class_t_m1809_controller800_khz__inherit__graph.png" border="0" usemap="#_t_m1809_controller800_khz_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="_t_m1809_controller800_khz_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map" id="_t_m1809_controller800_khz_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map">
-<area shape="rect" id="node4" href="class_t_m1804.html" title="TM1804\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="480,34,664,75"/><area shape="rect" id="node5" href="class_t_m1809.html" title="TM1809\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="480,99,664,141"/></map>
+<area shape="rect" id="node4" href="class_t_m1804.html" title="TM1804\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="480,5,664,46"/><area shape="rect" id="node5" href="class_t_m1809.html" title="TM1809\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="480,70,664,111"/><area shape="rect" id="node6" href="class_t_m1812.html" title="TM1812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="480,135,664,177"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for TM1809Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;:</div>
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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__inherit__graph.map b/docs/3.1/class_t_m1809_controller800_khz__inherit__graph.map
index ba262961..61b1b334 100644
--- a/docs/3.1/class_t_m1809_controller800_khz__inherit__graph.map
+++ b/docs/3.1/class_t_m1809_controller800_khz__inherit__graph.map
@@ -1,4 +1,5 @@
<map id="TM1809Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;" name="TM1809Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;">
-<area shape="rect" id="node4" href="$class_t_m1804.html" title="TM1804\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="480,34,664,75"/>
-<area shape="rect" id="node5" href="$class_t_m1809.html" title="TM1809\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="480,99,664,141"/>
+<area shape="rect" id="node4" href="$class_t_m1804.html" title="TM1804\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="480,5,664,46"/>
+<area shape="rect" id="node5" href="$class_t_m1809.html" title="TM1809\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="480,70,664,111"/>
+<area shape="rect" id="node6" href="$class_t_m1812.html" title="TM1812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="480,135,664,177"/>
</map>
diff --git a/docs/3.1/class_t_m1809_controller800_khz__inherit__graph.md5 b/docs/3.1/class_t_m1809_controller800_khz__inherit__graph.md5
index ff07132e..7250dd11 100644
--- a/docs/3.1/class_t_m1809_controller800_khz__inherit__graph.md5
+++ b/docs/3.1/class_t_m1809_controller800_khz__inherit__graph.md5
@@ -1 +1 @@
-0ce6b55643359d0b95f88ff678d428dc \ No newline at end of file
+48e8269e1c3e3a06b3e37300734d8c88 \ No newline at end of file
diff --git a/docs/3.1/class_t_m1809_controller800_khz__inherit__graph.png b/docs/3.1/class_t_m1809_controller800_khz__inherit__graph.png
index 9e061e8a..38168a6f 100644
--- a/docs/3.1/class_t_m1809_controller800_khz__inherit__graph.png
+++ b/docs/3.1/class_t_m1809_controller800_khz__inherit__graph.png
Binary files differ
diff --git a/docs/3.1/class_t_m1812.html b/docs/3.1/class_t_m1812.html
new file mode 100644
index 00000000..60db2802
--- /dev/null
+++ b/docs/3.1/class_t_m1812.html
@@ -0,0 +1,117 @@
+<!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: TM1812&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</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><a href="functions.html"><span>Class&#160;Members</span></a></li>
+ </ul>
+ </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+ <div class="headertitle">
+<div class="title">TM1812&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for TM1812&lt; DATA_PIN, RGB_ORDER &gt;:</div>
+<div class="dyncontent">
+<div class="center"><img src="class_t_m1812__inherit__graph.png" border="0" usemap="#_t_m1812_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map" alt="Inheritance graph"/></div>
+<map name="_t_m1812_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map" id="_t_m1812_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map">
+<area shape="rect" id="node2" href="class_t_m1809_controller800_khz.html" title="TM1809Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="229,67,432,109"/></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<div class="dynheader">
+Collaboration diagram for TM1812&lt; DATA_PIN, RGB_ORDER &gt;:</div>
+<div class="dyncontent">
+<div class="center"><img src="class_t_m1812__coll__graph.png" border="0" usemap="#_t_m1812_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="_t_m1812_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map" id="_t_m1812_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_t_m1809_controller800_khz.html" title="TM1809Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="229,67,432,109"/></map>
+<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Nov 11 2015 15:10: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/class_t_m1812__coll__graph.map b/docs/3.1/class_t_m1812__coll__graph.map
new file mode 100644
index 00000000..46d6b65a
--- /dev/null
+++ b/docs/3.1/class_t_m1812__coll__graph.map
@@ -0,0 +1,3 @@
+<map id="TM1812&lt; DATA_PIN, RGB_ORDER &gt;" name="TM1812&lt; DATA_PIN, RGB_ORDER &gt;">
+<area shape="rect" id="node2" href="$class_t_m1809_controller800_khz.html" title="TM1809Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="229,67,432,109"/>
+</map>
diff --git a/docs/3.1/class_t_m1812__coll__graph.md5 b/docs/3.1/class_t_m1812__coll__graph.md5
new file mode 100644
index 00000000..ca5d740f
--- /dev/null
+++ b/docs/3.1/class_t_m1812__coll__graph.md5
@@ -0,0 +1 @@
+3fe344bd7139d778c4c8eed23bbb20de \ No newline at end of file
diff --git a/docs/3.1/class_t_m1812__coll__graph.png b/docs/3.1/class_t_m1812__coll__graph.png
new file mode 100644
index 00000000..c21a776c
--- /dev/null
+++ b/docs/3.1/class_t_m1812__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_t_m1812__inherit__graph.map b/docs/3.1/class_t_m1812__inherit__graph.map
new file mode 100644
index 00000000..46d6b65a
--- /dev/null
+++ b/docs/3.1/class_t_m1812__inherit__graph.map
@@ -0,0 +1,3 @@
+<map id="TM1812&lt; DATA_PIN, RGB_ORDER &gt;" name="TM1812&lt; DATA_PIN, RGB_ORDER &gt;">
+<area shape="rect" id="node2" href="$class_t_m1809_controller800_khz.html" title="TM1809Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="229,67,432,109"/>
+</map>
diff --git a/docs/3.1/class_t_m1812__inherit__graph.md5 b/docs/3.1/class_t_m1812__inherit__graph.md5
new file mode 100644
index 00000000..ca5d740f
--- /dev/null
+++ b/docs/3.1/class_t_m1812__inherit__graph.md5
@@ -0,0 +1 @@
+3fe344bd7139d778c4c8eed23bbb20de \ No newline at end of file
diff --git a/docs/3.1/class_t_m1812__inherit__graph.png b/docs/3.1/class_t_m1812__inherit__graph.png
new file mode 100644
index 00000000..c21a776c
--- /dev/null
+++ b/docs/3.1/class_t_m1812__inherit__graph.png
Binary files differ
diff --git a/docs/3.1/class_t_m1829.html b/docs/3.1/class_t_m1829.html
index f9dff768..9d41fdfe 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 cfc80fe7..a40c0a25 100644
--- a/docs/3.1/class_t_m1829_controller1600_khz.html
+++ b/docs/3.1/class_t_m1829_controller1600_khz.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 7d2d3100..c64fa45b 100644
--- a/docs/3.1/class_t_m1829_controller800_khz.html
+++ b/docs/3.1/class_t_m1829_controller800_khz.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 3400f055..eb5446ae 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 e11d5372..c698a095 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 dd87830a..9b4557a4 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
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 bd1203d3..e454d2ac 100644
--- a/docs/3.1/class_u_c_s1903_controller400_khz.html
+++ b/docs/3.1/class_u_c_s1903_controller400_khz.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 3c245e08..679ee1af 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 20d1dc65..8a0b7d07 100644
--- a/docs/3.1/class_u_c_s1904_controller800_khz.html
+++ b/docs/3.1/class_u_c_s1904_controller800_khz.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 84f792bc..e286eac4 100644
--- a/docs/3.1/class_w_s2801_controller-members.html
+++ b/docs/3.1/class_w_s2801_controller-members.html
@@ -95,45 +95,46 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c">clearLeds</a>(int nLeds)</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4">init</a>()</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>computeAdjustment</b>(uint8_t scale, const CRGB &amp;colorCorrection, const CRGB &amp;colorTemperature) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4">init</a>()</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t brightness) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>WS2801Controller</b>() (defined in <a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>)</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t brightness) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>WS2801Controller</b>() (defined in <a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>)</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 b5e151b1..d1ada376 100644
--- a/docs/3.1/class_w_s2801_controller.html
+++ b/docs/3.1/class_w_s2801_controller.html
@@ -159,10 +159,10 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struc
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a> ()</td></tr>
<tr class="memdesc:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">zero out the led data managed by this controller <br /></td></tr>
<tr class="separator:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8840496d231f1fe0fa640970dc14db08"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a> ()</td></tr>
-<tr class="memdesc:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
-<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63f75cf7e55cf8da46db5fd27110bb3e"></a>
+virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a> ()</td></tr>
+<tr class="memdesc:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
+<tr class="separator:a63f75cf7e55cf8da46db5fd27110bb3e 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" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
@@ -234,6 +234,9 @@ Additional Inherited Members</h2></td></tr>
static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a> ()</td></tr>
<tr class="memdesc:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the first led controller in the chain of controllers <br /></td></tr>
<tr class="separator:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ad4ceb3bc9ae2efa11e50ffe4b140d4"></a>
+static <a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>computeAdjustment</b> (uint8_t scale, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorCorrection, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorTemperature)</td></tr>
+<tr class="separator:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a4672f8f1e93d5df90685cb62c4ebbe0e inherit pro_attribs_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4672f8f1e93d5df90685cb62c4ebbe0e"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>m_Data</b></td></tr>
@@ -444,7 +447,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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-members.html b/docs/3.1/class_w_s2803_controller-members.html
index 047a85ab..a3729af2 100644
--- a/docs/3.1/class_w_s2803_controller-members.html
+++ b/docs/3.1/class_w_s2803_controller-members.html
@@ -95,45 +95,46 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c">clearLeds</a>(int nLeds)</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4">init</a>()</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>computeAdjustment</b>(uint8_t scale, const CRGB &amp;colorCorrection, const CRGB &amp;colorTemperature) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>getMaxRefreshRate</b>() const (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4">init</a>()</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ColorCorrection</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ColorTemperature</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_Data</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_DitherMode</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_nLeds</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pHead</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_pNext</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_pTail</b> (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(int x)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(CRGB correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(LEDColorCorrection correction)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode=BINARY_DITHER)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(CRGB *data, int nLeds)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(CRGB temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(ColorTemperature temperature)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t brightness) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>WS2801Controller</b>() (defined in <a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>)</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, CRGB scale)=0 (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a>(const struct CRGB *data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>show</b>(const struct CARGB *data, int nLeds, uint8_t brightness) (defined in <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a>(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a>(const struct CRGB &amp;data, uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255)</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a>()</td><td class="entry"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>WS2801Controller</b>() (defined in <a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>)</td><td class="entry"><a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 f23912b7..2450cf0d 100644
--- a/docs/3.1/class_w_s2803_controller.html
+++ b/docs/3.1/class_w_s2803_controller.html
@@ -153,10 +153,10 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struc
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a> ()</td></tr>
<tr class="memdesc:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">zero out the led data managed by this controller <br /></td></tr>
<tr class="separator:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8840496d231f1fe0fa640970dc14db08"></a>
-int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a> ()</td></tr>
-<tr class="memdesc:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
-<tr class="separator:a8840496d231f1fe0fa640970dc14db08 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63f75cf7e55cf8da46db5fd27110bb3e"></a>
+virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a> ()</td></tr>
+<tr class="memdesc:a63f75cf7e55cf8da46db5fd27110bb3e inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many leds does this controller manage? <br /></td></tr>
+<tr class="separator:a63f75cf7e55cf8da46db5fd27110bb3e 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" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array for this controller. <br /></td></tr>
@@ -209,6 +209,9 @@ virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getMaxRef
static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a> ()</td></tr>
<tr class="memdesc:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the first led controller in the chain of controllers <br /></td></tr>
<tr class="separator:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ad4ceb3bc9ae2efa11e50ffe4b140d4"></a>
+static <a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>computeAdjustment</b> (uint8_t scale, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorCorrection, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;colorTemperature)</td></tr>
+<tr class="separator:a3ad4ceb3bc9ae2efa11e50ffe4b140d4 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_class_w_s2801_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_w_s2801_controller')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <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="memitem:a615609bf16dd4c8fcc9ccf286ca52501 inherit pro_methods_class_w_s2801_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501">showColor</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
<tr class="memdesc:a615609bf16dd4c8fcc9ccf286ca52501 inherit pro_methods_class_w_s2801_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#a615609bf16dd4c8fcc9ccf286ca52501">More...</a><br /></td></tr>
@@ -256,7 +259,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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.html b/docs/3.1/class_w_s2811.html
index ddd7fab0..d2c03822 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 7f6296a3..bd5ba00a 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 6e291e31..8f0065d7 100644
--- a/docs/3.1/class_w_s2811_controller400_khz.html
+++ b/docs/3.1/class_w_s2811_controller400_khz.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 e1e86d10..5867eb81 100644
--- a/docs/3.1/class_w_s2811_controller800_khz.html
+++ b/docs/3.1/class_w_s2811_controller800_khz.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 3927b01a..e5225629 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 fb5e3e8d..d56f7af3 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 8358b133..7e13aa2a 100644
--- a/docs/3.1/class_w_s2812_controller800_khz.html
+++ b/docs/3.1/class_w_s2812_controller800_khz.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 3ac554b8..4a8b2c83 100644
--- a/docs/3.1/classes.html
+++ b/docs/3.1/classes.html
@@ -89,59 +89,62 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="title">Class Index</div> </div>
</div><!--header-->
<div class="contents">
-<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_J">J</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_O">O</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_Q">Q</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
+<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_J">J</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_O">O</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_Q">Q</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
<tr><td rowspan="2" valign="bottom"><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;A&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_d_m_x_s_i_m_p_l_e.html">DMXSIMPLE</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_N"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;N&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="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">SPIOutput&lt; SPI_UART1_DATA, SPI_UART1_CLOCK, SPI_SPEED &gt;</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_w_s2803_controller.html">WS2803Controller</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;T&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;F&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="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">SPIOutput&lt; SPI_DATA, SPI2_CLOCK, SPI_SPEED &gt;</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_W"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;W&#160;&#160;</div></td></tr></table>
+</td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_O"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;O&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="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">SPIOutput&lt; SPI_DATA, SPI_CLOCK, SPI_SPEED &gt;</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_a_p_a102_controller.html">APA102Controller</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_fast_pin.html">FastPin</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="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">SPIOutput&lt; SPI_UART0_DATA, SPI_UART0_CLOCK, SPI_SPEED &gt;</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_w_s2801_controller.html">WS2801Controller</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_a_p_a104.html">APA104</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_fast_pin_b_b.html">FastPinBB</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_output_pin.html">OutputPin</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="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">SPIOutput&lt; SPI_UART1_DATA, SPI_UART1_CLOCK, SPI_SPEED &gt;</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_w_s2803_controller.html">WS2803Controller</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_a_v_r_software_s_p_i_output.html">AVRSoftwareSPIOutput</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_G"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;G&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;P&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;T&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="class_w_s2811.html">WS2811</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_a_p_a102_controller.html">APA102Controller</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_F"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;F&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_n_e_o_p_i_x_e_l.html">NEOPIXEL</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_w_s2811__400.html">WS2811_400</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_a_p_a104.html">APA104</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_O"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;O&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_t_m1803.html">TM1803</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_w_s2811_controller400_khz.html">WS2811Controller400Khz</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_a_v_r_software_s_p_i_output.html">AVRSoftwareSPIOutput</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_fast_pin.html">FastPin</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_t_m1803_controller400_khz.html">TM1803Controller400Khz</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_w_s2811_controller800_khz.html">WS2811Controller800Khz</a>&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;C&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_fast_pin_b_b.html">FastPinBB</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_output_pin.html">OutputPin</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_t_m1804.html">TM1804</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_w_s2812.html">WS2812</a>&#160;&#160;&#160;</td></tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_G"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;G&#160;&#160;</div></td></tr></table>
-</td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;P&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_t_m1809.html">TM1809</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_w_s2812_b.html">WS2812B</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_c_fast_l_e_d.html">CFastLED</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_g_w6205.html">GW6205</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_p9813_controller.html">P9813Controller</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_t_m1829.html">TM1829</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_b"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;b&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="class_w_s2811__400.html">WS2811_400</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_g_w6205.html">GW6205</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_p9813_controller.html">P9813Controller</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_t_m1803.html">TM1803</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_w_s2811_controller400_khz.html">WS2811Controller400Khz</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_g_w6205__400.html">GW6205_400</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_pin.html">Pin</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_t_m1803_controller400_khz.html">TM1803Controller400Khz</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_w_s2811_controller800_khz.html">WS2811Controller800Khz</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_c_fast_l_e_d.html">CFastLED</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_g_w6205_controller400_khz.html">GW6205Controller400Khz</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_pixel_controller.html">PixelController</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_t_m1804.html">TM1804</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_w_s2812.html">WS2812</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="struct_c_h_s_v.html">CHSV</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_g_w6205_controller800_khz.html">GW6205Controller800Khz</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_p_l9823.html">PL9823</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_t_m1809.html">TM1809</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_w_s2812_b.html">WS2812B</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;I&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="class_p_l9823_controller.html">PL9823Controller</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;R&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="class_t_m1812.html">TM1812</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_b"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;b&#160;&#160;</div></td></tr></table>
</td></tr>
-<tr><td valign="top"><a class="el" href="struct_c_h_s_v.html">CHSV</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_g_w6205__400.html">GW6205_400</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_pin.html">Pin</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_t_m1829_controller1600_khz.html">TM1829Controller1600Khz</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_g_w6205_controller400_khz.html">GW6205Controller400Khz</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_pixel_controller.html">PixelController</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_t_m1829_controller800_khz.html">TM1829Controller800Khz</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="unionbitswap__type.html">bitswap_type</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_g_w6205_controller800_khz.html">GW6205Controller800Khz</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;S&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_j"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;j&#160;&#160;</div></td></tr></table>
+<tr><td valign="top"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="union_i_e_e_e754binary32__t.html">IEEE754binary32_t</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_t_m1829.html">TM1829</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_c_min_wait.html">CMinWait</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_input_pin.html">InputPin</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_t_m1829_controller1600_khz.html">TM1829Controller1600Khz</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="unionbitswap__type.html">bitswap_type</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;L&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_S"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;S&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="class_t_m1829_controller800_khz.html">TM1829Controller800Khz</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_j"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;j&#160;&#160;</div></td></tr></table>
</td></tr>
-<tr><td valign="top"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_I"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;I&#160;&#160;</div></td></tr></table>
-</td><td rowspan="2" valign="bottom"><a name="letter_U"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;U&#160;&#160;</div></td></tr></table>
-</td></tr>
-<tr><td valign="top"><a class="el" href="class_c_min_wait.html">CMinWait</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_selectable.html">Selectable</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="unionjust8bits.html">just8bits</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="union_i_e_e_e754binary32__t.html">IEEE754binary32_t</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_s_m16716_controller.html">SM16716Controller</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_u_c_s1903.html">UCS1903</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_q"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;q&#160;&#160;</div></td></tr></table>
-</td></tr>
-<tr><td valign="top"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_input_pin.html">InputPin</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_software_s_p_i_output.html">SoftwareSPIOutput</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_u_c_s1903_b.html">UCS1903B</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;L&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_s_p_i_output.html">SPIOutput</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_u_c_s1903_b_controller800_khz.html">UCS1903BController800Khz</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classq.html">q</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_l_p_d1886.html">LPD1886</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_selectable.html">Selectable</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_U"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;U&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="unionjust8bits.html">just8bits</a>&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;D&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="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">SPIOutput&lt; SPI2_DATA, SPI2_CLOCK, SPI_SPEED &gt;</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_u_c_s1903_controller400_khz.html">UCS1903Controller400Khz</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="class_l_p_d1886_controller1250_khz.html">LPD1886Controller1250Khz</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_s_k6812.html">SK6812</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_q"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;q&#160;&#160;</div></td></tr></table>
+</td></tr>
+<tr><td valign="top"><a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_s_k6812_controller.html">SK6812Controller</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_u_c_s1903.html">UCS1903</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_d_a_t_a___n_o_p.html">DATA_NOP</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;M&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="class_s_m16716_controller.html">SM16716Controller</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_u_c_s1903_b.html">UCS1903B</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classq.html">q</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_d_m_x_s_e_r_i_a_l.html">DMXSERIAL</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_software_s_p_i_output.html">SoftwareSPIOutput</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_u_c_s1903_b_controller800_khz.html">UCS1903BController800Khz</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
</td></tr>
-<tr><td valign="top"><a class="el" href="class_l_p_d1886.html">LPD1886</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="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">SPIOutput&lt; SPI2_DATA, SPI_CLOCK, SPI_SPEED &gt;</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_u_c_s1904.html">UCS1904</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_d_a_t_a___n_o_p.html">DATA_NOP</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_l_p_d1886_controller1250_khz.html">LPD1886Controller1250Khz</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="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">SPIOutput&lt; SPI_DATA, SPI2_CLOCK, SPI_SPEED &gt;</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_u_c_s1904_controller800_khz.html">UCS1904Controller800Khz</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structsub4.html">sub4</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_d_m_x_s_e_r_i_a_l.html">DMXSERIAL</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="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">SPIOutput&lt; SPI_DATA, SPI_CLOCK, SPI_SPEED &gt;</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_W"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;W&#160;&#160;</div></td></tr></table>
-</td><td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;t&#160;&#160;</div></td></tr></table>
+<tr><td valign="top"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_multi_pixel_controller.html">MultiPixelController</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_s_p_i_output.html">SPIOutput</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_u_c_s1903_controller400_khz.html">UCS1903Controller400Khz</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_d_m_x_s_i_m_p_l_e.html">DMXSIMPLE</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_N"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;N&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="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">SPIOutput&lt; SPI2_DATA, SPI2_CLOCK, SPI_SPEED &gt;</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_u_c_s1904.html">UCS1904</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structsub4.html">sub4</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="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">SPIOutput&lt; SPI2_DATA, SPI_CLOCK, SPI_SPEED &gt;</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_u_c_s1904_controller800_khz.html">UCS1904Controller800Khz</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;t&#160;&#160;</div></td></tr></table>
</td></tr>
-<tr><td valign="top"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;M&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="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">SPIOutput&lt; SPI_UART0_DATA, SPI_UART0_CLOCK, SPI_SPEED &gt;</a>&#160;&#160;&#160;</td></tr>
-<tr><td></td><td></td><td valign="top"><a class="el" href="class_w_s2801_controller.html">WS2801Controller</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="uniont_bytes_for_long.html">tBytesForLong</a>&#160;&#160;&#160;</td></tr>
-<tr><td></td><td valign="top"><a class="el" href="struct_multi_pixel_controller.html">MultiPixelController</a>&#160;&#160;&#160;</td><td></td><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a class="el" href="class_n_e_o_p_i_x_e_l.html">NEOPIXEL</a>&#160;&#160;&#160;</td><td></td><td></td></tr>
+<tr><td></td><td></td><td></td><td></td><td valign="top"><a class="el" href="uniont_bytes_for_long.html">tBytesForLong</a>&#160;&#160;&#160;</td></tr>
<tr><td></td><td></td><td></td><td></td><td></td></tr>
</table>
-<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_J">J</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_O">O</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_Q">Q</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
+<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a>&#160;|&#160;<a class="qindex" href="#letter_I">I</a>&#160;|&#160;<a class="qindex" href="#letter_J">J</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_N">N</a>&#160;|&#160;<a class="qindex" href="#letter_O">O</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_Q">Q</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a>&#160;|&#160;<a class="qindex" href="#letter_U">U</a>&#160;|&#160;<a class="qindex" href="#letter_W">W</a></div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 22c89b80..fecce565 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 f197dd26..6e27863e 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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.html b/docs/3.1/color_8h.html
index caa1e787..7e7c3f7f 100644
--- a/docs/3.1/color_8h.html
+++ b/docs/3.1/color_8h.html
@@ -141,7 +141,7 @@ Enumerations</h2></td></tr>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 58934197..01d3eb38 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 23:10:46 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10:35 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.html b/docs/3.1/colorpalettes_8h.html
index 32f2c8d1..fd53ae18 100644
--- a/docs/3.1/colorpalettes_8h.html
+++ b/docs/3.1/colorpalettes_8h.html
@@ -113,7 +113,7 @@ Variables</h2></td></tr>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 91052210..c3cd988b 100644
--- a/docs/3.1/colorpalettes_8h_source.html
+++ b/docs/3.1/colorpalettes_8h_source.html
@@ -122,7 +122,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 23:10:46 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10:35 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.html b/docs/3.1/colorutils_8h.html
index c3cecab7..80c8c008 100644
--- a/docs/3.1/colorutils_8h.html
+++ b/docs/3.1/colorutils_8h.html
@@ -316,7 +316,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>napplyGamma_video</b>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 6fdfdbdf..31d67529 100644
--- a/docs/3.1/colorutils_8h_source.html
+++ b/docs/3.1/colorutils_8h_source.html
@@ -151,10 +151,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">if</span>( endpos &lt; startpos ) {</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; uint16_t t = endpos;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> tc = endcolor;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; startpos = t;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; startcolor = tc;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; endcolor = startcolor;</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; endpos = startpos;</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; startpos = t;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; startcolor = tc;</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;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// If we&#39;re fading toward black (val=0) or white (sat=0),</span></div>
@@ -468,771 +468,839 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="keyword">typedef</span> <span class="keyword">const</span> TDynamicRGBGradientPalette_byte *TDynamicRGBGradientPalette_bytes;</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="keyword">typedef</span> TDynamicRGBGradientPalette_bytes TDynamicRGBGradientPalettePtr;</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</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">// Convert a 16-entry palette to a 256-entry palette</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</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="l00422"></a><span class="lineno"> 422</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;<span class="comment">// Convert a 16-entry palette to a 256-entry palette</span></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_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="l00421"></a><span class="lineno"> 421</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="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;</div>
-<div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="class_c_h_s_v_palette16.html"> 425</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="l00426"></a><span class="lineno"> 426</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> entries[16];</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>() {};</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</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="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; 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="l00431"></a><span class="lineno"> 431</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="l00432"></a><span class="lineno"> 432</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="l00433"></a><span class="lineno"> 433</span>&#160; {</div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; entries[0]=c00; entries[1]=c01; entries[2]=c02; entries[3]=c03;</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; entries[4]=c04; entries[5]=c05; entries[6]=c06; entries[7]=c07;</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; entries[8]=c08; entries[9]=c09; entries[10]=c10; entries[11]=c11;</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; entries[12]=c12; entries[13]=c13; entries[14]=c14; entries[15]=c15;</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;</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>( <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; }</div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</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="l00445"></a><span class="lineno"> 445</span>&#160; {</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; }</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="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <span class="keyword">const</span> TProgmemHSVPalette16&amp; rhs)</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; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</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="l00454"></a><span class="lineno"> 454</span>&#160; entries[i].hue = xyz.red;</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; entries[i].sat = xyz.green;</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; entries[i].val = xyz.blue;</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; <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="l00460"></a><span class="lineno"> 460</span>&#160; {</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</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="l00463"></a><span class="lineno"> 463</span>&#160; entries[i].hue = xyz.red;</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; entries[i].sat = xyz.green;</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; entries[i].val = xyz.blue;</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> *<span class="keyword">this</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;</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</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="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; <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="l00475"></a><span class="lineno"> 475</span>&#160; {</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">return</span> entries[x];</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;</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</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="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; <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="l00484"></a><span class="lineno"> 484</span>&#160; {</div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; }</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="keyword">operator</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>*()</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="keywordflow">return</span> &amp;(entries[0]);</div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; }</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)</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#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</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)</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);</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)</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);</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="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="l00506"></a><span class="lineno"> 506</span>&#160; {</div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</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="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"> 510</span>&#160;};</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div>
-<div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="class_c_h_s_v_palette256.html"> 512</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="l00513"></a><span class="lineno"> 513</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> entries[256];</div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>() {};</div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</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="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; 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="l00518"></a><span class="lineno"> 518</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="l00519"></a><span class="lineno"> 519</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="l00520"></a><span class="lineno"> 520</span>&#160; {</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</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="l00522"></a><span class="lineno"> 522</span>&#160; c08,c09,c10,c11,c12,c13,c14,c15);</div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; *<span class="keyword">this</span> = p16;</div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; };</div>
+<div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="class_c_h_s_v_palette16.html"> 424</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="l00425"></a><span class="lineno"> 425</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> entries[16];</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>() {};</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</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="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; 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="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; 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="l00431"></a><span class="lineno"> 431</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="l00432"></a><span class="lineno"> 432</span>&#160; {</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; entries[0]=c00; entries[1]=c01; entries[2]=c02; entries[3]=c03;</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; entries[4]=c04; entries[5]=c05; entries[6]=c06; entries[7]=c07;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; entries[8]=c08; entries[9]=c09; entries[10]=c10; entries[11]=c11;</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; entries[12]=c12; entries[13]=c13; entries[14]=c14; entries[15]=c15;</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;</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</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="l00440"></a><span class="lineno"> 440</span>&#160; {</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</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; <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="l00444"></a><span class="lineno"> 444</span>&#160; {</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</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="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">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</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="l00453"></a><span class="lineno"> 453</span>&#160; entries[i].hue = xyz.red;</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; entries[i].sat = xyz.green;</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; entries[i].val = xyz.blue;</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; }</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</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="l00459"></a><span class="lineno"> 459</span>&#160; {</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</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> xyz = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; entries[i].hue = xyz.red;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; entries[i].sat = xyz.green;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; entries[i].val = xyz.blue;</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="keywordflow">return</span> *<span class="keyword">this</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;</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</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="l00470"></a><span class="lineno"> 470</span>&#160; {</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">return</span> entries[x];</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="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="l00474"></a><span class="lineno"> 474</span>&#160; {</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">return</span> entries[x];</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="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="l00479"></a><span class="lineno"> 479</span>&#160; {</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</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="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="l00483"></a><span class="lineno"> 483</span>&#160; {</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</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;</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</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="l00488"></a><span class="lineno"> 488</span>&#160; {</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</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;</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordtype">bool</span> operator==( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> rhs)</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; {</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keyword">const</span> uint8_t* p = (<span class="keyword">const</span> uint8_t*)(&amp;(this-&gt;entries[0]));</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="classq.html">q</a> = (<span class="keyword">const</span> uint8_t*)(&amp;(rhs.entries[0]));</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">if</span>( p == q) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; (<span class="keyword">sizeof</span>( entries)); i++) {</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">if</span>( *p != *q) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; p++;</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; q++;</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">return</span> <span class="keyword">true</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="keywordtype">bool</span> operator!=( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> rhs)</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; <span class="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</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"> 508</span>&#160; </div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</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="l00510"></a><span class="lineno"> 510</span>&#160; {</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; }</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</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="l00514"></a><span class="lineno"> 514</span>&#160; {</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</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="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>( <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="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="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 16, c1, c2, c3);</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; <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="l00522"></a><span class="lineno"> 522</span>&#160; {</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</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="l00524"></a><span class="lineno"> 524</span>&#160; }</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>( <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; }</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</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="l00531"></a><span class="lineno"> 531</span>&#160; {</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; }</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>( <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; }</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</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="l00541"></a><span class="lineno"> 541</span>&#160; {</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</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;</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</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="l00526"></a><span class="lineno"> 526</span>&#160;};</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"><a class="line" href="class_c_h_s_v_palette256.html"> 528</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="l00529"></a><span class="lineno"> 529</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> entries[256];</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>() {};</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="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="l00533"></a><span class="lineno"> 533</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="l00534"></a><span class="lineno"> 534</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="l00535"></a><span class="lineno"> 535</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="l00536"></a><span class="lineno"> 536</span>&#160; {</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</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="l00538"></a><span class="lineno"> 538</span>&#160; c08,c09,c10,c11,c12,c13,c14,c15);</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; *<span class="keyword">this</span> = p16;</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> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&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; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</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_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="l00547"></a><span class="lineno"> 547</span>&#160; {</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> p16(rhs);</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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_palette256.html">CHSVPalette256</a>&amp; operator=( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</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; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> p16(rhs);</div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; *<span class="keyword">this</span> = p16;</div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; }</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> <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="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; <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="l00551"></a><span class="lineno"> 551</span>&#160;</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</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="l00553"></a><span class="lineno"> 553</span>&#160; {</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</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; <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="l00557"></a><span class="lineno"> 557</span>&#160; {</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; }</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; <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="l00563"></a><span class="lineno"> 563</span>&#160; {</div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; }</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> <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; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; *<span class="keyword">this</span> = p16;</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; <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="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; <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="l00572"></a><span class="lineno"> 572</span>&#160; {</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; }</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="keyword">operator</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>*()</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; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; }</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)</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#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</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)</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);</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)</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);</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="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="l00594"></a><span class="lineno"> 594</span>&#160; {</div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</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="l00596"></a><span class="lineno"> 596</span>&#160; }</div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;};</div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;</div>
-<div class="line"><a name="l00599"></a><span class="lineno"><a class="line" href="class_c_r_g_b_palette16.html"> 599</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="l00600"></a><span class="lineno"> 600</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> entries[16];</div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>() {};</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</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="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; 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="l00605"></a><span class="lineno"> 605</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="l00606"></a><span class="lineno"> 606</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="l00607"></a><span class="lineno"> 607</span>&#160; {</div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; entries[0]=c00; entries[1]=c01; entries[2]=c02; entries[3]=c03;</div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; entries[4]=c04; entries[5]=c05; entries[6]=c06; entries[7]=c07;</div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; entries[8]=c08; entries[9]=c09; entries[10]=c10; entries[11]=c11;</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; entries[12]=c12; entries[13]=c13; entries[14]=c14; entries[15]=c15;</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; };</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>( <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="l00569"></a><span class="lineno"> 569</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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">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="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> entries[x];</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; <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="l00579"></a><span class="lineno"> 579</span>&#160; {</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; }</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; <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="l00584"></a><span class="lineno"> 584</span>&#160; {</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</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; <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="l00588"></a><span class="lineno"> 588</span>&#160; {</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</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;</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</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="l00593"></a><span class="lineno"> 593</span>&#160; {</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</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"> 597</span>&#160; <span class="keywordtype">bool</span> operator==( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a> rhs)</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; {</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keyword">const</span> uint8_t* p = (<span class="keyword">const</span> uint8_t*)(&amp;(this-&gt;entries[0]));</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="classq.html">q</a> = (<span class="keyword">const</span> uint8_t*)(&amp;(rhs.entries[0]));</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">if</span>( p == q) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; (<span class="keyword">sizeof</span>( entries)); i++) {</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">if</span>( *p != *q) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; p++;</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; q++;</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; }</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</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; <span class="keywordtype">bool</span> operator!=( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a> rhs)</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; <span class="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; }</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_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="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="l00616"></a><span class="lineno"> 616</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</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; <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="l00618"></a><span class="lineno"> 618</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="l00619"></a><span class="lineno"> 619</span>&#160; {</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; }</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; <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="l00625"></a><span class="lineno"> 625</span>&#160; {</div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; }</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</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="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_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="l00623"></a><span class="lineno"> 623</span>&#160; {</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</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="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_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="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="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2, c3, c4);</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; <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="l00631"></a><span class="lineno"> 631</span>&#160; {</div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; }</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; <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="l00639"></a><span class="lineno"> 639</span>&#160; {</div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; entries[i] = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; }</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; <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="l00645"></a><span class="lineno"> 645</span>&#160; {</div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; entries[i] = FL_PGM_READ_DWORD_NEAR( rhs + i);</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; <span class="keywordflow">return</span> *<span class="keyword">this</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;</div>
+<div class="line"><a name="l00632"></a><span class="lineno"><a class="line" href="class_c_r_g_b_palette16.html"> 632</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="l00633"></a><span class="lineno"> 633</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> entries[16];</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>() {};</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> <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="l00637"></a><span class="lineno"> 637</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="l00638"></a><span class="lineno"> 638</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="l00639"></a><span class="lineno"> 639</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="l00640"></a><span class="lineno"> 640</span>&#160; {</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; entries[0]=c00; entries[1]=c01; entries[2]=c02; entries[3]=c03;</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; entries[4]=c04; entries[5]=c05; entries[6]=c06; entries[7]=c07;</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; entries[8]=c08; entries[9]=c09; entries[10]=c10; entries[11]=c11;</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; entries[12]=c12; entries[13]=c13; entries[14]=c14; entries[15]=c15;</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; };</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; <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="l00648"></a><span class="lineno"> 648</span>&#160; {</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; }</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> <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="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="l00651"></a><span class="lineno"> 651</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="l00652"></a><span class="lineno"> 652</span>&#160; {</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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="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="l00657"></a><span class="lineno"> 657</span>&#160; {</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; }</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> <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="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; <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="l00666"></a><span class="lineno"> 666</span>&#160; {</div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
-<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; }</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="keyword">operator</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>*()</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; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; }</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)</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#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</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)</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);</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)</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);</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="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="l00688"></a><span class="lineno"> 688</span>&#160; {</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</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="l00690"></a><span class="lineno"> 690</span>&#160; }</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)</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="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</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)</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);</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)</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);</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; <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="l00705"></a><span class="lineno"> 705</span>&#160; {</div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 16, c1, c2, c3, c4);</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;</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; <span class="comment">// Gradient palettes are loaded into CRGB16Palettes in such a way</span></div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="comment">// that, if possible, every color represented in the gradient palette</span></div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="comment">// is also represented in the CRGBPalette16.</span></div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="comment">// For example, consider a gradient palette that is all black except</span></div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</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="l00715"></a><span class="lineno"> 715</span>&#160; <span class="comment">// 0, 0,0,0</span></div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="comment">// 124, 0,0,0</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="comment">// 125, 255,0,0 // one 1/256th-palette-wide red stripe</span></div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="comment">// 126, 0,0,0</span></div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="comment">// 255, 0,0,0</span></div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</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="l00721"></a><span class="lineno"> 721</span>&#160; <span class="comment">// might accidentally completely eliminate the red spike, rendering the</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="comment">// palette completely black.</span></div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="comment">// However, the conversions provided here would attempt to include a</span></div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</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="l00725"></a><span class="lineno"> 725</span>&#160; <span class="comment">// So in this case, the resulting CRGBPalette16 palette would have a red</span></div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</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="l00727"></a><span class="lineno"> 727</span>&#160; <span class="comment">// narrowest possible in a CRGBPalette16.</span></div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="comment">// This means that the relative width of stripes in a CRGBPalette16</span></div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="comment">// will be, by definition, different from the widths in the gradient</span></div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</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="l00731"></a><span class="lineno"> 731</span>&#160; <span class="comment">// the exact stripe widths at the expense of dropping some colors.</span></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>( 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; *<span class="keyword">this</span> = 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="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; operator=( TProgmemRGBGradientPalette_bytes progpal )</div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; {</div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</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="l00739"></a><span class="lineno"> 739</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="l00740"></a><span class="lineno"> 740</span>&#160;</div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="comment">// Count entries</span></div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; uint8_t count = 0;</div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">do</span> {</div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR(progent + count);</div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; count++;;</div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; } <span class="keywordflow">while</span> ( u.index != 255);</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; int8_t lastSlotUsed = -1;</div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;</div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</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="l00752"></a><span class="lineno"> 752</span>&#160;</div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; uint8_t istart8 = 0;</div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; uint8_t iend8 = 0;</div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; progent++;</div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</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="l00761"></a><span class="lineno"> 761</span>&#160; istart8 = indexstart / 16;</div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; iend8 = indexend / 16;</div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keywordflow">if</span>( count &lt; 16) {</div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordflow">if</span>( (istart8 &lt;= lastSlotUsed) &amp;&amp; (lastSlotUsed &lt; 15)) {</div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; istart8 = lastSlotUsed + 1;</div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="keywordflow">if</span>( iend8 &lt; istart8) {</div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; iend8 = istart8;</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; lastSlotUsed = iend8;</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; fill_gradient_RGB( &amp;(entries[0]), istart8, rgbstart, iend8, rgbend);</div>
-<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; indexstart = indexend;</div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; rgbstart = rgbend;</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> *<span class="keyword">this</span>;</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="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; loadDynamicGradientPalette( TDynamicRGBGradientPalette_bytes gpal )</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="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="l00781"></a><span class="lineno"> 781</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="l00782"></a><span class="lineno"> 782</span>&#160;</div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="comment">// Count entries</span></div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; uint8_t count = 0;</div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <span class="keywordflow">do</span> {</div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; u = *(ent + count);</div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; count++;;</div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; } <span class="keywordflow">while</span> ( u.index != 255);</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; int8_t lastSlotUsed = -1;</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; u = *ent;</div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</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="l00795"></a><span class="lineno"> 795</span>&#160;</div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; uint8_t istart8 = 0;</div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; uint8_t iend8 = 0;</div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; ent++;</div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; u = *ent;</div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</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="l00804"></a><span class="lineno"> 804</span>&#160; istart8 = indexstart / 16;</div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; iend8 = indexend / 16;</div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">if</span>( count &lt; 16) {</div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keywordflow">if</span>( (istart8 &lt;= lastSlotUsed) &amp;&amp; (lastSlotUsed &lt; 15)) {</div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; istart8 = lastSlotUsed + 1;</div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">if</span>( iend8 &lt; istart8) {</div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; iend8 = istart8;</div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; }</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; lastSlotUsed = iend8;</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; fill_gradient_RGB( &amp;(entries[0]), istart8, rgbstart, iend8, rgbend);</div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; indexstart = indexend;</div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; rgbstart = rgbend;</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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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"> 822</span>&#160;};</div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;</div>
-<div class="line"><a name="l00824"></a><span class="lineno"><a class="line" href="class_c_r_g_b_palette256.html"> 824</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="l00825"></a><span class="lineno"> 825</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> entries[256];</div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>() {};</div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</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="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; 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="l00830"></a><span class="lineno"> 830</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="l00831"></a><span class="lineno"> 831</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="l00832"></a><span class="lineno"> 832</span>&#160; {</div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</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="l00834"></a><span class="lineno"> 834</span>&#160; c08,c09,c10,c11,c12,c13,c14,c15);</div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; *<span class="keyword">this</span> = p16;</div>
-<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; };</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>( <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; }</div>
-<div class="line"><a name="l00842"></a><span class="lineno"> 842</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="l00843"></a><span class="lineno"> 843</span>&#160; {</div>
-<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
-<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; }</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; <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="l00849"></a><span class="lineno"> 849</span>&#160; {</div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
-<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
-<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; }</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; <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="l00855"></a><span class="lineno"> 855</span>&#160; {</div>
-<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
-<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; }</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>( <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; }</div>
-<div class="line"><a name="l00866"></a><span class="lineno"> 866</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="l00867"></a><span class="lineno"> 867</span>&#160; {</div>
-<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</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; <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="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">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; }</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; <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="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">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></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> *<span class="keyword">this</span>;</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> TProgmemRGBPalette16&amp; rhs)</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; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; entries[i] = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; }</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>&amp; operator=( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</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; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; entries[i] = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; }</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; }</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; <span class="keywordtype">bool</span> operator==( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> rhs)</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; <span class="keyword">const</span> uint8_t* p = (<span class="keyword">const</span> uint8_t*)(&amp;(this-&gt;entries[0]));</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="classq.html">q</a> = (<span class="keyword">const</span> uint8_t*)(&amp;(rhs.entries[0]));</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">if</span>( p == q) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; (<span class="keyword">sizeof</span>( entries)); i++) {</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordflow">if</span>( *p != *q) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; p++;</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; q++;</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; }</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; }</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="keywordtype">bool</span> operator!=( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> rhs)</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="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; }</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; <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="l00703"></a><span class="lineno"> 703</span>&#160; {</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keywordflow">return</span> entries[x];</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> <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="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> entries[x];</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="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="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> entries[(uint8_t)x];</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; <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="l00716"></a><span class="lineno"> 716</span>&#160; {</div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; }</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; <span class="keyword">operator</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>*()</div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; {</div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</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;</div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</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="l00726"></a><span class="lineno"> 726</span>&#160; {</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</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; <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="l00730"></a><span class="lineno"> 730</span>&#160; {</div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</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="l00732"></a><span class="lineno"> 732</span>&#160; }</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</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="l00734"></a><span class="lineno"> 734</span>&#160; {</div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</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="l00736"></a><span class="lineno"> 736</span>&#160; }</div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</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="l00738"></a><span class="lineno"> 738</span>&#160; {</div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</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="l00740"></a><span class="lineno"> 740</span>&#160; }</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; <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="l00743"></a><span class="lineno"> 743</span>&#160; {</div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</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; <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="l00747"></a><span class="lineno"> 747</span>&#160; {</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 16, c1, c2);</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; }</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</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="l00751"></a><span class="lineno"> 751</span>&#160; {</div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 16, c1, c2, c3);</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="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="l00755"></a><span class="lineno"> 755</span>&#160; {</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 16, c1, c2, c3, c4);</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; }</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;</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="comment">// Gradient palettes are loaded into CRGB16Palettes in such a way</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="comment">// that, if possible, every color represented in the gradient palette</span></div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="comment">// is also represented in the CRGBPalette16.</span></div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="comment">// For example, consider a gradient palette that is all black except</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</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="l00765"></a><span class="lineno"> 765</span>&#160; <span class="comment">// 0, 0,0,0</span></div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="comment">// 124, 0,0,0</span></div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="comment">// 125, 255,0,0 // one 1/256th-palette-wide red stripe</span></div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="comment">// 126, 0,0,0</span></div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="comment">// 255, 0,0,0</span></div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</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="l00771"></a><span class="lineno"> 771</span>&#160; <span class="comment">// might accidentally completely eliminate the red spike, rendering the</span></div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="comment">// palette completely black.</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="comment">// However, the conversions provided here would attempt to include a</span></div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</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="l00775"></a><span class="lineno"> 775</span>&#160; <span class="comment">// So in this case, the resulting CRGBPalette16 palette would have a red</span></div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</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="l00777"></a><span class="lineno"> 777</span>&#160; <span class="comment">// narrowest possible in a CRGBPalette16.</span></div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="comment">// This means that the relative width of stripes in a CRGBPalette16</span></div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="comment">// will be, by definition, different from the widths in the gradient</span></div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</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="l00781"></a><span class="lineno"> 781</span>&#160; <span class="comment">// the exact stripe widths at the expense of dropping some colors.</span></div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( TProgmemRGBGradientPalette_bytes progpal )</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; *<span class="keyword">this</span> = progpal;</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; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; operator=( TProgmemRGBGradientPalette_bytes progpal )</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="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="l00789"></a><span class="lineno"> 789</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="l00790"></a><span class="lineno"> 790</span>&#160;</div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="comment">// Count entries</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; uint8_t count = 0;</div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR(progent + count);</div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; count++;;</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; } <span class="keywordflow">while</span> ( u.index != 255);</div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; int8_t lastSlotUsed = -1;</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; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</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> rgbstart( u.r, u.g, u.b);</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; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; uint8_t istart8 = 0;</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; uint8_t iend8 = 0;</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; progent++;</div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</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="l00811"></a><span class="lineno"> 811</span>&#160; istart8 = indexstart / 16;</div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; iend8 = indexend / 16;</div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keywordflow">if</span>( count &lt; 16) {</div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">if</span>( (istart8 &lt;= lastSlotUsed) &amp;&amp; (lastSlotUsed &lt; 15)) {</div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; istart8 = lastSlotUsed + 1;</div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keywordflow">if</span>( iend8 &lt; istart8) {</div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; iend8 = istart8;</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"> 820</span>&#160; lastSlotUsed = iend8;</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; fill_gradient_RGB( &amp;(entries[0]), istart8, rgbstart, iend8, rgbend);</div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; rgbstart = rgbend;</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="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; }</div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</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="l00829"></a><span class="lineno"> 829</span>&#160; {</div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</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="l00831"></a><span class="lineno"> 831</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="l00832"></a><span class="lineno"> 832</span>&#160;</div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="comment">// Count entries</span></div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; uint8_t count = 0;</div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; u = *(ent + count);</div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; count++;;</div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; } <span class="keywordflow">while</span> ( u.index != 255);</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; int8_t lastSlotUsed = -1;</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;</div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; u = *ent;</div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</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="l00845"></a><span class="lineno"> 845</span>&#160;</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; uint8_t istart8 = 0;</div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; uint8_t iend8 = 0;</div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; ent++;</div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; u = *ent;</div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</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="l00854"></a><span class="lineno"> 854</span>&#160; istart8 = indexstart / 16;</div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; iend8 = indexend / 16;</div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="keywordflow">if</span>( count &lt; 16) {</div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <span class="keywordflow">if</span>( (istart8 &lt;= lastSlotUsed) &amp;&amp; (lastSlotUsed &lt; 15)) {</div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; istart8 = lastSlotUsed + 1;</div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <span class="keywordflow">if</span>( iend8 &lt; istart8) {</div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; iend8 = istart8;</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; }</div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; lastSlotUsed = iend8;</div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; }</div>
+<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; fill_gradient_RGB( &amp;(entries[0]), istart8, rgbstart, iend8, rgbend);</div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; rgbstart = rgbend;</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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; }</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_palette256.html">CRGBPalette256</a>( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
-<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; {</div>
-<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(rhs);</div>
-<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; *<span class="keyword">this</span> = p16;</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_palette256.html">CRGBPalette256</a>&amp; operator=( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</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; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(rhs);</div>
-<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; *<span class="keyword">this</span> = p16;</div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; }</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> <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="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; <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="l00872"></a><span class="lineno"> 872</span>&#160;};</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160;</div>
+<div class="line"><a name="l00874"></a><span class="lineno"><a class="line" href="class_c_r_g_b_palette256.html"> 874</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="l00875"></a><span class="lineno"> 875</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> entries[256];</div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>() {};</div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</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="l00879"></a><span class="lineno"> 879</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="l00880"></a><span class="lineno"> 880</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="l00881"></a><span class="lineno"> 881</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="l00882"></a><span class="lineno"> 882</span>&#160; {</div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</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="l00884"></a><span class="lineno"> 884</span>&#160; c08,c09,c10,c11,c12,c13,c14,c15);</div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; };</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; <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="l00889"></a><span class="lineno"> 889</span>&#160; {</div>
-<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; }</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> <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="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="l00892"></a><span class="lineno"> 892</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="l00893"></a><span class="lineno"> 893</span>&#160; {</div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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="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="l00898"></a><span class="lineno"> 898</span>&#160; {</div>
-<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
-<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; }</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="keyword">operator</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>*()</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; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
-<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; }</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)</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#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</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; <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="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">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></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; }</div>
+<div class="line"><a name="l00904"></a><span class="lineno"> 904</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="l00905"></a><span class="lineno"> 905</span>&#160; {</div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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)</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);</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)</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);</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="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="l00920"></a><span class="lineno"> 920</span>&#160; {</div>
-<div class="line"><a name="l00921"></a><span class="lineno"> 921</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="l00922"></a><span class="lineno"> 922</span>&#160; }</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)</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="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</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)</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);</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)</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);</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; <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="l00937"></a><span class="lineno"> 937</span>&#160; {</div>
-<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 256, c1, c2, c3, c4);</div>
-<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; }</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>( 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; *<span class="keyword">this</span> = 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="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; operator=( TProgmemRGBGradientPalette_bytes progpal )</div>
-<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; {</div>
-<div class="line"><a name="l00947"></a><span class="lineno"> 947</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="l00948"></a><span class="lineno"> 948</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="l00949"></a><span class="lineno"> 949</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
-<div class="line"><a name="l00950"></a><span class="lineno"> 950</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="l00951"></a><span class="lineno"> 951</span>&#160;</div>
-<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
-<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
-<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; progent++;</div>
-<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
-<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
-<div class="line"><a name="l00957"></a><span class="lineno"> 957</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="l00958"></a><span class="lineno"> 958</span>&#160; fill_gradient_RGB( &amp;(entries[0]), indexstart, rgbstart, indexend, rgbend);</div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; indexstart = indexend;</div>
-<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; rgbstart = rgbend;</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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160;</div>
+<div class="line"><a name="l00912"></a><span class="lineno"> 912</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="l00913"></a><span class="lineno"> 913</span>&#160; {</div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; }</div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</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="l00917"></a><span class="lineno"> 917</span>&#160; {</div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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> TProgmemRGBPalette16&amp; rhs)</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_palette16.html">CRGBPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; }</div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</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="l00928"></a><span class="lineno"> 928</span>&#160; {</div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; }</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; <span class="keywordtype">bool</span> operator==( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a> rhs)</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; <span class="keyword">const</span> uint8_t* p = (<span class="keyword">const</span> uint8_t*)(&amp;(this-&gt;entries[0]));</div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="classq.html">q</a> = (<span class="keyword">const</span> uint8_t*)(&amp;(rhs.entries[0]));</div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <span class="keywordflow">if</span>( p == q) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; (<span class="keyword">sizeof</span>( entries)); i++) {</div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordflow">if</span>( *p != *q) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; p++;</div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; q++;</div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; }</div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; }</div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; <span class="keywordtype">bool</span> operator!=( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a> rhs)</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="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</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; </div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</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="l00952"></a><span class="lineno"> 952</span>&#160; {</div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; }</div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</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="l00956"></a><span class="lineno"> 956</span>&#160; {</div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; }</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="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="l00961"></a><span class="lineno"> 961</span>&#160; {</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</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="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; loadDynamicGradientPalette( TDynamicRGBGradientPalette_bytes gpal )</div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</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="l00965"></a><span class="lineno"> 965</span>&#160; {</div>
-<div class="line"><a name="l00966"></a><span class="lineno"> 966</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="l00967"></a><span class="lineno"> 967</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="l00968"></a><span class="lineno"> 968</span>&#160; u = *ent;</div>
-<div class="line"><a name="l00969"></a><span class="lineno"> 969</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="l00970"></a><span class="lineno"> 970</span>&#160;</div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
-<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
-<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; ent++;</div>
-<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; u = *ent;</div>
-<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
-<div class="line"><a name="l00976"></a><span class="lineno"> 976</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="l00977"></a><span class="lineno"> 977</span>&#160; fill_gradient_RGB( &amp;(entries[0]), indexstart, rgbstart, indexend, rgbend);</div>
-<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; indexstart = indexend;</div>
-<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; rgbstart = rgbend;</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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</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;</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;<span class="keyword">typedef</span> <span class="keyword">enum</span> { NOBLEND=0, LINEARBLEND=1 } TBlendType;</div>
-<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;</div>
-<div class="line"><a name="l00990"></a><span class="lineno"> 990</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="l00991"></a><span class="lineno"> 991</span>&#160; uint8_t index,</div>
-<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; uint8_t brightness=255,</div>
-<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; TBlendType blendType=LINEARBLEND);</div>
-<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;</div>
-<div class="line"><a name="l00995"></a><span class="lineno"> 995</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="l00996"></a><span class="lineno"> 996</span>&#160; uint8_t index,</div>
-<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; uint8_t brightness=255,</div>
-<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; TBlendType blendType=LINEARBLEND);</div>
-<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;</div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</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="l01001"></a><span class="lineno"> 1001</span>&#160; uint8_t index,</div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; uint8_t brightness=255,</div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; TBlendType blendType=NOBLEND );</div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;</div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</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="l01006"></a><span class="lineno"> 1006</span>&#160; uint8_t index,</div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; uint8_t brightness=255,</div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; TBlendType blendType=LINEARBLEND);</div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</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="l01011"></a><span class="lineno"> 1011</span>&#160; uint8_t index,</div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; uint8_t brightness=255,</div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; TBlendType blendType=NOBLEND );</div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;</div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;</div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</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="l01017"></a><span class="lineno"> 1017</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> PALETTE&gt;</div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</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="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="keyword">const</span> PALETTE&amp; pal, uint8_t brightness, TBlendType blendType)</div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;{</div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; uint8_t colorIndex = startIndex;</div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; N; i++) {</div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; L[i] = ColorFromPalette( pal, colorIndex, brightness, blendType);</div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; colorIndex += incIndex;</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;}</div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;</div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> PALETTE&gt;</div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<span class="keywordtype">void</span> map_data_into_colors_through_palette(</div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; uint8_t *dataArray, uint16_t dataCount,</div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a>* targetColorArray,</div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; <span class="keyword">const</span> PALETTE&amp; pal,</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; uint8_t brightness=255,</div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; uint8_t opacity=255,</div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; TBlendType blendType=LINEARBLEND)</div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;{</div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; dataCount; i++) {</div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; uint8_t d = dataArray[i];</div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</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="l01040"></a><span class="lineno"> 1040</span>&#160; <span class="keywordflow">if</span>( opacity == 255 ) {</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; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; targetColorArray[i].nscale8( 256 - opacity);</div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; rgb.nscale8_video( opacity);</div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; targetColorArray[i] += rgb;</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;}</div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;</div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;<span class="comment">// nblendPaletteTowardPalette:</span></div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;<span class="comment">// Alter one palette by making it slightly more like</span></div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;<span class="comment">// a &#39;target palette&#39;, used for palette cross-fades.</span></div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</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="l01055"></a><span class="lineno"> 1055</span>&#160;<span class="comment">// of each entry in the current palette to the corresponding</span></div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;<span class="comment">// entry in the target palette and making small adjustments:</span></div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;<span class="comment">// If the Red channel is too low, it will be increased.</span></div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;<span class="comment">// If the Red channel is too high, it will be slightly reduced.</span></div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;<span class="comment">// ... and likewise for Green and Blue channels.</span></div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;<span class="comment">// Additionally, there are two significant visual improvements</span></div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;<span class="comment">// to this algorithm implemented here. First is this:</span></div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;<span class="comment">// When increasing a channel, it is stepped up by ONE.</span></div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="comment">// When decreasing a channel, it is stepped down by TWO.</span></div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;<span class="comment">// Due to the way the eye perceives light, and the way colors</span></div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;<span class="comment">// are represented in RGB, this produces a more uniform apparent</span></div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;<span class="comment">// brightness when cross-fading between most palette colors.</span></div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;<span class="comment">// The second visual tweak is limiting the number of changes</span></div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</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="l01071"></a><span class="lineno"> 1071</span>&#160;<span class="comment">// entries are changed at once, it can give a muddled appearance.</span></div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;<span class="comment">// However, if only a few palette entries are changed at once,</span></div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;<span class="comment">// you get a visually smoother transition: in the middle of the</span></div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;<span class="comment">// cross-fade your current palette will actually contain some</span></div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;<span class="comment">// colors from the old palette, a few blended colors, and some</span></div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;<span class="comment">// colors from the new palette.</span></div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;<span class="comment">// The maximum number of possible palette changes per call</span></div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;<span class="comment">// is 48 (sixteen color entries time three channels each).</span></div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;<span class="comment">// The default &#39;maximim number of changes&#39; here is 12, meaning</span></div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;<span class="comment">// that only approximately a quarter of the palette entries</span></div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;<span class="comment">// will be changed per call.</span></div>
-<div class="line"><a name="l01082"></a><span class="lineno"> 1082</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="l01083"></a><span class="lineno"> 1083</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; targetPalette,</div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; uint8_t maxChanges=24);</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;</div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</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="l01090"></a><span class="lineno"> 1090</span>&#160;<span class="comment">// of connected color gradients.</span></div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</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="l01092"></a><span class="lineno"> 1092</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="l01093"></a><span class="lineno"> 1093</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="l01094"></a><span class="lineno"> 1094</span>&#160;<span class="comment">// starting black point (at index 0), the red midpoint (at index 192),</span></div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;<span class="comment">// and the final white point (at index 255). It looks like this:</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">// index: 0 192 255</span></div>
-<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;<span class="comment">// |----------r-r-r-rrrrrrrrRrRrRrRrRRRR-|-RRWRWWRWWW-|</span></div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;<span class="comment">// color: (0,0,0) (255,0,0) (255,255,255)</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">// Here&#39;s how you&#39;d define that gradient palette:</span></div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;<span class="comment">// DEFINE_GRADIENT_PALETTE( black_to_red_to_white_p ) {</span></div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;<span class="comment">// 0, 0, 0, 0, /* at index 0, black(0,0,0) */</span></div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;<span class="comment">// 192, 255, 0, 0, /* at index 192, red(255,0,0) */</span></div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;<span class="comment">// 255, 255,255,255 /* at index 255, white(255,255,255) */</span></div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;<span class="comment">// };</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">// This format is designed for compact storage. The example palette here</span></div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;<span class="comment">// takes up just 12 bytes of PROGMEM (flash) storage, and zero bytes</span></div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;<span class="comment">// of SRAM when not currently in use.</span></div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;<span class="comment">// To use one of these gradient palettes, simply assign it into a</span></div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;<span class="comment">// CRGBPalette16 or a CRGBPalette256, like this:</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">// CRGBPalette16 pal = black_to_red_to_white_p;</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">// When the assignment is made, the gradients are expanded out into</span></div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="comment">// either 16 or 256 palette entries, depending on the kind of palette</span></div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;<span class="comment">// object they&#39;re assigned to.</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">// IMPORTANT NOTES &amp; CAVEATS:</span></div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01124"></a><span class="lineno"> 1124</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="l01125"></a><span class="lineno"> 1125</span>&#160;<span class="comment">// index 255 will result in program hangs or crashes.</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;<span class="comment">// - At this point, these gradient palette definitions MUST BE</span></div>
-<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;<span class="comment">// stored in PROGMEM on AVR-based Arduinos. If you use the</span></div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;<span class="comment">// DEFINE_GRADIENT_PALETTE macro, this is taken care of automatically.</span></div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;</div>
-<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;<span class="preprocessor">#define DEFINE_GRADIENT_PALETTE(X) \</span></div>
-<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;<span class="preprocessor"> extern const TProgmemRGBGradientPalette_byte X[] FL_PROGMEM =</span></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="preprocessor">#define DECLARE_GRADIENT_PALETTE(X) \</span></div>
-<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;<span class="preprocessor"> extern const TProgmemRGBGradientPalette_byte X[] FL_PROGMEM</span></div>
-<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;</div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;</div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;<span class="comment">// Functions to apply gamma adjustments, either:</span></div>
-<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;<span class="comment">// - a single gamma adjustment to a single scalar value,</span></div>
-<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;<span class="comment">// - a single gamma adjustment to each channel of a CRGB color, or</span></div>
-<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;<span class="comment">// - different gamma adjustments for each channel of a CRFB color.</span></div>
-<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;<span class="comment">// Note that the gamma is specified as a traditional floating point value</span></div>
-<div class="line"><a name="l01145"></a><span class="lineno"> 1145</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="l01146"></a><span class="lineno"> 1146</span>&#160;<span class="comment">// your innermost pixel loops, or in animations that are extremely</span></div>
-<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;<span class="comment">// low on program storage space. Nevertheless, if you need these</span></div>
-<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;<span class="comment">// functions, here they are.</span></div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;<span class="comment">// Furthermore, bear in mind that CRGB leds have only eight bits</span></div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;<span class="comment">// per channel of color resolution, and that very small, subtle shadings</span></div>
-<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;<span class="comment">// may not be visible.</span></div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;uint8_t applyGamma_video( uint8_t brightness, <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> 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="l01155"></a><span class="lineno"> 1155</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="l01156"></a><span class="lineno"> 1156</span>&#160;<span class="comment">// The &quot;n&quot; versions below modify their arguments in-place.</span></div>
-<div class="line"><a name="l01157"></a><span class="lineno"> 1157</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="l01158"></a><span class="lineno"> 1158</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="l01159"></a><span class="lineno"> 1159</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="l01160"></a><span class="lineno"> 1160</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="l01161"></a><span class="lineno"> 1161</span>&#160;</div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;</div>
-<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;FASTLED_NAMESPACE_END</div>
-<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;</div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; }</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="keyword">operator</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>*()</div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; {</div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; }</div>
+<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;</div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</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="l00975"></a><span class="lineno"> 975</span>&#160; {</div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; }</div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</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="l00979"></a><span class="lineno"> 979</span>&#160; {</div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</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="l00981"></a><span class="lineno"> 981</span>&#160; }</div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</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="l00983"></a><span class="lineno"> 983</span>&#160; {</div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</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="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="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="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="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2, c3, c4);</div>
+<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; }</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="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="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="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; }</div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</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="l00996"></a><span class="lineno"> 996</span>&#160; {</div>
+<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 256, c1, c2);</div>
+<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; }</div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</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="l01000"></a><span class="lineno"> 1000</span>&#160; {</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 256, c1, c2, c3);</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="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="l01004"></a><span class="lineno"> 1004</span>&#160; {</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 256, c1, c2, c3, c4);</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; }</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="class_c_r_g_b_palette256.html">CRGBPalette256</a>( TProgmemRGBGradientPalette_bytes progpal )</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; {</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; *<span class="keyword">this</span> = progpal;</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; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>&amp; operator=( TProgmemRGBGradientPalette_bytes progpal )</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; <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="l01015"></a><span class="lineno"> 1015</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="l01016"></a><span class="lineno"> 1016</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</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="l01018"></a><span class="lineno"> 1018</span>&#160;</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; progent++;</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</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="l01025"></a><span class="lineno"> 1025</span>&#160; fill_gradient_RGB( &amp;(entries[0]), indexstart, rgbstart, indexend, rgbend);</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; rgbstart = rgbend;</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; }</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; }</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</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="l01032"></a><span class="lineno"> 1032</span>&#160; {</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</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="l01034"></a><span class="lineno"> 1034</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="l01035"></a><span class="lineno"> 1035</span>&#160; u = *ent;</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</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="l01037"></a><span class="lineno"> 1037</span>&#160;</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; ent++;</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; u = *ent;</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</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="l01044"></a><span class="lineno"> 1044</span>&#160; fill_gradient_RGB( &amp;(entries[0]), indexstart, rgbstart, indexend, rgbend);</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; rgbstart = rgbend;</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="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; }</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;};</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> { NOBLEND=0, LINEARBLEND=1 } TBlendType;</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</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="l01058"></a><span class="lineno"> 1058</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</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="l01063"></a><span class="lineno"> 1063</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</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="l01068"></a><span class="lineno"> 1068</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; TBlendType blendType=NOBLEND );</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</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="l01073"></a><span class="lineno"> 1073</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</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="l01078"></a><span class="lineno"> 1078</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; TBlendType blendType=NOBLEND );</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="l01083"></a><span class="lineno"> 1083</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="l01084"></a><span class="lineno"> 1084</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> PALETTE&gt;</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</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="l01086"></a><span class="lineno"> 1086</span>&#160; <span class="keyword">const</span> PALETTE&amp; pal, uint8_t brightness, TBlendType blendType)</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;{</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; uint8_t colorIndex = startIndex;</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; N; i++) {</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; L[i] = ColorFromPalette( pal, colorIndex, brightness, blendType);</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; colorIndex += incIndex;</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; }</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;}</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> PALETTE&gt;</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;<span class="keywordtype">void</span> map_data_into_colors_through_palette(</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; uint8_t *dataArray, uint16_t dataCount,</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a>* targetColorArray,</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; <span class="keyword">const</span> PALETTE&amp; pal,</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; uint8_t opacity=255,</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; TBlendType blendType=LINEARBLEND)</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;{</div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; dataCount; i++) {</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; uint8_t d = dataArray[i];</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</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="l01107"></a><span class="lineno"> 1107</span>&#160; <span class="keywordflow">if</span>( opacity == 255 ) {</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; targetColorArray[i] = rgb;</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; targetColorArray[i].nscale8( 256 - opacity);</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; rgb.nscale8_video( opacity);</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; targetColorArray[i] += rgb;</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; }</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; }</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;}</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;<span class="comment">// nblendPaletteTowardPalette:</span></div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;<span class="comment">// Alter one palette by making it slightly more like</span></div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="comment">// a &#39;target palette&#39;, used for palette cross-fades.</span></div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</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="l01122"></a><span class="lineno"> 1122</span>&#160;<span class="comment">// of each entry in the current palette to the corresponding</span></div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;<span class="comment">// entry in the target palette and making small adjustments:</span></div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;<span class="comment">// If the Red channel is too low, it will be increased.</span></div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;<span class="comment">// If the Red channel is too high, it will be slightly reduced.</span></div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;<span class="comment">// ... and likewise for Green and Blue channels.</span></div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;<span class="comment">// Additionally, there are two significant visual improvements</span></div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;<span class="comment">// to this algorithm implemented here. First is this:</span></div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;<span class="comment">// When increasing a channel, it is stepped up by ONE.</span></div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;<span class="comment">// When decreasing a channel, it is stepped down by TWO.</span></div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;<span class="comment">// Due to the way the eye perceives light, and the way colors</span></div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;<span class="comment">// are represented in RGB, this produces a more uniform apparent</span></div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;<span class="comment">// brightness when cross-fading between most palette colors.</span></div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;<span class="comment">// The second visual tweak is limiting the number of changes</span></div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</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="l01138"></a><span class="lineno"> 1138</span>&#160;<span class="comment">// entries are changed at once, it can give a muddled appearance.</span></div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;<span class="comment">// However, if only a few palette entries are changed at once,</span></div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;<span class="comment">// you get a visually smoother transition: in the middle of the</span></div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;<span class="comment">// cross-fade your current palette will actually contain some</span></div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;<span class="comment">// colors from the old palette, a few blended colors, and some</span></div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;<span class="comment">// colors from the new palette.</span></div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;<span class="comment">// The maximum number of possible palette changes per call</span></div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;<span class="comment">// is 48 (sixteen color entries time three channels each).</span></div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;<span class="comment">// The default &#39;maximim number of changes&#39; here is 12, meaning</span></div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;<span class="comment">// that only approximately a quarter of the palette entries</span></div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;<span class="comment">// will be changed per call.</span></div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</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="l01150"></a><span class="lineno"> 1150</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; targetPalette,</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; uint8_t maxChanges=24);</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</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="l01157"></a><span class="lineno"> 1157</span>&#160;<span class="comment">// of connected color gradients.</span></div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</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="l01159"></a><span class="lineno"> 1159</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="l01160"></a><span class="lineno"> 1160</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="l01161"></a><span class="lineno"> 1161</span>&#160;<span class="comment">// starting black point (at index 0), the red midpoint (at index 192),</span></div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;<span class="comment">// and the final white point (at index 255). It looks like this:</span></div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;<span class="comment">// index: 0 192 255</span></div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;<span class="comment">// |----------r-r-r-rrrrrrrrRrRrRrRrRRRR-|-RRWRWWRWWW-|</span></div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;<span class="comment">// color: (0,0,0) (255,0,0) (255,255,255)</span></div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;<span class="comment">// Here&#39;s how you&#39;d define that gradient palette:</span></div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;<span class="comment">// DEFINE_GRADIENT_PALETTE( black_to_red_to_white_p ) {</span></div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;<span class="comment">// 0, 0, 0, 0, /* at index 0, black(0,0,0) */</span></div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;<span class="comment">// 192, 255, 0, 0, /* at index 192, red(255,0,0) */</span></div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;<span class="comment">// 255, 255,255,255 /* at index 255, white(255,255,255) */</span></div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;<span class="comment">// };</span></div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;<span class="comment">// This format is designed for compact storage. The example palette here</span></div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;<span class="comment">// takes up just 12 bytes of PROGMEM (flash) storage, and zero bytes</span></div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;<span class="comment">// of SRAM when not currently in use.</span></div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;<span class="comment">// To use one of these gradient palettes, simply assign it into a</span></div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;<span class="comment">// CRGBPalette16 or a CRGBPalette256, like this:</span></div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;<span class="comment">// CRGBPalette16 pal = black_to_red_to_white_p;</span></div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;<span class="comment">// When the assignment is made, the gradients are expanded out into</span></div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;<span class="comment">// either 16 or 256 palette entries, depending on the kind of palette</span></div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;<span class="comment">// object they&#39;re assigned to.</span></div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;<span class="comment">// IMPORTANT NOTES &amp; CAVEATS:</span></div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</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="l01192"></a><span class="lineno"> 1192</span>&#160;<span class="comment">// index 255 will result in program hangs or crashes.</span></div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;<span class="comment">// - At this point, these gradient palette definitions MUST BE</span></div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;<span class="comment">// stored in PROGMEM on AVR-based Arduinos. If you use the</span></div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;<span class="comment">// DEFINE_GRADIENT_PALETTE macro, this is taken care of automatically.</span></div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;<span class="preprocessor">#define DEFINE_GRADIENT_PALETTE(X) \</span></div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;<span class="preprocessor"> extern const TProgmemRGBGradientPalette_byte X[] FL_PROGMEM =</span></div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;<span class="preprocessor">#define DECLARE_GRADIENT_PALETTE(X) \</span></div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;<span class="preprocessor"> extern const TProgmemRGBGradientPalette_byte X[] FL_PROGMEM</span></div>
+<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;<span class="comment">// Functions to apply gamma adjustments, either:</span></div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;<span class="comment">// - a single gamma adjustment to a single scalar value,</span></div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;<span class="comment">// - a single gamma adjustment to each channel of a CRGB color, or</span></div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;<span class="comment">// - different gamma adjustments for each channel of a CRFB color.</span></div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;<span class="comment">// Note that the gamma is specified as a traditional floating point value</span></div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</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="l01213"></a><span class="lineno"> 1213</span>&#160;<span class="comment">// your innermost pixel loops, or in animations that are extremely</span></div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;<span class="comment">// low on program storage space. Nevertheless, if you need these</span></div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;<span class="comment">// functions, here they are.</span></div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;<span class="comment">// Furthermore, bear in mind that CRGB leds have only eight bits</span></div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;<span class="comment">// per channel of color resolution, and that very small, subtle shadings</span></div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;<span class="comment">// may not be visible.</span></div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;uint8_t applyGamma_video( uint8_t brightness, <span class="keywordtype">float</span> gamma);</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</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="l01222"></a><span class="lineno"> 1222</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="l01223"></a><span class="lineno"> 1223</span>&#160;<span class="comment">// The &quot;n&quot; versions below modify their arguments in-place.</span></div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</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="l01225"></a><span class="lineno"> 1225</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="l01226"></a><span class="lineno"> 1226</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="l01227"></a><span class="lineno"> 1227</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="l01228"></a><span class="lineno"> 1228</span>&#160;</div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;</div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</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:512</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:599</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:528</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:632</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:93</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:425</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:824</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:424</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:874</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:85</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="classq_html"><div class="ttname"><a href="classq.html">q</a></div><div class="ttdoc">Template class for represneting fractional ints. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:743</div></div>
<div class="ttc" id="fastled__progmem_8h_html"><div class="ttname"><a href="fastled__progmem_8h.html">fastled_progmem.h</a></div><div class="ttdoc">wrapper definitions to allow seamless use of PROGMEM in environmens that have it </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:404</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:46 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10:35 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.html b/docs/3.1/controller_8h.html
index 6cc3bf5e..2d805ddd 100644
--- a/docs/3.1/controller_8h.html
+++ b/docs/3.1/controller_8h.html
@@ -118,7 +118,7 @@ typedef uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>EDitherMod
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 c4553305..3fcf8856 100644
--- a/docs/3.1/controller_8h_source.html
+++ b/docs/3.1/controller_8h_source.html
@@ -184,7 +184,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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; }</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08"> 127</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">size</a>() { <span class="keywordflow">return</span> m_nLeds; }</div>
+<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e"> 127</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">size</a>() { <span class="keywordflow">return</span> m_nLeds; }</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399"> 130</a></span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a>* <a class="code" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">leds</a>() { <span class="keywordflow">return</span> m_Data; }</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
@@ -202,465 +202,468 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d"> 152</a></span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> <a class="code" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a>() { <span class="keywordflow">return</span> m_ColorTemperature; }</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb"> 155</a></span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> <a class="code" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(uint8_t scale) {</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor">#if defined(NO_CORRECTION) &amp;&amp; (NO_CORRECTION==1)</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>(scale,scale,scale);</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> adj(0,0,0);</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="keywordflow">if</span>(scale &gt; 0) {</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; 3; i++) {</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; uint8_t cc = m_ColorCorrection.raw[i];</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; uint8_t ct = m_ColorTemperature.raw[i];</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">if</span>(cc &gt; 0 &amp;&amp; ct &gt; 0) {</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; uint32_t work = (((uint32_t)cc)+1) * (((uint32_t)ct)+1) * scale;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; work /= 0x10000L;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; adj.raw[i] = work &amp; 0xFF;</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"> 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;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> adj;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> computeAdjustment(scale, m_ColorCorrection, m_ColorTemperature);</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;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">static</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> computeAdjustment(uint8_t scale, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; colorCorrection, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; colorTemperature) {</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="preprocessor"> #if defined(NO_CORRECTION) &amp;&amp; (NO_CORRECTION==1)</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>(scale,scale,scale);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor"> #else</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> adj(0,0,0);</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; <span class="keywordflow">if</span>(scale &gt; 0) {</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; 3; i++) {</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; uint8_t cc = colorCorrection.raw[i];</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; uint8_t ct = colorTemperature.raw[i];</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">if</span>(cc &gt; 0 &amp;&amp; ct &gt; 0) {</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; uint32_t work = (((uint32_t)cc)+1) * (((uint32_t)ct)+1) * scale;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; work /= 0x10000L;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; adj.raw[i] = work &amp; 0xFF;</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="keyword">virtual</span> uint16_t getMaxRefreshRate()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 0; }</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;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="keyword">template</span>&lt;EOrder RGB_ORDER&gt;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html"> 184</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_pixel_controller.html">PixelController</a> {</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">const</span> uint8_t *mData;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordtype">int</span> mLen;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; uint8_t d[3];</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; uint8_t e[3];</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> mScale;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; uint8_t mAdvance;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71"> 193</a></span>&#160; <a class="code" href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71">PixelController</a>(<span class="keyword">const</span> <a class="code" href="struct_pixel_controller.html">PixelController</a> &amp; other) {</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; d[0] = other.d[0];</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; d[1] = other.d[1];</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; d[2] = other.d[2];</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; e[0] = other.e[0];</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; e[1] = other.e[1];</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; e[2] = other.e[2];</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; mData = other.mData;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; mScale = other.mScale;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; mAdvance = other.mAdvance;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; mLen = other.mLen;</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;</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#a81403c8810658d3c41cb210703bbfc00"> 215</a></span>&#160; <a class="code" href="struct_pixel_controller.html#a81403c8810658d3c41cb210703bbfc00">PixelController</a>(<span class="keyword">const</span> uint8_t *d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER, <span class="keywordtype">bool</span> advance=<span class="keyword">true</span>, uint8_t skip=0) : mData(d), mLen(len), mScale(s) {</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">enable_dithering</a>(dither);</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; mData += skip;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; mAdvance = (advance) ? 3+skip : 0;</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;</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71">PixelController</a>(<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER) : mData((const uint8_t*)d), mLen(len), mScale(s) {</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">enable_dithering</a>(dither);</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; mAdvance = 3;</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; <a class="code" href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71">PixelController</a>(<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp;d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER) : mData((const uint8_t*)&amp;d), mLen(len), mScale(s) {</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">enable_dithering</a>(dither);</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; mAdvance = 0;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71">PixelController</a>(<span class="keyword">const</span> CARGB &amp;d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER) : mData((const uint8_t*)&amp;d), mLen(len), mScale(s) {</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">enable_dithering</a>(dither);</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// skip the A in CARGB</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; mData += 1;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; mAdvance = 0;</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; <a class="code" href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71">PixelController</a>(<span class="keyword">const</span> CARGB *d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER) : mData((const uint8_t*)d), mLen(len), mScale(s) {</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">enable_dithering</a>(dither);</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">// skip the A in CARGB</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; mData += 1;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; mAdvance = 4;</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
-<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#accb48b27c47c742a8b13f97ae1d82d32"> 249</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_pixel_controller.html#accb48b27c47c742a8b13f97ae1d82d32">init_binary_dithering</a>() {</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor">#if !defined(NO_DITHERING) || (NO_DITHERING != 1)</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="comment">// Set &#39;virtual bits&#39; of dithering to the highest level</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="comment">// that is not likely to cause excessive flickering at</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="comment">// low brightness levels + low update rates.</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="comment">// These pre-set values are a little ambitious, since</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">// a 400Hz update rate for WS2811-family LEDs is only</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="comment">// possible with 85 pixels or fewer.</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">// Once we have a &#39;number of milliseconds since last update&#39;</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="comment">// value available here, we can quickly calculate the correct</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// number of &#39;virtual bits&#39; on the fly with a couple of &#39;if&#39;</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="comment">// statements -- no division required. At this point,</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// the division is done at compile time, so there&#39;s no runtime</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="comment">// cost, but the values are still hard-coded.</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor">#define MAX_LIKELY_UPDATE_RATE_HZ 400</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#define MIN_ACCEPTABLE_DITHER_RATE_HZ 50</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor">#define UPDATES_PER_FULL_DITHER_CYCLE (MAX_LIKELY_UPDATE_RATE_HZ / MIN_ACCEPTABLE_DITHER_RATE_HZ)</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor">#define RECOMMENDED_VIRTUAL_BITS ((UPDATES_PER_FULL_DITHER_CYCLE&gt;1) + \</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;2) + \</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;4) + \</span></div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;8) + \</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;16) + \</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;32) + \</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;64) + \</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;128) )</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#define VIRTUAL_BITS RECOMMENDED_VIRTUAL_BITS</span></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">// R is the digther signal &#39;counter&#39;.</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">static</span> byte R = 0;</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; R++;</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; <span class="comment">// R is wrapped around at 2^ditherBits,</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// so if ditherBits is 2, R will cycle through (0,1,2,3)</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; byte ditherBits = VIRTUAL_BITS;</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; R &amp;= (0x01 &lt;&lt; ditherBits) - 1;</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">// Q is the &quot;unscaled dither signal&quot; itself.</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="comment">// It&#39;s initialized to the reversed bits of R.</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="comment">// If &#39;ditherBits&#39; is 2, Q here will cycle through (0,128,64,192)</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; byte Q = 0;</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; <span class="comment">// Reverse bits in a byte</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; <span class="keywordflow">if</span>(R &amp; 0x01) { Q |= 0x80; }</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x02) { Q |= 0x40; }</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x04) { Q |= 0x20; }</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x08) { Q |= 0x10; }</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x10) { Q |= 0x08; }</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x20) { Q |= 0x04; }</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x40) { Q |= 0x02; }</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x80) { Q |= 0x01; }</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">// Now we adjust Q to fall in the center of each range,</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">// instead of at the start of the range.</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="comment">// If ditherBits is 2, Q will be (0, 128, 64, 192) at first,</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="comment">// and this adjustment makes it (31, 159, 95, 223).</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span>( ditherBits &lt; 8) {</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; Q += 0x01 &lt;&lt; (7 - ditherBits);</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;</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="comment">// D and E form the &quot;scaled dither signal&quot;</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="comment">// which is added to pixel values to affect the</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="comment">// actual dithering.</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="comment">// Setup the initial D and E values</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 3; i++) {</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; byte s = mScale.raw[i];</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; e[i] = s ? (256/s) + 1 : 0;</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; d[i] = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(Q, e[i]);</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">if</span>(e[i]) e[i]--;</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;<span class="preprocessor">#endif</span></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="l00326"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b"> 326</a></span>&#160; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline <span class="keywordtype">bool</span> has(<span class="keywordtype">int</span> n) {</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">return</span> mLen &gt;= n;</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;</div>
-<div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3"> 331</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">enable_dithering</a>(EDitherMode dither) {</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">switch</span>(dither) {</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">case</span> BINARY_DITHER: <a class="code" href="struct_pixel_controller.html#accb48b27c47c742a8b13f97ae1d82d32">init_binary_dithering</a>(); <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">default</span>: d[0]=d[1]=d[2]=e[0]=e[1]=e[2]=0; <span class="keywordflow">break</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;</div>
-<div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#afbe76a814e6bec02854dd4df167567b4"> 339</a></span>&#160; <a class="code" href="struct_pixel_controller.html#afbe76a814e6bec02854dd4df167567b4">__attribute__</a>((always_inline)) inline <span class="keywordtype">int</span> advanceBy() { <span class="keywordflow">return</span> mAdvance; }</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> adj;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor"> #endif</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"> 180</span>&#160; <span class="keyword">virtual</span> uint16_t getMaxRefreshRate()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 0; }</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;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keyword">template</span>&lt;EOrder RGB_ORDER&gt;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html"> 187</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_pixel_controller.html">PixelController</a> {</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">const</span> uint8_t *mData;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordtype">int</span> mLen;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; uint8_t d[3];</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; uint8_t e[3];</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> mScale;</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; uint8_t mAdvance;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71"> 196</a></span>&#160; <a class="code" href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71">PixelController</a>(<span class="keyword">const</span> <a class="code" href="struct_pixel_controller.html">PixelController</a> &amp; other) {</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; d[0] = other.d[0];</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; d[1] = other.d[1];</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; d[2] = other.d[2];</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; e[0] = other.e[0];</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; e[1] = other.e[1];</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; e[2] = other.e[2];</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; mData = other.mData;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; mScale = other.mScale;</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; mAdvance = other.mAdvance;</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; mLen = other.mLen;</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;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#a81403c8810658d3c41cb210703bbfc00"> 218</a></span>&#160; <a class="code" href="struct_pixel_controller.html#a81403c8810658d3c41cb210703bbfc00">PixelController</a>(<span class="keyword">const</span> uint8_t *d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER, <span class="keywordtype">bool</span> advance=<span class="keyword">true</span>, uint8_t skip=0) : mData(d), mLen(len), mScale(s) {</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">enable_dithering</a>(dither);</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; mData += skip;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; mAdvance = (advance) ? 3+skip : 0;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</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; <a class="code" href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71">PixelController</a>(<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER) : mData((const uint8_t*)d), mLen(len), mScale(s) {</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">enable_dithering</a>(dither);</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; mAdvance = 3;</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;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71">PixelController</a>(<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp;d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER) : mData((const uint8_t*)&amp;d), mLen(len), mScale(s) {</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">enable_dithering</a>(dither);</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; mAdvance = 0;</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="preprocessor">#ifdef SUPPORT_ARGB</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71">PixelController</a>(<span class="keyword">const</span> CARGB &amp;d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER) : mData((const uint8_t*)&amp;d), mLen(len), mScale(s) {</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">enable_dithering</a>(dither);</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="comment">// skip the A in CARGB</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; mData += 1;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; mAdvance = 0;</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; <a class="code" href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71">PixelController</a>(<span class="keyword">const</span> CARGB *d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER) : mData((const uint8_t*)d), mLen(len), mScale(s) {</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">enable_dithering</a>(dither);</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="comment">// skip the A in CARGB</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; mData += 1;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; mAdvance = 4;</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="preprocessor">#endif</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#accb48b27c47c742a8b13f97ae1d82d32"> 252</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_pixel_controller.html#accb48b27c47c742a8b13f97ae1d82d32">init_binary_dithering</a>() {</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor">#if !defined(NO_DITHERING) || (NO_DITHERING != 1)</span></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">// Set &#39;virtual bits&#39; of dithering to the highest level</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">// that is not likely to cause excessive flickering at</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="comment">// low brightness levels + low update rates.</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">// These pre-set values are a little ambitious, since</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="comment">// a 400Hz update rate for WS2811-family LEDs is only</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// possible with 85 pixels or fewer.</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="comment">// Once we have a &#39;number of milliseconds since last update&#39;</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// value available here, we can quickly calculate the correct</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="comment">// number of &#39;virtual bits&#39; on the fly with a couple of &#39;if&#39;</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="comment">// statements -- no division required. At this point,</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="comment">// the division is done at compile time, so there&#39;s no runtime</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="comment">// cost, but the values are still hard-coded.</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor">#define MAX_LIKELY_UPDATE_RATE_HZ 400</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#define MIN_ACCEPTABLE_DITHER_RATE_HZ 50</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor">#define UPDATES_PER_FULL_DITHER_CYCLE (MAX_LIKELY_UPDATE_RATE_HZ / MIN_ACCEPTABLE_DITHER_RATE_HZ)</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor">#define RECOMMENDED_VIRTUAL_BITS ((UPDATES_PER_FULL_DITHER_CYCLE&gt;1) + \</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;2) + \</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;4) + \</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;8) + \</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;16) + \</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;32) + \</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;64) + \</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;128) )</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor">#define VIRTUAL_BITS RECOMMENDED_VIRTUAL_BITS</span></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; <span class="comment">// R is the digther signal &#39;counter&#39;.</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">static</span> byte R = 0;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; R++;</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; <span class="comment">// R is wrapped around at 2^ditherBits,</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// so if ditherBits is 2, R will cycle through (0,1,2,3)</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; byte ditherBits = VIRTUAL_BITS;</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; R &amp;= (0x01 &lt;&lt; ditherBits) - 1;</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; <span class="comment">// Q is the &quot;unscaled dither signal&quot; itself.</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="comment">// It&#39;s initialized to the reversed bits of R.</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="comment">// If &#39;ditherBits&#39; is 2, Q here will cycle through (0,128,64,192)</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; byte Q = 0;</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">// Reverse bits in a byte</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; {</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x01) { Q |= 0x80; }</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x02) { Q |= 0x40; }</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x04) { Q |= 0x20; }</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x08) { Q |= 0x10; }</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x10) { Q |= 0x08; }</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x20) { Q |= 0x04; }</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x40) { Q |= 0x02; }</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x80) { Q |= 0x01; }</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="comment">// Now we adjust Q to fall in the center of each range,</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="comment">// instead of at the start of the range.</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="comment">// If ditherBits is 2, Q will be (0, 128, 64, 192) at first,</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// and this adjustment makes it (31, 159, 95, 223).</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">if</span>( ditherBits &lt; 8) {</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; Q += 0x01 &lt;&lt; (7 - ditherBits);</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;</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="comment">// D and E form the &quot;scaled dither signal&quot;</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="comment">// which is added to pixel values to affect the</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="comment">// actual dithering.</span></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">// Setup the initial D and E values</span></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; 3; i++) {</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; byte s = mScale.raw[i];</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; e[i] = s ? (256/s) + 1 : 0;</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; d[i] = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(Q, e[i]);</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">if</span>(e[i]) e[i]--;</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="preprocessor">#endif</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b"> 329</a></span>&#160; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline <span class="keywordtype">bool</span> has(<span class="keywordtype">int</span> n) {</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">return</span> mLen &gt;= n;</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"><a class="line" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3"> 334</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">enable_dithering</a>(EDitherMode dither) {</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">switch</span>(dither) {</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">case</span> BINARY_DITHER: <a class="code" href="struct_pixel_controller.html#accb48b27c47c742a8b13f97ae1d82d32">init_binary_dithering</a>(); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">default</span>: d[0]=d[1]=d[2]=e[0]=e[1]=e[2]=0; <span class="keywordflow">break</span>;</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; }</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div>
-<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#a404558c7da7f3f6fae768bc45af9dc03"> 342</a></span>&#160; <a class="code" href="struct_pixel_controller.html#a404558c7da7f3f6fae768bc45af9dc03">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> advanceData() { mData += mAdvance; mLen--;}</div>
+<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#afbe76a814e6bec02854dd4df167567b4"> 342</a></span>&#160; <a class="code" href="struct_pixel_controller.html#afbe76a814e6bec02854dd4df167567b4">__attribute__</a>((always_inline)) inline <span class="keywordtype">int</span> advanceBy() { <span class="keywordflow">return</span> mAdvance; }</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
-<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#a900493d7e9e345d0cb6e602186151e73"> 345</a></span>&#160; <a class="code" href="struct_pixel_controller.html#a900493d7e9e345d0cb6e602186151e73">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> stepDithering() {</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="comment">// IF UPDATING HERE, BE SURE TO UPDATE THE ASM VERSION IN</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="comment">// clockless_trinket.h!</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; d[0] = e[0] - d[0];</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; d[1] = e[1] - d[1];</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; d[2] = e[2] - d[2];</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="l00354"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#a9b0bc80097821046dbda7bbbf38dd7df"> 354</a></span>&#160; <a class="code" href="struct_pixel_controller.html#a9b0bc80097821046dbda7bbbf38dd7df">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> preStepFirstByteDithering() {</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; d[RO(0)] = e[RO(0)] - d[RO(0)];</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</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="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline static uint8_t loadByte(<a class="code" href="struct_pixel_controller.html">PixelController</a> &amp; pc) { <span class="keywordflow">return</span> pc.mData[RO(SLOT)]; }</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline static uint8_t dither(<a class="code" href="struct_pixel_controller.html">PixelController</a> &amp; pc, uint8_t b) { <span class="keywordflow">return</span> b ? <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>(b, pc.d[RO(SLOT)]) : 0; }</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline static uint8_t scale(<a class="code" href="struct_pixel_controller.html">PixelController</a> &amp; pc, uint8_t b) { <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(b, pc.mScale.raw[RO(SLOT)]); }</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"> 362</span>&#160; <span class="comment">// composite shortcut functions for loading, dithering, and scaling</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline static uint8_t loadAndScale(<a class="code" href="struct_pixel_controller.html">PixelController</a> &amp; pc) { <span class="keywordflow">return</span> scale&lt;SLOT&gt;(pc, pc.dither&lt;SLOT&gt;(pc, pc.loadByte&lt;SLOT&gt;(pc))); }</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline static uint8_t advanceAndLoadAndScale(<a class="code" href="struct_pixel_controller.html">PixelController</a> &amp; pc) { pc.advanceData(); <span class="keywordflow">return</span> pc.loadAndScale&lt;SLOT&gt;(pc); }</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"> 366</span>&#160; <span class="comment">// Helper functions to get around gcc stupidities</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline uint8_t loadAndScale0() { <span class="keywordflow">return</span> loadAndScale&lt;0&gt;(*this); }</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline uint8_t loadAndScale1() { <span class="keywordflow">return</span> loadAndScale&lt;1&gt;(*this); }</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline uint8_t loadAndScale2() { <span class="keywordflow">return</span> loadAndScale&lt;2&gt;(*this); }</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline uint8_t advanceAndLoadAndScale0() { <span class="keywordflow">return</span> advanceAndLoadAndScale&lt;0&gt;(*this); }</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline uint8_t stepAdvanceAndLoadAndScale0() { stepDithering(); <span class="keywordflow">return</span> advanceAndLoadAndScale&lt;0&gt;(*this); }</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;</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="comment">// Pixel controller class. This is the class that we use to centralize pixel access in a block of data, including</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="comment">// support for things like RGB reordering, scaling, dithering, skipping (for ARGB data), and eventually, we will</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="comment">// centralize 8/12/16 conversions here as well.</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> LANES,<span class="keywordtype">int</span> MASK, EOrder RGB_ORDER&gt;</div>
-<div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="struct_multi_pixel_controller.html"> 378</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> {</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">const</span> uint8_t *mData;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordtype">int</span> mLen;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; uint8_t d[3];</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; uint8_t e[3];</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> mScale;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; int8_t mAdvance;</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordtype">int</span> mOffsets[LANES];</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; <a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a>(<span class="keyword">const</span> <a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; other) {</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; d[0] = other.d[0];</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; d[1] = other.d[1];</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; d[2] = other.d[2];</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; e[0] = other.e[0];</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; e[1] = other.e[1];</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; e[2] = other.e[2];</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; mData = other.mData;</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; mScale = other.mScale;</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; mAdvance = other.mAdvance;</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; mLen = other.mLen;</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; LANES; i++) { mOffsets[i] = other.mOffsets[i]; }</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="l00401"></a><span class="lineno"> 401</span>&#160;</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordtype">void</span> initOffsets(<span class="keywordtype">int</span> len) {</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordtype">int</span> nOffset = 0;</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; LANES; i++) {</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; mOffsets[i] = nOffset;</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">if</span>((1&lt;&lt;i) &amp; MASK) { nOffset += (len * mAdvance); }</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; }</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a>(<span class="keyword">const</span> uint8_t *d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER, <span class="keywordtype">bool</span> advance=<span class="keyword">true</span>, uint8_t skip=0) : mData(d), mLen(len), mScale(s) {</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; enable_dithering(dither);</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; mData += skip;</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; mAdvance = (advance) ? 3+skip : 0;</div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; initOffsets(len);</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;</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a>(<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER) : mData((<span class="keyword">const</span> uint8_t*)d), mLen(len), mScale(s) {</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; enable_dithering(dither);</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; mAdvance = 3;</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; initOffsets(len);</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"> 423</span>&#160; <a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a>(<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp;d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER) : mData((<span class="keyword">const</span> uint8_t*)&amp;d), mLen(len), mScale(s) {</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; enable_dithering(dither);</div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; mAdvance = 0;</div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; initOffsets(len);</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="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a>(<span class="keyword">const</span> CARGB &amp;d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER) : mData((<span class="keyword">const</span> uint8_t*)&amp;d), mLen(len), mScale(s) {</div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; enable_dithering(dither);</div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="comment">// skip the A in CARGB</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; mData += 1;</div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; mAdvance = 0;</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; initOffsets(len);</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="struct_multi_pixel_controller.html">MultiPixelController</a>(<span class="keyword">const</span> CARGB *d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER) : mData((<span class="keyword">const</span> uint8_t*)d), mLen(len), mScale(s) {</div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; enable_dithering(dither);</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="comment">// skip the A in CARGB</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; mData += 1;</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; mAdvance = 4;</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; initOffsets(len);</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="preprocessor">#endif</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; <span class="keywordtype">void</span> init_binary_dithering() {</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="preprocessor">#if !defined(NO_DITHERING) || (NO_DITHERING != 1)</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#a404558c7da7f3f6fae768bc45af9dc03"> 345</a></span>&#160; <a class="code" href="struct_pixel_controller.html#a404558c7da7f3f6fae768bc45af9dc03">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> advanceData() { mData += mAdvance; mLen--;}</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#a900493d7e9e345d0cb6e602186151e73"> 348</a></span>&#160; <a class="code" href="struct_pixel_controller.html#a900493d7e9e345d0cb6e602186151e73">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> stepDithering() {</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="comment">// IF UPDATING HERE, BE SURE TO UPDATE THE ASM VERSION IN</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="comment">// clockless_trinket.h!</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; d[0] = e[0] - d[0];</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; d[1] = e[1] - d[1];</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; d[2] = e[2] - d[2];</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;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html#a9b0bc80097821046dbda7bbbf38dd7df"> 357</a></span>&#160; <a class="code" href="struct_pixel_controller.html#a9b0bc80097821046dbda7bbbf38dd7df">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> preStepFirstByteDithering() {</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; d[RO(0)] = e[RO(0)] - d[RO(0)];</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;</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline static uint8_t loadByte(<a class="code" href="struct_pixel_controller.html">PixelController</a> &amp; pc) { <span class="keywordflow">return</span> pc.mData[RO(SLOT)]; }</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline static uint8_t dither(<a class="code" href="struct_pixel_controller.html">PixelController</a> &amp; pc, uint8_t b) { <span class="keywordflow">return</span> b ? <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>(b, pc.d[RO(SLOT)]) : 0; }</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline static uint8_t scale(<a class="code" href="struct_pixel_controller.html">PixelController</a> &amp; pc, uint8_t b) { <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(b, pc.mScale.raw[RO(SLOT)]); }</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="comment">// composite shortcut functions for loading, dithering, and scaling</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline static uint8_t loadAndScale(<a class="code" href="struct_pixel_controller.html">PixelController</a> &amp; pc) { <span class="keywordflow">return</span> scale&lt;SLOT&gt;(pc, pc.dither&lt;SLOT&gt;(pc, pc.loadByte&lt;SLOT&gt;(pc))); }</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline static uint8_t advanceAndLoadAndScale(<a class="code" href="struct_pixel_controller.html">PixelController</a> &amp; pc) { pc.advanceData(); <span class="keywordflow">return</span> pc.loadAndScale&lt;SLOT&gt;(pc); }</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="comment">// Helper functions to get around gcc stupidities</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline uint8_t loadAndScale0() { <span class="keywordflow">return</span> loadAndScale&lt;0&gt;(*this); }</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline uint8_t loadAndScale1() { <span class="keywordflow">return</span> loadAndScale&lt;1&gt;(*this); }</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline uint8_t loadAndScale2() { <span class="keywordflow">return</span> loadAndScale&lt;2&gt;(*this); }</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline uint8_t advanceAndLoadAndScale0() { <span class="keywordflow">return</span> advanceAndLoadAndScale&lt;0&gt;(*this); }</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <a class="code" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline uint8_t stepAdvanceAndLoadAndScale0() { stepDithering(); <span class="keywordflow">return</span> advanceAndLoadAndScale&lt;0&gt;(*this); }</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;</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="comment">// Pixel controller class. This is the class that we use to centralize pixel access in a block of data, including</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="comment">// support for things like RGB reordering, scaling, dithering, skipping (for ARGB data), and eventually, we will</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="comment">// centralize 8/12/16 conversions here as well.</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> LANES,<span class="keywordtype">int</span> MASK, EOrder RGB_ORDER&gt;</div>
+<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="struct_multi_pixel_controller.html"> 381</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> {</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keyword">const</span> uint8_t *mData;</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordtype">int</span> mLen;</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; uint8_t d[3];</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; uint8_t e[3];</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> mScale;</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; int8_t mAdvance;</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordtype">int</span> mOffsets[LANES];</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; <a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a>(<span class="keyword">const</span> <a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; other) {</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; d[0] = other.d[0];</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; d[1] = other.d[1];</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; d[2] = other.d[2];</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; e[0] = other.e[0];</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; e[1] = other.e[1];</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; e[2] = other.e[2];</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; mData = other.mData;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; mScale = other.mScale;</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; mAdvance = other.mAdvance;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; mLen = other.mLen;</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; LANES; i++) { mOffsets[i] = other.mOffsets[i]; }</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; }</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordtype">void</span> initOffsets(<span class="keywordtype">int</span> len) {</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordtype">int</span> nOffset = 0;</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; LANES; i++) {</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; mOffsets[i] = nOffset;</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">if</span>((1&lt;&lt;i) &amp; MASK) { nOffset += (len * mAdvance); }</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; }</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; <a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a>(<span class="keyword">const</span> uint8_t *d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER, <span class="keywordtype">bool</span> advance=<span class="keyword">true</span>, uint8_t skip=0) : mData(d), mLen(len), mScale(s) {</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; enable_dithering(dither);</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; mData += skip;</div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; mAdvance = (advance) ? 3+skip : 0;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; initOffsets(len);</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</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; <a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a>(<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER) : mData((<span class="keyword">const</span> uint8_t*)d), mLen(len), mScale(s) {</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; enable_dithering(dither);</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; mAdvance = 3;</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; initOffsets(len);</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</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; <a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a>(<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp;d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER) : mData((<span class="keyword">const</span> uint8_t*)&amp;d), mLen(len), mScale(s) {</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; enable_dithering(dither);</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; mAdvance = 0;</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; initOffsets(len);</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; }</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;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a>(<span class="keyword">const</span> CARGB &amp;d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER) : mData((<span class="keyword">const</span> uint8_t*)&amp;d), mLen(len), mScale(s) {</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; enable_dithering(dither);</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="comment">// skip the A in CARGB</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; mData += 1;</div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; mAdvance = 0;</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; initOffsets(len);</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;</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a>(<span class="keyword">const</span> CARGB *d, <span class="keywordtype">int</span> len, <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; s, EDitherMode dither = BINARY_DITHER) : mData((<span class="keyword">const</span> uint8_t*)d), mLen(len), mScale(s) {</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; enable_dithering(dither);</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="comment">// skip the A in CARGB</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; mData += 1;</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; mAdvance = 4;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; initOffsets(len);</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="preprocessor">#endif</span></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="comment">// Set &#39;virtual bits&#39; of dithering to the highest level</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="comment">// that is not likely to cause excessive flickering at</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="comment">// low brightness levels + low update rates.</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="comment">// These pre-set values are a little ambitious, since</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="comment">// a 400Hz update rate for WS2811-family LEDs is only</span></div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="comment">// possible with 85 pixels or fewer.</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="comment">// Once we have a &#39;number of milliseconds since last update&#39;</span></div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="comment">// value available here, we can quickly calculate the correct</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="comment">// number of &#39;virtual bits&#39; on the fly with a couple of &#39;if&#39;</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="comment">// statements -- no division required. At this point,</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="comment">// the division is done at compile time, so there&#39;s no runtime</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="comment">// cost, but the values are still hard-coded.</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;<span class="preprocessor">#define MAX_LIKELY_UPDATE_RATE_HZ 400</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="preprocessor">#define MIN_ACCEPTABLE_DITHER_RATE_HZ 50</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;<span class="preprocessor">#define UPDATES_PER_FULL_DITHER_CYCLE (MAX_LIKELY_UPDATE_RATE_HZ / MIN_ACCEPTABLE_DITHER_RATE_HZ)</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor">#define RECOMMENDED_VIRTUAL_BITS ((UPDATES_PER_FULL_DITHER_CYCLE&gt;1) + \</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;2) + \</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;4) + \</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;8) + \</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;16) + \</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;32) + \</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;64) + \</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;128) )</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor">#define VIRTUAL_BITS RECOMMENDED_VIRTUAL_BITS</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">// R is the digther signal &#39;counter&#39;.</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keyword">static</span> byte R = 0;</div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; R++;</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="comment">// R is wrapped around at 2^ditherBits,</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="comment">// so if ditherBits is 2, R will cycle through (0,1,2,3)</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; byte ditherBits = VIRTUAL_BITS;</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; R &amp;= (0x01 &lt;&lt; ditherBits) - 1;</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="comment">// Q is the &quot;unscaled dither signal&quot; itself.</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="comment">// It&#39;s initialized to the reversed bits of R.</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="comment">// If &#39;ditherBits&#39; is 2, Q here will cycle through (0,128,64,192)</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; byte Q = 0;</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">// Reverse bits in a byte</span></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; <span class="keywordflow">if</span>(R &amp; 0x01) { Q |= 0x80; }</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x02) { Q |= 0x40; }</div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x04) { Q |= 0x20; }</div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x08) { Q |= 0x10; }</div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x10) { Q |= 0x08; }</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x20) { Q |= 0x04; }</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x40) { Q |= 0x02; }</div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x80) { Q |= 0x01; }</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;</div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="comment">// Now we adjust Q to fall in the center of each range,</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="comment">// instead of at the start of the range.</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="comment">// If ditherBits is 2, Q will be (0, 128, 64, 192) at first,</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="comment">// and this adjustment makes it (31, 159, 95, 223).</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">if</span>( ditherBits &lt; 8) {</div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; Q += 0x01 &lt;&lt; (7 - ditherBits);</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"> 508</span>&#160;</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="comment">// D and E form the &quot;scaled dither signal&quot;</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="comment">// which is added to pixel values to affect the</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="comment">// actual dithering.</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="comment">// Setup the initial D and E values</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 3; i++) {</div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; byte s = mScale.raw[i];</div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; e[i] = s ? (256/s) + 1 : 0;</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; d[i] = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(Q, e[i]);</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">if</span>(e[i]) e[i]--;</div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; }</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="preprocessor">#endif</span></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;</div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="comment">// Do we have n pixels left to process?</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">bool</span> has(<span class="keywordtype">int</span> n) {</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">return</span> mLen &gt;= n;</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; }</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="comment">// toggle dithering enable</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordtype">void</span> enable_dithering(EDitherMode dither) {</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">switch</span>(dither) {</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">case</span> BINARY_DITHER: init_binary_dithering(); <span class="keywordflow">break</span>;</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">default</span>: d[0]=d[1]=d[2]=e[0]=e[1]=e[2]=0; <span class="keywordflow">break</span>;</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; }</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; <span class="comment">// get the amount to advance the pointer by</span></div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">int</span> advanceBy() { <span class="keywordflow">return</span> mAdvance; }</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordtype">void</span> init_binary_dithering() {</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="preprocessor">#if !defined(NO_DITHERING) || (NO_DITHERING != 1)</span></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; <span class="comment">// Set &#39;virtual bits&#39; of dithering to the highest level</span></div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="comment">// that is not likely to cause excessive flickering at</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="comment">// low brightness levels + low update rates.</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="comment">// These pre-set values are a little ambitious, since</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="comment">// a 400Hz update rate for WS2811-family LEDs is only</span></div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="comment">// possible with 85 pixels or fewer.</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="comment">// Once we have a &#39;number of milliseconds since last update&#39;</span></div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="comment">// value available here, we can quickly calculate the correct</span></div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="comment">// number of &#39;virtual bits&#39; on the fly with a couple of &#39;if&#39;</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="comment">// statements -- no division required. At this point,</span></div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="comment">// the division is done at compile time, so there&#39;s no runtime</span></div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="comment">// cost, but the values are still hard-coded.</span></div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="preprocessor">#define MAX_LIKELY_UPDATE_RATE_HZ 400</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;<span class="preprocessor">#define MIN_ACCEPTABLE_DITHER_RATE_HZ 50</span></div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;<span class="preprocessor">#define UPDATES_PER_FULL_DITHER_CYCLE (MAX_LIKELY_UPDATE_RATE_HZ / MIN_ACCEPTABLE_DITHER_RATE_HZ)</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="preprocessor">#define RECOMMENDED_VIRTUAL_BITS ((UPDATES_PER_FULL_DITHER_CYCLE&gt;1) + \</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;2) + \</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;4) + \</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;8) + \</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;16) + \</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;32) + \</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;64) + \</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;128) )</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="preprocessor">#define VIRTUAL_BITS RECOMMENDED_VIRTUAL_BITS</span></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">// R is the digther signal &#39;counter&#39;.</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keyword">static</span> byte R = 0;</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; R++;</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">// R is wrapped around at 2^ditherBits,</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="comment">// so if ditherBits is 2, R will cycle through (0,1,2,3)</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; byte ditherBits = VIRTUAL_BITS;</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; R &amp;= (0x01 &lt;&lt; ditherBits) - 1;</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="comment">// Q is the &quot;unscaled dither signal&quot; itself.</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="comment">// It&#39;s initialized to the reversed bits of R.</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="comment">// If &#39;ditherBits&#39; is 2, Q here will cycle through (0,128,64,192)</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; byte Q = 0;</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="comment">// Reverse bits in a byte</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; {</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x01) { Q |= 0x80; }</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x02) { Q |= 0x40; }</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x04) { Q |= 0x20; }</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x08) { Q |= 0x10; }</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x10) { Q |= 0x08; }</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x20) { Q |= 0x04; }</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x40) { Q |= 0x02; }</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x80) { Q |= 0x01; }</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;</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="comment">// Now we adjust Q to fall in the center of each range,</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="comment">// instead of at the start of the range.</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="comment">// If ditherBits is 2, Q will be (0, 128, 64, 192) at first,</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="comment">// and this adjustment makes it (31, 159, 95, 223).</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">if</span>( ditherBits &lt; 8) {</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; Q += 0x01 &lt;&lt; (7 - ditherBits);</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;</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="comment">// D and E form the &quot;scaled dither signal&quot;</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="comment">// which is added to pixel values to affect the</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="comment">// actual dithering.</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="comment">// Setup the initial D and E values</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 3; i++) {</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; byte s = mScale.raw[i];</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; e[i] = s ? (256/s) + 1 : 0;</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; d[i] = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(Q, e[i]);</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">if</span>(e[i]) e[i]--;</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;<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="l00525"></a><span class="lineno"> 525</span>&#160;</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="comment">// Do we have n pixels left to process?</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">bool</span> has(<span class="keywordtype">int</span> n) {</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">return</span> mLen &gt;= n;</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;</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="comment">// toggle dithering enable</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordtype">void</span> enable_dithering(EDitherMode dither) {</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">switch</span>(dither) {</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">case</span> BINARY_DITHER: init_binary_dithering(); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">default</span>: d[0]=d[1]=d[2]=e[0]=e[1]=e[2]=0; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; }</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;</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="comment">// advance the data pointer forward, adjust position counter</span></div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">void</span> advanceData() { mData += mAdvance; mLen--;}</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="comment">// get the amount to advance the pointer by</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">int</span> advanceBy() { <span class="keywordflow">return</span> mAdvance; }</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; <span class="comment">// step the dithering forward</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">void</span> stepDithering() {</div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="comment">// IF UPDATING HERE, BE SURE TO UPDATE THE ASM VERSION IN</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="comment">// clockless_trinket.h!</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; d[0] = e[0] - d[0];</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; d[1] = e[1] - d[1];</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; d[2] = e[2] - d[2];</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; }</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; <span class="comment">// Some chipsets pre-cycle the first byte, which means we want to cycle byte 0&#39;s dithering separately</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">void</span> preStepFirstByteDithering() {</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; d[RO(0)] = e[RO(0)] - d[RO(0)];</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">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t loadByte(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, <span class="keywordtype">int</span> lane) { <span class="keywordflow">return</span> pc.mData[pc.mOffsets[lane] + RO(SLOT)]; }</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t dither(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, uint8_t b) { <span class="keywordflow">return</span> b ? <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>(b, pc.d[RO(SLOT)]) : 0; }</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t dither(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, uint8_t b, uint8_t d) { <span class="keywordflow">return</span> b ? <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>(b,d) : 0; }</div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t scale(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, uint8_t b) { <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(b, pc.mScale.raw[RO(SLOT)]); }</div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t scale(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, uint8_t b, uint8_t scale) { <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(b, scale); }</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="comment">// composite shortcut functions for loading, dithering, and scaling</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t loadAndScale(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, <span class="keywordtype">int</span> lane) { <span class="keywordflow">return</span> scale&lt;SLOT&gt;(pc, pc.dither&lt;SLOT&gt;(pc, pc.loadByte&lt;SLOT&gt;(pc, lane))); }</div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t loadAndScale(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, <span class="keywordtype">int</span> lane, uint8_t d, uint8_t scale) { <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(pc.dither&lt;SLOT&gt;(pc, pc.loadByte&lt;SLOT&gt;(pc, lane), d), scale); }</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t loadAndScale(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, <span class="keywordtype">int</span> lane, uint8_t scale) { <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(pc.loadByte&lt;SLOT&gt;(pc, lane), scale); }</div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t advanceAndLoadAndScale(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, <span class="keywordtype">int</span> lane) { pc.advanceData(); <span class="keywordflow">return</span> pc.loadAndScale&lt;SLOT&gt;(pc, lane); }</div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t getd(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc) { <span class="keywordflow">return</span> pc.d[RO(SLOT)]; }</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t getscale(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc) { <span class="keywordflow">return</span> pc.mScale.raw[RO(SLOT)]; }</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="comment">// advance the data pointer forward, adjust position counter</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">void</span> advanceData() { mData += mAdvance; mLen--;}</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; <span class="comment">// step the dithering forward</span></div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">void</span> stepDithering() {</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="comment">// IF UPDATING HERE, BE SURE TO UPDATE THE ASM VERSION IN</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="comment">// clockless_trinket.h!</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; d[0] = e[0] - d[0];</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; d[1] = e[1] - d[1];</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; d[2] = e[2] - d[2];</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="comment">// Some chipsets pre-cycle the first byte, which means we want to cycle byte 0&#39;s dithering separately</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">void</span> preStepFirstByteDithering() {</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; d[RO(0)] = e[RO(0)] - d[RO(0)];</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;</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t loadByte(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, <span class="keywordtype">int</span> lane) { <span class="keywordflow">return</span> pc.mData[pc.mOffsets[lane] + RO(SLOT)]; }</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t dither(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, uint8_t b) { <span class="keywordflow">return</span> b ? <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>(b, pc.d[RO(SLOT)]) : 0; }</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t dither(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, uint8_t b, uint8_t d) { <span class="keywordflow">return</span> b ? <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>(b,d) : 0; }</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t scale(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, uint8_t b) { <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(b, pc.mScale.raw[RO(SLOT)]); }</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t scale(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, uint8_t b, uint8_t scale) { <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(b, scale); }</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="comment">// composite shortcut functions for loading, dithering, and scaling</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t loadAndScale(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, <span class="keywordtype">int</span> lane) { <span class="keywordflow">return</span> scale&lt;SLOT&gt;(pc, pc.dither&lt;SLOT&gt;(pc, pc.loadByte&lt;SLOT&gt;(pc, lane))); }</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t loadAndScale(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, <span class="keywordtype">int</span> lane, uint8_t d, uint8_t scale) { <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(pc.dither&lt;SLOT&gt;(pc, pc.loadByte&lt;SLOT&gt;(pc, lane), d), scale); }</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t loadAndScale(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, <span class="keywordtype">int</span> lane, uint8_t scale) { <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(pc.loadByte&lt;SLOT&gt;(pc, lane), scale); }</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t advanceAndLoadAndScale(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc, <span class="keywordtype">int</span> lane) { pc.advanceData(); <span class="keywordflow">return</span> pc.loadAndScale&lt;SLOT&gt;(pc, lane); }</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="comment">// Helper functions to get around gcc stupidities</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t loadAndScale0(<span class="keywordtype">int</span> lane) { <span class="keywordflow">return</span> loadAndScale&lt;0&gt;(*<span class="keyword">this</span>, lane); }</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t loadAndScale1(<span class="keywordtype">int</span> lane) { <span class="keywordflow">return</span> loadAndScale&lt;1&gt;(*<span class="keyword">this</span>, lane); }</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t loadAndScale2(<span class="keywordtype">int</span> lane) { <span class="keywordflow">return</span> loadAndScale&lt;2&gt;(*<span class="keyword">this</span>, lane); }</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t loadAndScale0(<span class="keywordtype">int</span> lane, uint8_t d, uint8_t scale) { <span class="keywordflow">return</span> loadAndScale&lt;0&gt;(*<span class="keyword">this</span>, lane, d, scale); }</div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t loadAndScale1(<span class="keywordtype">int</span> lane, uint8_t d, uint8_t scale) { <span class="keywordflow">return</span> loadAndScale&lt;1&gt;(*<span class="keyword">this</span>, lane, d, scale); }</div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t loadAndScale2(<span class="keywordtype">int</span> lane, uint8_t d, uint8_t scale) { <span class="keywordflow">return</span> loadAndScale&lt;2&gt;(*<span class="keyword">this</span>, lane, d, scale); }</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t advanceAndLoadAndScale0(<span class="keywordtype">int</span> lane) { <span class="keywordflow">return</span> advanceAndLoadAndScale&lt;0&gt;(*<span class="keyword">this</span>, lane); }</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t stepAdvanceAndLoadAndScale0(<span class="keywordtype">int</span> lane) { stepDithering(); <span class="keywordflow">return</span> advanceAndLoadAndScale&lt;0&gt;(*<span class="keyword">this</span>, lane); }</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;</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;FASTLED_NAMESPACE_END</div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;</div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t getd(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc) { <span class="keywordflow">return</span> pc.d[RO(SLOT)]; }</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SLOT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t getscale(<a class="code" href="struct_multi_pixel_controller.html">MultiPixelController</a> &amp; pc) { <span class="keywordflow">return</span> pc.mScale.raw[RO(SLOT)]; }</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="comment">// Helper functions to get around gcc stupidities</span></div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t loadAndScale0(<span class="keywordtype">int</span> lane) { <span class="keywordflow">return</span> loadAndScale&lt;0&gt;(*<span class="keyword">this</span>, lane); }</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t loadAndScale1(<span class="keywordtype">int</span> lane) { <span class="keywordflow">return</span> loadAndScale&lt;1&gt;(*<span class="keyword">this</span>, lane); }</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t loadAndScale2(<span class="keywordtype">int</span> lane) { <span class="keywordflow">return</span> loadAndScale&lt;2&gt;(*<span class="keyword">this</span>, lane); }</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t loadAndScale0(<span class="keywordtype">int</span> lane, uint8_t d, uint8_t scale) { <span class="keywordflow">return</span> loadAndScale&lt;0&gt;(*<span class="keyword">this</span>, lane, d, scale); }</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t loadAndScale1(<span class="keywordtype">int</span> lane, uint8_t d, uint8_t scale) { <span class="keywordflow">return</span> loadAndScale&lt;1&gt;(*<span class="keyword">this</span>, lane, d, scale); }</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t loadAndScale2(<span class="keywordtype">int</span> lane, uint8_t d, uint8_t scale) { <span class="keywordflow">return</span> loadAndScale&lt;2&gt;(*<span class="keyword">this</span>, lane, d, scale); }</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t advanceAndLoadAndScale0(<span class="keywordtype">int</span> lane) { <span class="keywordflow">return</span> advanceAndLoadAndScale&lt;0&gt;(*<span class="keyword">this</span>, lane); }</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t stepAdvanceAndLoadAndScale0(<span class="keywordtype">int</span> lane) { stepDithering(); <span class="keywordflow">return</span> advanceAndLoadAndScale&lt;0&gt;(*<span class="keyword">this</span>, lane); }</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;};</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;FASTLED_NAMESPACE_END</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;<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:155</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:91</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:145</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:28</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:37</div></div>
-<div class="ttc" id="struct_pixel_controller_html_a900493d7e9e345d0cb6e602186151e73"><div class="ttname"><a href="struct_pixel_controller.html#a900493d7e9e345d0cb6e602186151e73">PixelController::__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline void stepDithering()</div><div class="ttdoc">step the dithering forward </div><div class="ttdef"><b>Definition:</b> controller.h:345</div></div>
+<div class="ttc" id="struct_pixel_controller_html_a900493d7e9e345d0cb6e602186151e73"><div class="ttname"><a href="struct_pixel_controller.html#a900493d7e9e345d0cb6e602186151e73">PixelController::__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline void stepDithering()</div><div class="ttdoc">step the dithering forward </div><div class="ttdef"><b>Definition:</b> controller.h:348</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_a7b61c81e004c96ff670a2742057a5a52"><div class="ttname"><a href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">CLEDController::clearLedData</a></div><div class="ttdeci">void clearLedData()</div><div class="ttdoc">zero out the led data managed by this controller </div><div class="ttdef"><b>Definition:</b> controller.h:120</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_a69ac4a882bdc4a813ae957ddedb5a883"><div class="ttname"><a href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">CLEDController::setTemperature</a></div><div class="ttdeci">CLEDController &amp; setTemperature(CRGB temperature)</div><div class="ttdoc">set the color temperature, aka white point, for this controller </div><div class="ttdef"><b>Definition:</b> controller.h:148</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_c_l_e_d_controller_html_a5b08378b29f92c5def65175ec5334037"><div class="ttname"><a href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">CLEDController::setLeds</a></div><div class="ttdeci">CLEDController &amp; setLeds(CRGB *data, int nLeds)</div><div class="ttdoc">set the default array of leds to be used by this controller </div><div class="ttdef"><b>Definition:</b> controller.h:113</div></div>
-<div class="ttc" id="struct_pixel_controller_html_a9b0bc80097821046dbda7bbbf38dd7df"><div class="ttname"><a href="struct_pixel_controller.html#a9b0bc80097821046dbda7bbbf38dd7df">PixelController::__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline void preStepFirstByteDithering()</div><div class="ttdoc">Some chipsets pre-cycle the first byte, which means we want to cycle byte 0&#39;s dithering separately...</div><div class="ttdef"><b>Definition:</b> controller.h:354</div></div>
-<div class="ttc" id="struct_multi_pixel_controller_html"><div class="ttname"><a href="struct_multi_pixel_controller.html">MultiPixelController</a></div><div class="ttdef"><b>Definition:</b> controller.h:378</div></div>
-<div class="ttc" id="struct_pixel_controller_html_aec44f7bfc391ebf4874f678a994eff71"><div class="ttname"><a href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71">PixelController::PixelController</a></div><div class="ttdeci">PixelController(const PixelController &amp;other)</div><div class="ttdoc">copy constructor for the pixel controller object </div><div class="ttdef"><b>Definition:</b> controller.h:193</div></div>
-<div class="ttc" id="class_c_l_e_d_controller_html_a8840496d231f1fe0fa640970dc14db08"><div class="ttname"><a href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">CLEDController::size</a></div><div class="ttdeci">int size()</div><div class="ttdoc">How many leds does this controller manage? </div><div class="ttdef"><b>Definition:</b> controller.h:127</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="struct_pixel_controller_html_a9b0bc80097821046dbda7bbbf38dd7df"><div class="ttname"><a href="struct_pixel_controller.html#a9b0bc80097821046dbda7bbbf38dd7df">PixelController::__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline void preStepFirstByteDithering()</div><div class="ttdoc">Some chipsets pre-cycle the first byte, which means we want to cycle byte 0&#39;s dithering separately...</div><div class="ttdef"><b>Definition:</b> controller.h:357</div></div>
+<div class="ttc" id="struct_multi_pixel_controller_html"><div class="ttname"><a href="struct_multi_pixel_controller.html">MultiPixelController</a></div><div class="ttdef"><b>Definition:</b> controller.h:381</div></div>
+<div class="ttc" id="struct_pixel_controller_html_aec44f7bfc391ebf4874f678a994eff71"><div class="ttname"><a href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71">PixelController::PixelController</a></div><div class="ttdeci">PixelController(const PixelController &amp;other)</div><div class="ttdoc">copy constructor for the pixel controller object </div><div class="ttdef"><b>Definition:</b> controller.h:196</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:137</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_a253069a734075b298da65d59d6efbb3b"><div class="ttname"><a href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">CLEDController::showColor</a></div><div class="ttdeci">void showColor(const struct CRGB &amp;data, int nLeds, uint8_t brightness)</div><div class="ttdoc">show function w/integer brightness, will scale for color correction and temperature ...</div><div class="ttdef"><b>Definition:</b> controller.h:86</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_a9620d0a629a6a3294c71f5f8dbfe91b8"><div class="ttname"><a href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">CLEDController::setCorrection</a></div><div class="ttdeci">CLEDController &amp; setCorrection(CRGB correction)</div><div class="ttdoc">the the color corrction to use for this controller, expressed as an rgb object </div><div class="ttdef"><b>Definition:</b> controller.h:141</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_af877a15a5ec452780fbd1d359b8a9913"><div class="ttname"><a href="class_c_l_e_d_controller.html#af877a15a5ec452780fbd1d359b8a9913">CLEDController::init</a></div><div class="ttdeci">virtual void init()=0</div><div class="ttdoc">initialize the LED controller </div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_afc94e9d029d7e59f56a4ab845f3de32d"><div class="ttname"><a href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d">CLEDController::getTemperature</a></div><div class="ttdeci">CRGB getTemperature()</div><div class="ttdoc">get the color temperature, aka whipe point, for this controller </div><div class="ttdef"><b>Definition:</b> controller.h:152</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:184</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:187</div></div>
<div class="ttc" id="group___math_html_ga38e9f9a8830353f9cbfecad7c8758b1f"><div class="ttname"><a href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a></div><div class="ttdeci">LIB8STATIC uint8_t qadd8(uint8_t i, uint8_t j)</div><div class="ttdoc">add one byte to another, saturating at 0xFF </div><div class="ttdef"><b>Definition:</b> math8.h:21</div></div>
-<div class="ttc" id="struct_pixel_controller_html_a404558c7da7f3f6fae768bc45af9dc03"><div class="ttname"><a href="struct_pixel_controller.html#a404558c7da7f3f6fae768bc45af9dc03">PixelController::__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline void advanceData()</div><div class="ttdoc">advance the data pointer forward, adjust position counter </div><div class="ttdef"><b>Definition:</b> controller.h:342</div></div>
+<div class="ttc" id="struct_pixel_controller_html_a404558c7da7f3f6fae768bc45af9dc03"><div class="ttname"><a href="struct_pixel_controller.html#a404558c7da7f3f6fae768bc45af9dc03">PixelController::__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline void advanceData()</div><div class="ttdoc">advance the data pointer forward, adjust position counter </div><div class="ttdef"><b>Definition:</b> controller.h:345</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_a4ccd149ab7282817041a1ae4e586a9d4"><div class="ttname"><a href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController::showColor</a></div><div class="ttdeci">void showColor(const struct CRGB &amp;data, uint8_t brightness=255)</div><div class="ttdoc">show the given color on the led strip </div><div class="ttdef"><b>Definition:</b> controller.h:96</div></div>
-<div class="ttc" id="struct_pixel_controller_html_a81403c8810658d3c41cb210703bbfc00"><div class="ttname"><a href="struct_pixel_controller.html#a81403c8810658d3c41cb210703bbfc00">PixelController::PixelController</a></div><div class="ttdeci">PixelController(const uint8_t *d, int len, CRGB &amp;s, EDitherMode dither=BINARY_DITHER, bool advance=true, uint8_t skip=0)</div><div class="ttdoc">create a pixel controller for managing led data as it is being written out </div><div class="ttdef"><b>Definition:</b> controller.h:215</div></div>
+<div class="ttc" id="struct_pixel_controller_html_a81403c8810658d3c41cb210703bbfc00"><div class="ttname"><a href="struct_pixel_controller.html#a81403c8810658d3c41cb210703bbfc00">PixelController::PixelController</a></div><div class="ttdeci">PixelController(const uint8_t *d, int len, CRGB &amp;s, EDitherMode dither=BINARY_DITHER, bool advance=true, uint8_t skip=0)</div><div class="ttdoc">create a pixel controller for managing led data as it is being written out </div><div class="ttdef"><b>Definition:</b> controller.h:218</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_a1e6d35be39f9f67aacdb4709ea914ab4"><div class="ttname"><a href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">CLEDController::setTemperature</a></div><div class="ttdeci">CLEDController &amp; setTemperature(ColorTemperature temperature)</div><div class="ttdoc">set the color temperature, aka white point, for this controller </div><div class="ttdef"><b>Definition:</b> controller.h:150</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_a06cfb05ad6e0f7982328928051f3f565"><div class="ttname"><a href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">CLEDController::next</a></div><div class="ttdeci">CLEDController * next()</div><div class="ttdoc">get the next controller in the chain after this one. will return NULL at the end of the chain ...</div><div class="ttdef"><b>Definition:</b> controller.h:103</div></div>
<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9ae3d35275ab8c374612bcfbcce732b39f"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae3d35275ab8c374612bcfbcce732b39f">UncorrectedTemperature</a></div><div class="ttdoc">Uncorrected temperature 0xFFFFFF. </div><div class="ttdef"><b>Definition:</b> color.h:76</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_a0703d15ea35deaf94eed59ae27bc3517"><div class="ttname"><a href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">CLEDController::setDither</a></div><div class="ttdeci">CLEDController &amp; setDither(uint8_t ditherMode=BINARY_DITHER)</div><div class="ttdoc">set the dithering mode for this controller to use </div><div class="ttdef"><b>Definition:</b> controller.h:136</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_a5e86c45c89ebfb7b21f9045790302399"><div class="ttname"><a href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399">CLEDController::leds</a></div><div class="ttdeci">CRGB * leds()</div><div class="ttdoc">Pointer to the CRGB array for this controller. </div><div class="ttdef"><b>Definition:</b> controller.h:130</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:11</div></div>
-<div class="ttc" id="struct_pixel_controller_html_a3e923be6212346c5ae98f7731d74c2e3"><div class="ttname"><a href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">PixelController::enable_dithering</a></div><div class="ttdeci">void enable_dithering(EDitherMode dither)</div><div class="ttdoc">toggle dithering enable </div><div class="ttdef"><b>Definition:</b> controller.h:331</div></div>
+<div class="ttc" id="struct_pixel_controller_html_a3e923be6212346c5ae98f7731d74c2e3"><div class="ttname"><a href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">PixelController::enable_dithering</a></div><div class="ttdeci">void enable_dithering(EDitherMode dither)</div><div class="ttdoc">toggle dithering enable </div><div class="ttdef"><b>Definition:</b> controller.h:334</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_add284627121ffab140e083e84fadc37f"><div class="ttname"><a href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">CLEDController::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)=0</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div></div>
<div class="ttc" id="color_8h_html"><div class="ttname"><a href="color_8h.html">color.h</a></div><div class="ttdoc">contains definitions for color correction and temperature </div></div>
-<div class="ttc" id="struct_pixel_controller_html_a11aef85a0ef8a9276cd2e729d57aa49b"><div class="ttname"><a href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">PixelController::__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline bool has(int n)</div><div class="ttdoc">Do we have n pixels left to process? </div><div class="ttdef"><b>Definition:</b> controller.h:326</div></div>
+<div class="ttc" id="struct_pixel_controller_html_a11aef85a0ef8a9276cd2e729d57aa49b"><div class="ttname"><a href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">PixelController::__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline bool has(int n)</div><div class="ttdoc">Do we have n pixels left to process? </div><div class="ttdef"><b>Definition:</b> controller.h:329</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_a8c560c6d171f117dfd19c0f2ec780a32"><div class="ttname"><a href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController::CLEDController</a></div><div class="ttdeci">CLEDController()</div><div class="ttdoc">create an led controller object, add it to the chain of controllers </div><div class="ttdef"><b>Definition:</b> controller.h:67</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_a068fa50d8c7d31bd8537b731eea84c92"><div class="ttname"><a href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">CLEDController::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)=0</div><div class="ttdoc">set all the leds on the controller to a given color </div></div>
+<div class="ttc" id="class_c_l_e_d_controller_html_a63f75cf7e55cf8da46db5fd27110bb3e"><div class="ttname"><a href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">CLEDController::size</a></div><div class="ttdeci">virtual int size()</div><div class="ttdoc">How many leds does this controller manage? </div><div class="ttdef"><b>Definition:</b> controller.h:127</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:138</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_a74c43977660742e8185fd666e5d66bf9"><div class="ttname"><a href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">CLEDController::setCorrection</a></div><div class="ttdeci">CLEDController &amp; setCorrection(LEDColorCorrection correction)</div><div class="ttdoc">set the color correction to use for this controller </div><div class="ttdef"><b>Definition:</b> controller.h:143</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_adfa6601c84fefd733904b32ac98b6dae"><div class="ttname"><a href="class_c_l_e_d_controller.html#adfa6601c84fefd733904b32ac98b6dae">CLEDController::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)=0</div><div class="ttdoc">clear out/zero out the given number of leds. </div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_abe990b9a65f5bff1f391cc5c28752abb"><div class="ttname"><a href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">CLEDController::show</a></div><div class="ttdeci">void show(const struct CRGB *data, int nLeds, uint8_t brightness)</div><div class="ttdoc">show function w/integer brightness, will scale for color correction and temperature ...</div><div class="ttdef"><b>Definition:</b> controller.h:81</div></div>
-<div class="ttc" id="struct_pixel_controller_html_accb48b27c47c742a8b13f97ae1d82d32"><div class="ttname"><a href="struct_pixel_controller.html#accb48b27c47c742a8b13f97ae1d82d32">PixelController::init_binary_dithering</a></div><div class="ttdeci">void init_binary_dithering()</div><div class="ttdoc">initialize the binary dithering for this controller </div><div class="ttdef"><b>Definition:</b> controller.h:249</div></div>
+<div class="ttc" id="struct_pixel_controller_html_accb48b27c47c742a8b13f97ae1d82d32"><div class="ttname"><a href="struct_pixel_controller.html#accb48b27c47c742a8b13f97ae1d82d32">PixelController::init_binary_dithering</a></div><div class="ttdeci">void init_binary_dithering()</div><div class="ttdoc">initialize the binary dithering for this controller </div><div class="ttdef"><b>Definition:</b> controller.h:252</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_a278a429964bec69b3c91486665e61c0a"><div class="ttname"><a href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">CLEDController::operator[]</a></div><div class="ttdeci">CRGB &amp; operator[](int x)</div><div class="ttdoc">Reference to the n&#39;th item in the controller. </div><div class="ttdef"><b>Definition:</b> controller.h:133</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:33</div></div>
<div class="ttc" id="class_c_l_e_d_controller_html_a75a5a6ea50899409d875d72393323ca0"><div class="ttname"><a href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">CLEDController::head</a></div><div class="ttdeci">static CLEDController * head()</div><div class="ttdoc">get the first led controller in the chain of controllers </div><div class="ttdef"><b>Definition:</b> controller.h:101</div></div>
-<div class="ttc" id="struct_pixel_controller_html_afbe76a814e6bec02854dd4df167567b4"><div class="ttname"><a href="struct_pixel_controller.html#afbe76a814e6bec02854dd4df167567b4">PixelController::__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline int advanceBy()</div><div class="ttdoc">get the amount to advance the pointer by </div><div class="ttdef"><b>Definition:</b> controller.h:339</div></div>
+<div class="ttc" id="struct_pixel_controller_html_afbe76a814e6bec02854dd4df167567b4"><div class="ttname"><a href="struct_pixel_controller.html#afbe76a814e6bec02854dd4df167567b4">PixelController::__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline int advanceBy()</div><div class="ttdoc">get the amount to advance the pointer by </div><div class="ttdef"><b>Definition:</b> controller.h:342</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:46 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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/cpp__compat_8h_source.html b/docs/3.1/cpp__compat_8h_source.html
new file mode 100644
index 00000000..abf1bdc1
--- /dev/null
+++ b/docs/3.1/cpp__compat_8h_source.html
@@ -0,0 +1,112 @@
+<!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: cpp_compat.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<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 class="current"><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="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</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="header">
+ <div class="headertitle">
+<div class="title">cpp_compat.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_CPP_COMPAT_H</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_CPP_COMPAT_H</span></div>
+<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;<span class="preprocessor">#if __cplusplus &lt;= 199711L</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;<span class="preprocessor">#define static_assert(expression, message)</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#define constexpr const</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;<span class="preprocessor">#else</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">// things that we can turn on if we&#39;re in a C++11 environment</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#endif</span></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Nov 11 2015 15:10: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/dir_fbb9e787cf27434374136273d35a9c17.html b/docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html
index 17e81ec1..5442bd22 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 6c0e8837..f91fbee6 100644
--- a/docs/3.1/dmx_8h_source.html
+++ b/docs/3.1/dmx_8h_source.html
@@ -212,7 +212,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 23:10:46 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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.html b/docs/3.1/fastled__config_8h.html
index 67054676..9dd86cbd 100644
--- a/docs/3.1/fastled__config_8h.html
+++ b/docs/3.1/fastled__config_8h.html
@@ -97,7 +97,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 f7066dea..7cc1f7d8 100644
--- a/docs/3.1/fastled__config_8h_source.html
+++ b/docs/3.1/fastled__config_8h_source.html
@@ -110,7 +110,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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.html b/docs/3.1/fastled__delay_8h.html
index 004ef404..8a4ffebd 100644
--- a/docs/3.1/fastled__delay_8h.html
+++ b/docs/3.1/fastled__delay_8h.html
@@ -128,7 +128,7 @@ template&lt;&gt; </td></tr>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 dd37e7b5..f0e62501 100644
--- a/docs/3.1/fastled__delay_8h_source.html
+++ b/docs/3.1/fastled__delay_8h_source.html
@@ -207,7 +207,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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.html b/docs/3.1/fastled__progmem_8h.html
index 0ca478ff..15174fca 100644
--- a/docs/3.1/fastled__progmem_8h.html
+++ b/docs/3.1/fastled__progmem_8h.html
@@ -97,7 +97,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 6c099045..69b8a50e 100644
--- a/docs/3.1/fastled__progmem_8h_source.html
+++ b/docs/3.1/fastled__progmem_8h_source.html
@@ -152,7 +152,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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.html b/docs/3.1/fastpin_8h.html
index e53fcd93..b7509747 100644
--- a/docs/3.1/fastpin_8h.html
+++ b/docs/3.1/fastpin_8h.html
@@ -115,6 +115,9 @@ 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_fast_pin.html">FastPin&lt; PIN &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The simplest level of <a class="el" href="class_pin.html">Pin</a> class. <a href="class_fast_pin.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_fast_pin.html">FastPin&lt; PIN &gt;</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The simplest level of <a class="el" href="class_pin.html">Pin</a> class. <a href="class_fast_pin.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_fast_pin_b_b.html">FastPinBB&lt; PIN &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
@@ -132,7 +135,7 @@ typedef volatile uint32_t *&#160;</td><td class="memItemRight" valign="bottom"><
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 c6300dbd..bd708b41 100644
--- a/docs/3.1/fastpin_8h_source.html
+++ b/docs/3.1/fastpin_8h_source.html
@@ -92,196 +92,239 @@ 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;<span class="preprocessor">#include &quot;led_sysdefs.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;<span class="preprocessor">#pragma GCC diagnostic push</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#pragma GCC diagnostic ignored &quot;-Wignored-qualifiers&quot;</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="preprocessor">#define NO_PIN 255</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Pin access class - needs to tune for various platforms (naive fallback solution?)</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="class_selectable.html"> 19</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_selectable.html">Selectable</a> {</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> select() = 0;</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSelected() = 0;</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;</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#if !defined(FASTLED_NO_PINMAP)</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
-<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="class_pin.html"> 28</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_pin.html">Pin</a> : <span class="keyword">public</span> <a class="code" href="class_selectable.html">Selectable</a> {</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">volatile</span> RwReg *mPort;</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">volatile</span> RoReg *mInPort;</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; RwReg mPinMask;</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; uint8_t mPin;</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="keywordtype">void</span> _init() {</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; mPinMask = digitalPinToBitMask(mPin);</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; mPort = portOutputRegister(digitalPinToPort(mPin));</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; mInPort = portInputRegister(digitalPinToPort(mPin));</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="keyword">public</span>:</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="class_pin.html">Pin</a>(<span class="keywordtype">int</span> pin) : mPin(pin) { _init(); }</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="keyword">typedef</span> <span class="keyword">volatile</span> RwReg * port_ptr_t;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">typedef</span> RwReg port_t;</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#define NO_PIN 255</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// Pin access class - needs to tune for various platforms (naive fallback solution?)</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="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="class_selectable.html"> 22</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_selectable.html">Selectable</a> {</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> select() = 0;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSelected() = 0;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;};</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="preprocessor">#if !defined(FASTLED_NO_PINMAP)</span></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"><a class="line" href="class_pin.html"> 31</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_pin.html">Pin</a> : <span class="keyword">public</span> <a class="code" href="class_selectable.html">Selectable</a> {</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">volatile</span> RwReg *mPort;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">volatile</span> RoReg *mInPort;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; RwReg mPinMask;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; uint8_t mPin;</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="keywordtype">void</span> _init() {</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; mPinMask = digitalPinToBitMask(mPin);</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; mPort = portOutputRegister(digitalPinToPort(mPin));</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; mInPort = portInputRegister(digitalPinToPort(mPin));</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="keyword">public</span>:</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="class_pin.html">Pin</a>(<span class="keywordtype">int</span> pin) : mPin(pin) { _init(); }</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; <span class="keyword">inline</span> <span class="keywordtype">void</span> setOutput() { pinMode(mPin, OUTPUT); }</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> setInput() { pinMode(mPin, INPUT); }</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">typedef</span> <span class="keyword">volatile</span> RwReg * port_ptr_t;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">typedef</span> RwReg port_t;</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="keyword">inline</span> <span class="keywordtype">void</span> hi() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *mPort |= mPinMask; }</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> lo() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *mPort &amp;= ~mPinMask; }</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> setOutput() { pinMode(mPin, OUTPUT); }</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> setInput() { pinMode(mPin, INPUT); }</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> strobe() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { toggle(); toggle(); }</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> toggle() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *mInPort = mPinMask; }</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> hi() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *mPort |= mPinMask; }</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> lo() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *mPort &amp;= ~mPinMask; }</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; <span class="keyword">inline</span> <span class="keywordtype">void</span> hi(<span class="keyword">register</span> port_ptr_t port) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port |= mPinMask; }</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> lo(<span class="keyword">register</span> port_ptr_t port) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port &amp;= ~mPinMask; }</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> set(<span class="keyword">register</span> port_t val) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *mPort = val; }</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> <span class="keywordtype">void</span> fastset(<span class="keyword">register</span> port_ptr_t port, <span class="keyword">register</span> port_t val) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port = val; }</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; port_t hival() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> *mPort | mPinMask; }</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; port_t loval() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> *mPort &amp; ~mPinMask; }</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; port_ptr_t port() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> mPort; }</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; port_t mask() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> mPinMask; }</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="keyword">virtual</span> <span class="keywordtype">void</span> select() { hi(); }</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() { lo(); }</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSelected() { <span class="keywordflow">return</span> (*mPort &amp; mPinMask) == mPinMask; }</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;};</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_output_pin.html"> 70</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_output_pin.html">OutputPin</a> : <span class="keyword">public</span> <a class="code" href="class_pin.html">Pin</a> {</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="class_output_pin.html">OutputPin</a>(<span class="keywordtype">int</span> pin) : <a class="code" href="class_pin.html">Pin</a>(pin) { setOutput(); }</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="l00075"></a><span class="lineno"><a class="line" href="class_input_pin.html"> 75</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_input_pin.html">InputPin</a> : <span class="keyword">public</span> <a class="code" href="class_pin.html">Pin</a> {</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="class_input_pin.html">InputPin</a>(<span class="keywordtype">int</span> pin) : <a class="code" href="class_pin.html">Pin</a>(pin) { setInput(); }</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;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment">// This is the empty code version of the raw pin class, method bodies should be filled in to Do The Right Thing[tm] when making this</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">// available on a new platform</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keyword">class </span><a class="code" href="class_pin.html">Pin</a> : <span class="keyword">public</span> <a class="code" href="class_selectable.html">Selectable</a> {</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">volatile</span> RwReg *mPort;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">volatile</span> RoReg *mInPort;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; RwReg mPinMask;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; uint8_t mPin;</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="keywordtype">void</span> _init() {</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// TODO: fill in init on a new platform</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; mPinMask = 0;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; mPort = NULL;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; mInPort = NULL;</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">public</span>:</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="class_pin.html">Pin</a>(<span class="keywordtype">int</span> pin) : mPin(pin) { _init(); }</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="keywordtype">void</span> setPin(<span class="keywordtype">int</span> pin) { mPin = pin; _init(); }</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="keyword">typedef</span> <span class="keyword">volatile</span> RwReg * port_ptr_t;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">typedef</span> RwReg port_t;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> strobe() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { toggle(); toggle(); }</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> toggle() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *mInPort = mPinMask; }</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; <span class="keyword">inline</span> <span class="keywordtype">void</span> hi(<span class="keyword">register</span> port_ptr_t port) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port |= mPinMask; }</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> lo(<span class="keyword">register</span> port_ptr_t port) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port &amp;= ~mPinMask; }</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> set(<span class="keyword">register</span> port_t val) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *mPort = val; }</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; <span class="keyword">inline</span> <span class="keywordtype">void</span> fastset(<span class="keyword">register</span> port_ptr_t port, <span class="keyword">register</span> port_t val) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port = val; }</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; port_t hival() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> *mPort | mPinMask; }</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; port_t loval() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> *mPort &amp; ~mPinMask; }</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; port_ptr_t port() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> mPort; }</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; port_t mask() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> mPinMask; }</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="keyword">virtual</span> <span class="keywordtype">void</span> select() { hi(); }</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() { lo(); }</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSelected() { <span class="keywordflow">return</span> (*mPort &amp; mPinMask) == mPinMask; }</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"><a class="line" href="class_output_pin.html"> 73</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_output_pin.html">OutputPin</a> : <span class="keyword">public</span> <a class="code" href="class_pin.html">Pin</a> {</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="class_output_pin.html">OutputPin</a>(<span class="keywordtype">int</span> pin) : <a class="code" href="class_pin.html">Pin</a>(pin) { setOutput(); }</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;};</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"><a class="line" href="class_input_pin.html"> 78</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_input_pin.html">InputPin</a> : <span class="keyword">public</span> <a class="code" href="class_pin.html">Pin</a> {</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="class_input_pin.html">InputPin</a>(<span class="keywordtype">int</span> pin) : <a class="code" href="class_pin.html">Pin</a>(pin) { setInput(); }</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"> 82</span>&#160;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment">// This is the empty code version of the raw pin class, method bodies should be filled in to Do The Right Thing[tm] when making this</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">// available on a new platform</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keyword">class </span><a class="code" href="class_pin.html">Pin</a> : <span class="keyword">public</span> <a class="code" href="class_selectable.html">Selectable</a> {</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">volatile</span> RwReg *mPort;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">volatile</span> RoReg *mInPort;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; RwReg mPinMask;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; uint8_t mPin;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">void</span> _init() {</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// TODO: fill in init on a new platform</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; mPinMask = 0;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; mPort = NULL;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; mInPort = NULL;</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="keyword">public</span>:</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="class_pin.html">Pin</a>(<span class="keywordtype">int</span> pin) : mPin(pin) { _init(); }</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; <span class="keywordtype">void</span> setPin(<span class="keywordtype">int</span> pin) { mPin = pin; _init(); }</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="keyword">inline</span> <span class="keywordtype">void</span> setOutput() { <span class="comment">/* TODO: Set pin output */</span> }</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> setInput() { <span class="comment">/* TODO: Set pin input */</span> }</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">typedef</span> <span class="keyword">volatile</span> RwReg * port_ptr_t;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">typedef</span> RwReg port_t;</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="keyword">inline</span> <span class="keywordtype">void</span> hi() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *mPort |= mPinMask; }</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> lo() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *mPort &amp;= ~mPinMask; }</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> setOutput() { <span class="comment">/* TODO: Set pin output */</span> }</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> setInput() { <span class="comment">/* TODO: Set pin input */</span> }</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="keyword">inline</span> <span class="keywordtype">void</span> strobe() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { toggle(); toggle(); }</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> toggle() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *mInPort = mPinMask; }</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> hi() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *mPort |= mPinMask; }</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> lo() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *mPort &amp;= ~mPinMask; }</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">inline</span> <span class="keywordtype">void</span> hi(<span class="keyword">register</span> port_ptr_t port) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port |= mPinMask; }</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> lo(<span class="keyword">register</span> port_ptr_t port) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port &amp;= ~mPinMask; }</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> set(<span class="keyword">register</span> port_t val) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *mPort = val; }</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; <span class="keyword">inline</span> <span class="keywordtype">void</span> fastset(<span class="keyword">register</span> port_ptr_t port, <span class="keyword">register</span> port_t val) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port = val; }</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; port_t hival() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> *mPort | mPinMask; }</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; port_t loval() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> *mPort &amp; ~mPinMask; }</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; port_ptr_t port() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> mPort; }</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; port_t mask() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> mPinMask; }</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="keyword">virtual</span> <span class="keywordtype">void</span> select() { hi(); }</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() { lo(); }</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSelected() { <span class="keywordflow">return</span> (*mPort &amp; mPinMask) == mPinMask; }</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="keyword">class </span><a class="code" href="class_output_pin.html">OutputPin</a> : <span class="keyword">public</span> <a class="code" href="class_pin.html">Pin</a> {</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="class_output_pin.html">OutputPin</a>(<span class="keywordtype">int</span> pin) : <a class="code" href="class_pin.html">Pin</a>(pin) { setOutput(); }</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;<span class="keyword">class </span><a class="code" href="class_input_pin.html">InputPin</a> : <span class="keyword">public</span> <a class="code" href="class_pin.html">Pin</a> {</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="class_input_pin.html">InputPin</a>(<span class="keywordtype">int</span> pin) : <a class="code" href="class_pin.html">Pin</a>(pin) { setInput(); }</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="preprocessor">#endif</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="class_fast_pin.html"> 154</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t PIN&gt; <span class="keyword">class </span><a class="code" href="class_fast_pin.html">FastPin</a> {</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">static</span> RwReg sPinMask;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">static</span> <span class="keyword">volatile</span> RwReg *sPort;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">static</span> <span class="keyword">volatile</span> RoReg *sInPort;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> _init() {</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#if !defined(FASTLED_NO_PINMAP)</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; sPinMask = digitalPinToBitMask(PIN);</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; sPort = portOutputRegister(digitalPinToPort(PIN));</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; sInPort = portInputRegister(digitalPinToPort(PIN));</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor">#endif</span></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;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">typedef</span> <span class="keyword">volatile</span> RwReg * port_ptr_t;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">typedef</span> RwReg port_t;</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="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> setOutput() { _init(); pinMode(PIN, OUTPUT); }</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> setInput() { _init(); pinMode(PIN, INPUT); }</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">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> hi() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *sPort |= sPinMask; }</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> lo() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *sPort &amp;= ~sPinMask; }</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="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> strobe() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { toggle(); toggle(); }</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="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> toggle() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *sInPort = sPinMask; }</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> strobe() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { toggle(); toggle(); }</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> toggle() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *mInPort = mPinMask; }</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> hi(<span class="keyword">register</span> port_ptr_t port) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port |= mPinMask; }</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> lo(<span class="keyword">register</span> port_ptr_t port) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port &amp;= ~mPinMask; }</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> set(<span class="keyword">register</span> port_t val) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *mPort = val; }</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; <span class="keyword">inline</span> <span class="keywordtype">void</span> fastset(<span class="keyword">register</span> port_ptr_t port, <span class="keyword">register</span> port_t val) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port = val; }</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; port_t hival() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> *mPort | mPinMask; }</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; port_t loval() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> *mPort &amp; ~mPinMask; }</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; port_ptr_t port() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> mPort; }</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; port_t mask() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> mPinMask; }</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="keyword">virtual</span> <span class="keywordtype">void</span> select() { hi(); }</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() { lo(); }</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSelected() { <span class="keywordflow">return</span> (*mPort &amp; mPinMask) == mPinMask; }</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;};</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="keyword">class </span><a class="code" href="class_output_pin.html">OutputPin</a> : <span class="keyword">public</span> <a class="code" href="class_pin.html">Pin</a> {</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="class_output_pin.html">OutputPin</a>(<span class="keywordtype">int</span> pin) : <a class="code" href="class_pin.html">Pin</a>(pin) { setOutput(); }</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="keyword">class </span><a class="code" href="class_input_pin.html">InputPin</a> : <span class="keyword">public</span> <a class="code" href="class_pin.html">Pin</a> {</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="class_input_pin.html">InputPin</a>(<span class="keywordtype">int</span> pin) : <a class="code" href="class_pin.html">Pin</a>(pin) { setInput(); }</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="preprocessor">#endif</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor">#ifdef FASTLED_FORCE_SOFTWARE_PINS</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="class_fast_pin.html"> 158</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t PIN&gt; <span class="keyword">class </span><a class="code" href="class_fast_pin.html">FastPin</a> {</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">static</span> RwReg sPinMask;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">static</span> <span class="keyword">volatile</span> RwReg *sPort;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">static</span> <span class="keyword">volatile</span> RoReg *sInPort;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> _init() {</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor">#if !defined(FASTLED_NO_PINMAP)</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; sPinMask = digitalPinToBitMask(PIN);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; sPort = portOutputRegister(digitalPinToPort(PIN));</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; sInPort = portInputRegister(digitalPinToPort(PIN));</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor">#endif</span></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="keyword">public</span>:</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">typedef</span> <span class="keyword">volatile</span> RwReg * port_ptr_t;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">typedef</span> RwReg port_t;</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="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> setOutput() { _init(); pinMode(PIN, OUTPUT); }</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> setInput() { _init(); pinMode(PIN, INPUT); }</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; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> hi() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *sPort |= sPinMask; }</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> lo() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *sPort &amp;= ~sPinMask; }</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; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> hi(<span class="keyword">register</span> port_ptr_t port) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port |= sPinMask; }</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> lo(<span class="keyword">register</span> port_ptr_t port) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port &amp;= ~sPinMask; }</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> set(<span class="keyword">register</span> port_t val) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *sPort = val; }</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> strobe() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { toggle(); toggle(); }</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; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> toggle() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *sInPort = sPinMask; }</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; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> fastset(<span class="keyword">register</span> port_ptr_t port, <span class="keyword">register</span> port_t val) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port = val; }</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">static</span> port_t hival() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> *sPort | sPinMask; }</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">static</span> port_t loval() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> *sPort &amp; ~sPinMask; }</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">static</span> port_ptr_t port() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> sPort; }</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">static</span> port_t mask() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> sPinMask; }</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;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t PIN&gt; RwReg <a class="code" href="class_fast_pin.html">FastPin&lt;PIN&gt;::sPinMask</a>;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t PIN&gt; <span class="keyword">volatile</span> RwReg *<a class="code" href="class_fast_pin.html">FastPin&lt;PIN&gt;::sPort</a>;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t PIN&gt; <span class="keyword">volatile</span> RoReg *<a class="code" href="class_fast_pin.html">FastPin&lt;PIN&gt;::sInPort</a>;</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> hi(<span class="keyword">register</span> port_ptr_t port) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port |= sPinMask; }</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> lo(<span class="keyword">register</span> port_ptr_t port) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port &amp;= ~sPinMask; }</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> set(<span class="keyword">register</span> port_t val) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *sPort = val; }</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">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> fastset(<span class="keyword">register</span> port_ptr_t port, <span class="keyword">register</span> port_t val) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { *port = val; }</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="keyword">static</span> port_t hival() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> *sPort | sPinMask; }</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">static</span> port_t loval() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> *sPort &amp; ~sPinMask; }</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">static</span> port_ptr_t port() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> sPort; }</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">static</span> port_t mask() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> sPinMask; }</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;</div>
-<div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="class_fast_pin_b_b.html"> 195</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t PIN&gt; <span class="keyword">class </span><a class="code" href="class_fast_pin_b_b.html">FastPinBB</a> : <span class="keyword">public</span> <a class="code" href="class_fast_pin.html">FastPin</a>&lt;PIN&gt; {};</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;<span class="keyword">typedef</span> <span class="keyword">volatile</span> uint32_t &amp; reg32_t;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="keyword">typedef</span> <span class="keyword">volatile</span> uint32_t * ptr_reg32_t;</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;FASTLED_NAMESPACE_END</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;<span class="preprocessor">#endif // __INC_FASTPIN_H</span></div>
-<div class="ttc" id="class_pin_html"><div class="ttname"><a href="class_pin.html">Pin</a></div><div class="ttdef"><b>Definition:</b> fastpin.h:28</div></div>
-<div class="ttc" id="class_output_pin_html"><div class="ttname"><a href="class_output_pin.html">OutputPin</a></div><div class="ttdef"><b>Definition:</b> fastpin.h:70</div></div>
-<div class="ttc" id="class_fast_pin_b_b_html"><div class="ttname"><a href="class_fast_pin_b_b.html">FastPinBB</a></div><div class="ttdef"><b>Definition:</b> fastpin.h:195</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:19</div></div>
-<div class="ttc" id="class_fast_pin_html"><div class="ttname"><a href="class_fast_pin.html">FastPin</a></div><div class="ttdoc">The simplest level of Pin class. </div><div class="ttdef"><b>Definition:</b> fastpin.h:154</div></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t PIN&gt; RwReg <a class="code" href="class_fast_pin.html">FastPin&lt;PIN&gt;::sPinMask</a>;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t PIN&gt; <span class="keyword">volatile</span> RwReg *<a class="code" href="class_fast_pin.html">FastPin&lt;PIN&gt;::sPort</a>;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t PIN&gt; <span class="keyword">volatile</span> RoReg *<a class="code" href="class_fast_pin.html">FastPin&lt;PIN&gt;::sInPort</a>;</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;<span class="preprocessor">#else</span></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="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t PIN&gt; <span class="keyword">class </span><a class="code" href="class_fast_pin.html">FastPin</a> {</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; constexpr <span class="keyword">static</span> <span class="keywordtype">bool</span> validpin() { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</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; static_assert(validpin(), <span class="stringliteral">&quot;Invalid pin specified&quot;</span>);</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; <span class="keyword">static</span> <span class="keywordtype">void</span> _init() {</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="keyword">public</span>:</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">typedef</span> <span class="keyword">volatile</span> RwReg * port_ptr_t;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">typedef</span> RwReg port_t;</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; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> setOutput() { }</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> setInput() { }</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="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> hi() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { }</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> lo() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { }</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="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> strobe() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { }</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; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> toggle() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { }</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="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> hi(<span class="keyword">register</span> port_ptr_t port) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { }</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> lo(<span class="keyword">register</span> port_ptr_t port) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { }</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> set(<span class="keyword">register</span> port_t val) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { }</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="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> fastset(<span class="keyword">register</span> port_ptr_t port, <span class="keyword">register</span> port_t val) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { }</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="keyword">static</span> port_t hival() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> 0; }</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">static</span> port_t loval() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> 0;}</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">static</span> port_ptr_t port() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> NULL; }</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">static</span> port_t mask() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { <span class="keywordflow">return</span> 0; }</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="preprocessor">#endif</span></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"><a class="line" href="class_fast_pin_b_b.html"> 236</a></span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t PIN&gt; <span class="keyword">class </span><a class="code" href="class_fast_pin_b_b.html">FastPinBB</a> : <span class="keyword">public</span> <a class="code" href="class_fast_pin.html">FastPin</a>&lt;PIN&gt; {};</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="keyword">typedef</span> <span class="keyword">volatile</span> uint32_t &amp; reg32_t;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="keyword">typedef</span> <span class="keyword">volatile</span> uint32_t * ptr_reg32_t;</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;FASTLED_NAMESPACE_END</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="preprocessor">#pragma GCC diagnostic pop</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor">#endif // __INC_FASTPIN_H</span></div>
+<div class="ttc" id="class_pin_html"><div class="ttname"><a href="class_pin.html">Pin</a></div><div class="ttdef"><b>Definition:</b> fastpin.h:31</div></div>
+<div class="ttc" id="class_output_pin_html"><div class="ttname"><a href="class_output_pin.html">OutputPin</a></div><div class="ttdef"><b>Definition:</b> fastpin.h:73</div></div>
+<div class="ttc" id="class_fast_pin_b_b_html"><div class="ttname"><a href="class_fast_pin_b_b.html">FastPinBB</a></div><div class="ttdef"><b>Definition:</b> fastpin.h:236</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:22</div></div>
+<div class="ttc" id="class_fast_pin_html"><div class="ttname"><a href="class_fast_pin.html">FastPin</a></div><div class="ttdoc">The simplest level of Pin class. </div><div class="ttdef"><b>Definition:</b> fastpin.h:158</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:85</div></div>
-<div class="ttc" id="class_input_pin_html"><div class="ttname"><a href="class_input_pin.html">InputPin</a></div><div class="ttdef"><b>Definition:</b> fastpin.h:75</div></div>
+<div class="ttc" id="class_input_pin_html"><div class="ttname"><a href="class_input_pin.html">InputPin</a></div><div class="ttdef"><b>Definition:</b> fastpin.h:78</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 18137b8f..a64df77d 100644
--- a/docs/3.1/fastspi_8h_source.html
+++ b/docs/3.1/fastspi_8h_source.html
@@ -110,102 +110,110 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// mappings are known at compile time.</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</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="l00027"></a><span class="lineno"><a class="line" href="class_s_p_i_output.html"> 27</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a> : <span class="keyword">public</span> <a class="code" href="class_a_v_r_software_s_p_i_output.html">AVRSoftwareSPIOutput</a>&lt;_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER&gt; {};</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">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="l00030"></a><span class="lineno"><a class="line" href="class_software_s_p_i_output.html"> 30</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_software_s_p_i_output.html">SoftwareSPIOutput</a> : <span class="keyword">public</span> <a class="code" href="class_a_v_r_software_s_p_i_output.html">AVRSoftwareSPIOutput</a>&lt;_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER&gt; {};</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="preprocessor">#ifndef FASTLED_FORCE_SOFTWARE_SPI</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#if defined(SPI_DATA) &amp;&amp; defined(SPI_CLOCK)</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="preprocessor">#if defined(FASTLED_TEENSY3) &amp;&amp; defined(ARM_HARDWARE_SPI)</span></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="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
-<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="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"> 38</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a>&lt;SPI_DATA, SPI_CLOCK, SPI_SPEED&gt; : <span class="keyword">public</span> ARMHardwareSPIOutput&lt;SPI_DATA, SPI_CLOCK, SPI_SPEED, 0x4002C000&gt; {};</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="preprocessor">#if defined(SPI2_DATA)</span></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="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="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"> 43</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a>&lt;SPI2_DATA, SPI2_CLOCK, SPI_SPEED&gt; : <span class="keyword">public</span> ARMHardwareSPIOutput&lt;SPI2_DATA, SPI2_CLOCK, SPI_SPEED, 0x4002C000&gt; {};</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#if !defined(FASTLED_ALL_PINS_HARDWARE_SPI)</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</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="l00028"></a><span class="lineno"><a class="line" href="class_s_p_i_output.html"> 28</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a> : <span class="keyword">public</span> <a class="code" href="class_a_v_r_software_s_p_i_output.html">AVRSoftwareSPIOutput</a>&lt;_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER&gt; {};</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#endif</span></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;<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="l00032"></a><span class="lineno"><a class="line" href="class_software_s_p_i_output.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_software_s_p_i_output.html">SoftwareSPIOutput</a> : <span class="keyword">public</span> <a class="code" href="class_a_v_r_software_s_p_i_output.html">AVRSoftwareSPIOutput</a>&lt;_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER&gt; {};</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="preprocessor">#ifndef FASTLED_FORCE_SOFTWARE_SPI</span></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="preprocessor">#if defined(NRF51) &amp;&amp; defined(FASTLED_ALL_PINS_HARDWARE_SPI)</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</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="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a> : <span class="keyword">public</span> NRF51SPIOutput&lt;_DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER&gt; {};</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#endif</span></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="preprocessor">#if defined(SPI_DATA) &amp;&amp; defined(SPI_CLOCK)</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="preprocessor">#if defined(FASTLED_TEENSY3) &amp;&amp; defined(ARM_HARDWARE_SPI)</span></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;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="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"> 46</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a>&lt;SPI_DATA, SPI2_CLOCK, SPI_SPEED&gt; : <span class="keyword">public</span> ARMHardwareSPIOutput&lt;SPI_DATA, SPI2_CLOCK, SPI_SPEED, 0x4002C000&gt; {};</div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="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"> 46</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a>&lt;SPI_DATA, SPI_CLOCK, SPI_SPEED&gt; : <span class="keyword">public</span> ARMHardwareSPIOutput&lt;SPI_DATA, SPI_CLOCK, SPI_SPEED, 0x4002C000&gt; {};</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="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="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"> 49</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a>&lt;SPI2_DATA, SPI_CLOCK, SPI_SPEED&gt; : <span class="keyword">public</span> ARMHardwareSPIOutput&lt;SPI2_DATA, SPI_CLOCK, SPI_SPEED, 0x4002C000&gt; {};</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif</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">#elif defined(FASTLED_TEENSYLC) &amp;&amp; defined(ARM_HARDWARE_SPI)</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;<span class="preprocessor">#define DECLARE_SPI0(__DATA,__CLOCK) template&lt;uint8_t SPI_SPEED&gt;\</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> class SPIOutput&lt;__DATA, __CLOCK, SPI_SPEED&gt; : public ARMHardwareSPIOutput&lt;__DATA, __CLOCK, SPI_SPEED, 0x40076000&gt; {};</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor"> #define DECLARE_SPI1(__DATA,__CLOCK) template&lt;uint8_t SPI_SPEED&gt;\</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor"> class SPIOutput&lt;__DATA, __CLOCK, SPI_SPEED&gt; : public ARMHardwareSPIOutput&lt;__DATA, __CLOCK, SPI_SPEED, 0x40077000&gt; {};</span></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;DECLARE_SPI0(7,13);</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;DECLARE_SPI0(8,13);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;DECLARE_SPI0(11,13);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;DECLARE_SPI0(12,13);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;DECLARE_SPI0(7,14);</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;DECLARE_SPI0(8,14);</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;DECLARE_SPI0(11,14);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;DECLARE_SPI0(12,14);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;DECLARE_SPI1(0,20);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;DECLARE_SPI1(1,20);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;DECLARE_SPI1(21,20);</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;<span class="preprocessor">#elif defined(__SAM3X8E__)</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;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a>&lt;SPI_DATA, SPI_CLOCK, SPI_SPEED&gt; : <span class="keyword">public</span> SAMHardwareSPIOutput&lt;SPI_DATA, SPI_CLOCK, SPI_SPEED&gt; {};</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="preprocessor">#elif defined(AVR_HARDWARE_SPI)</span></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="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a>&lt;SPI_DATA, SPI_CLOCK, SPI_SPEED&gt; : <span class="keyword">public</span> AVRHardwareSPIOutput&lt;SPI_DATA, SPI_CLOCK, SPI_SPEED&gt; {};</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if defined(SPI2_DATA)</span></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="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="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"> 51</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a>&lt;SPI2_DATA, SPI2_CLOCK, SPI_SPEED&gt; : <span class="keyword">public</span> ARMHardwareSPIOutput&lt;SPI2_DATA, SPI2_CLOCK, SPI_SPEED, 0x4002C000&gt; {};</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;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="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"> 54</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a>&lt;SPI_DATA, SPI2_CLOCK, SPI_SPEED&gt; : <span class="keyword">public</span> ARMHardwareSPIOutput&lt;SPI_DATA, SPI2_CLOCK, SPI_SPEED, 0x4002C000&gt; {};</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="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="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"> 57</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a>&lt;SPI2_DATA, SPI_CLOCK, SPI_SPEED&gt; : <span class="keyword">public</span> ARMHardwareSPIOutput&lt;SPI2_DATA, SPI_CLOCK, SPI_SPEED, 0x4002C000&gt; {};</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">#elif defined(FASTLED_TEENSYLC) &amp;&amp; defined(ARM_HARDWARE_SPI)</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;<span class="preprocessor">#define DECLARE_SPI0(__DATA,__CLOCK) template&lt;uint8_t SPI_SPEED&gt;\</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor"> class SPIOutput&lt;__DATA, __CLOCK, SPI_SPEED&gt; : public ARMHardwareSPIOutput&lt;__DATA, __CLOCK, SPI_SPEED, 0x40076000&gt; {};</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor"> #define DECLARE_SPI1(__DATA,__CLOCK) template&lt;uint8_t SPI_SPEED&gt;\</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor"> class SPIOutput&lt;__DATA, __CLOCK, SPI_SPEED&gt; : public ARMHardwareSPIOutput&lt;__DATA, __CLOCK, SPI_SPEED, 0x40077000&gt; {};</span></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;DECLARE_SPI0(7,13);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;DECLARE_SPI0(8,13);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;DECLARE_SPI0(11,13);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;DECLARE_SPI0(12,13);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;DECLARE_SPI0(7,14);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;DECLARE_SPI0(8,14);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;DECLARE_SPI0(11,14);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;DECLARE_SPI0(12,14);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;DECLARE_SPI1(0,20);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;DECLARE_SPI1(1,20);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;DECLARE_SPI1(21,20);</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">#elif defined(__SAM3X8E__)</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;<span class="preprocessor">#if defined(SPI_UART0_DATA)</span></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;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="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"> 84</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a>&lt;SPI_UART0_DATA, SPI_UART0_CLOCK, SPI_SPEED&gt; : <span class="keyword">public</span> AVRUSART0SPIOutput&lt;SPI_UART0_DATA, SPI_UART0_CLOCK, SPI_SPEED&gt; {};</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a>&lt;SPI_DATA, SPI_CLOCK, SPI_SPEED&gt; : <span class="keyword">public</span> SAMHardwareSPIOutput&lt;SPI_DATA, SPI_CLOCK, SPI_SPEED&gt; {};</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">#elif defined(AVR_HARDWARE_SPI)</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;<span class="preprocessor">#endif</span></div>
-<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="preprocessor">#if defined(SPI_UART1_DATA)</span></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">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="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"> 91</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a>&lt;SPI_UART1_DATA, SPI_UART1_CLOCK, SPI_SPEED&gt; : <span class="keyword">public</span> AVRUSART1SPIOutput&lt;SPI_UART1_DATA, SPI_UART1_CLOCK, SPI_SPEED&gt; {};</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#endif</span></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="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;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#warning &quot;No hardware SPI pins defined. All SPI access will default to bitbanged output&quot;</span></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">#endif</span></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="comment">// #if defined(USART_DATA) &amp;&amp; defined(USART_CLOCK)</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment">// template&lt;uint8_t SPI_SPEED&gt;</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">// class AVRSPIOutput&lt;USART_DATA, USART_CLOCK, SPI_SPEED&gt; : public AVRUSARTSPIOutput&lt;USART_DATA, USART_CLOCK, SPI_SPEED&gt; {};</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment">// #endif</span></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="preprocessor">#else</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#warning &quot;Forcing software SPI - no hardware SPI for you!&quot;</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#endif</span></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;FASTLED_NAMESPACE_END</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;<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</a></div><div class="ttdef"><b>Definition:</b> fastspi.h:27</div></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a>&lt;SPI_DATA, SPI_CLOCK, SPI_SPEED&gt; : <span class="keyword">public</span> AVRHardwareSPIOutput&lt;SPI_DATA, SPI_CLOCK, SPI_SPEED&gt; {};</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">#if defined(SPI_UART0_DATA)</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="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"> 92</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a>&lt;SPI_UART0_DATA, SPI_UART0_CLOCK, SPI_SPEED&gt; : <span class="keyword">public</span> AVRUSART0SPIOutput&lt;SPI_UART0_DATA, SPI_UART0_CLOCK, SPI_SPEED&gt; {};</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="preprocessor">#endif</span></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="preprocessor">#if defined(SPI_UART1_DATA)</span></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="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="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"> 99</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_p_i_output.html">SPIOutput</a>&lt;SPI_UART1_DATA, SPI_UART1_CLOCK, SPI_SPEED&gt; : <span class="keyword">public</span> AVRUSART1SPIOutput&lt;SPI_UART1_DATA, SPI_UART1_CLOCK, SPI_SPEED&gt; {};</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;<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;<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;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#warning &quot;No hardware SPI pins defined. All SPI access will default to bitbanged output&quot;</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment">// #if defined(USART_DATA) &amp;&amp; defined(USART_CLOCK)</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment">// template&lt;uint8_t SPI_SPEED&gt;</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment">// class AVRSPIOutput&lt;USART_DATA, USART_CLOCK, SPI_SPEED&gt; : public AVRUSARTSPIOutput&lt;USART_DATA, USART_CLOCK, SPI_SPEED&gt; {};</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment">// #endif</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor">#warning &quot;Forcing software SPI - no hardware SPI for you!&quot;</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#endif</span></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;FASTLED_NAMESPACE_END</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;<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</a></div><div class="ttdef"><b>Definition:</b> fastspi.h:28</div></div>
<div class="ttc" id="controller_8h_html"><div class="ttname"><a href="controller_8h.html">controller.h</a></div><div class="ttdoc">base definitions used by led controllers for writing out led data </div></div>
-<div class="ttc" id="class_software_s_p_i_output_html"><div class="ttname"><a href="class_software_s_p_i_output.html">SoftwareSPIOutput</a></div><div class="ttdef"><b>Definition:</b> fastspi.h:30</div></div>
+<div class="ttc" id="class_software_s_p_i_output_html"><div class="ttname"><a href="class_software_s_p_i_output.html">SoftwareSPIOutput</a></div><div class="ttdef"><b>Definition:</b> fastspi.h:32</div></div>
<div class="ttc" id="class_a_v_r_software_s_p_i_output_html"><div class="ttname"><a href="class_a_v_r_software_s_p_i_output.html">AVRSoftwareSPIOutput</a></div><div class="ttdef"><b>Definition:</b> fastspi_bitbang.h:17</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 550f3aec..aa54c636 100644
--- a/docs/3.1/fastspi__bitbang_8h_source.html
+++ b/docs/3.1/fastspi__bitbang_8h_source.html
@@ -439,15 +439,15 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;FASTLED_NAMESPACE_END</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;<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:184</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:19</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:187</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:22</div></div>
<div class="ttc" id="class_a_v_r_software_s_p_i_output_html"><div class="ttname"><a href="class_a_v_r_software_s_p_i_output.html">AVRSoftwareSPIOutput</a></div><div class="ttdef"><b>Definition:</b> fastspi_bitbang.h:17</div></div>
<div class="ttc" id="fastled__delay_8h_html"><div class="ttname"><a href="fastled__delay_8h.html">fastled_delay.h</a></div><div class="ttdoc">Utility functions and classes for managing delaycycles. </div></div>
-<div class="ttc" id="class_fast_pin_html"><div class="ttname"><a href="class_fast_pin.html">FastPin</a></div><div class="ttdoc">The simplest level of Pin class. </div><div class="ttdef"><b>Definition:</b> fastpin.h:154</div></div>
+<div class="ttc" id="class_fast_pin_html"><div class="ttname"><a href="class_fast_pin.html">FastPin</a></div><div class="ttdoc">The simplest level of Pin class. </div><div class="ttdef"><b>Definition:</b> fastpin.h:158</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 98e3b341..329021e0 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 1e990342..a1747d49 100644
--- a/docs/3.1/fastspi__nop_8h_source.html
+++ b/docs/3.1/fastspi__nop_8h_source.html
@@ -93,49 +93,62 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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="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="l00010"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html"> 10</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput</a> {</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>
<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="keyword">public</span>:</div>
-<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="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput</a>() { m_pSelect = NULL; }</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <a class="code" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput</a>(<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="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="l00018"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#a6fca9a7e475aecae123879044d33f195"> 18</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_n_o_p_s_p_i_output.html#a6fca9a7e475aecae123879044d33f195">setSelect</a>(<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="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="l00021"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#ad9ff9bf62427b69e3bb578699e0ce561"> 21</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_n_o_p_s_p_i_output.html#ad9ff9bf62427b69e3bb578699e0ce561">init</a>() { <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="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="l00024"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#ae07bb6f787879f28979cccec9ec4965d"> 24</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_n_o_p_s_p_i_output.html#ae07bb6f787879f28979cccec9ec4965d">select</a>() { <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="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="l00027"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#a0599fbdf5e04a633d24ff17033443237"> 27</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_n_o_p_s_p_i_output.html#a0599fbdf5e04a633d24ff17033443237">release</a>() { <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="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">void</span> waitFully();</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_n_o_p_s_p_i_output.html#a6d1c46106879fc835ad6ba8149b20068">waitFully</a>();</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</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="l00033"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637"> 33</a></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> <a class="code" href="class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637">writeBit</a>(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="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="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="l00036"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#af5485fc346e12c50480b969e5b242636"> 36</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_n_o_p_s_p_i_output.html#af5485fc346e12c50480b969e5b242636">writeByte</a>(uint8_t b) { <span class="comment">/* TODO */</span> }</div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#a31ccabe3e4987751ad67a5d06e502df2"> 38</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_n_o_p_s_p_i_output.html#a31ccabe3e4987751ad67a5d06e502df2">writeWord</a>(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="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="l00041"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#a7c67ce1f9d44cfcac9b94fa9f097835f"> 41</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_n_o_p_s_p_i_output.html#a7c67ce1f9d44cfcac9b94fa9f097835f">writeBytesValueRaw</a>(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="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="l00044"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#a2f8e72323c827eb869b222b5a36ebbc1"> 44</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_n_o_p_s_p_i_output.html#a2f8e72323c827eb869b222b5a36ebbc1">writeBytesValue</a>(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="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="l00047"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#a7b33548cfee1f5cda7a8a48fa45ee460"> 47</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_n_o_p_s_p_i_output.html#a7b33548cfee1f5cda7a8a48fa45ee460">writeBytes</a>(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="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="l00050"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637"> 50</a></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> <a class="code" href="class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637">writeBit</a>(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="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="l00053"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#aa192a8b0f727e7c9fc399e94532e287f"> 53</a></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> <a class="code" href="class_n_o_p_s_p_i_output.html#aa192a8b0f727e7c9fc399e94532e287f">writePixels</a>(<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:184</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:19</div></div>
+<div class="ttc" id="class_n_o_p_s_p_i_output_html_a0599fbdf5e04a633d24ff17033443237"><div class="ttname"><a href="class_n_o_p_s_p_i_output.html#a0599fbdf5e04a633d24ff17033443237">NOPSPIOutput::release</a></div><div class="ttdeci">void release()</div><div class="ttdoc">release the CS select </div><div class="ttdef"><b>Definition:</b> fastspi_nop.h:27</div></div>
+<div class="ttc" id="class_n_o_p_s_p_i_output_html_a7b33548cfee1f5cda7a8a48fa45ee460"><div class="ttname"><a href="class_n_o_p_s_p_i_output.html#a7b33548cfee1f5cda7a8a48fa45ee460">NOPSPIOutput::writeBytes</a></div><div class="ttdeci">void writeBytes(uint8_t *data, int len)</div><div class="ttdoc">A full cycle of writing a raw block of data out, including select, release, and waiting. </div><div class="ttdef"><b>Definition:</b> fastspi_nop.h:47</div></div>
+<div class="ttc" id="class_n_o_p_s_p_i_output_html_a9b0cd7fa63b1cff86c61f796aa8a6637"><div class="ttname"><a href="class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637">NOPSPIOutput::writeBit</a></div><div class="ttdeci">static void writeBit(uint8_t b)</div><div class="ttdoc">not the most efficient mechanism in the world - but should be enough for sm16716 and friends ...</div><div class="ttdef"><b>Definition:</b> fastspi_nop.h:33</div></div>
+<div class="ttc" id="class_n_o_p_s_p_i_output_html_af5485fc346e12c50480b969e5b242636"><div class="ttname"><a href="class_n_o_p_s_p_i_output.html#af5485fc346e12c50480b969e5b242636">NOPSPIOutput::writeByte</a></div><div class="ttdeci">void writeByte(uint8_t b)</div><div class="ttdoc">write a byte out via SPI (returns immediately on writing register) </div><div class="ttdef"><b>Definition:</b> fastspi_nop.h:36</div></div>
+<div class="ttc" id="class_n_o_p_s_p_i_output_html_a6fca9a7e475aecae123879044d33f195"><div class="ttname"><a href="class_n_o_p_s_p_i_output.html#a6fca9a7e475aecae123879044d33f195">NOPSPIOutput::setSelect</a></div><div class="ttdeci">void setSelect(Selectable *pSelect)</div><div class="ttdoc">set the object representing the selectable </div><div class="ttdef"><b>Definition:</b> fastspi_nop.h:18</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:187</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:22</div></div>
+<div class="ttc" id="class_n_o_p_s_p_i_output_html_ad9ff9bf62427b69e3bb578699e0ce561"><div class="ttname"><a href="class_n_o_p_s_p_i_output.html#ad9ff9bf62427b69e3bb578699e0ce561">NOPSPIOutput::init</a></div><div class="ttdeci">void init()</div><div class="ttdoc">initialize the SPI subssytem </div><div class="ttdef"><b>Definition:</b> fastspi_nop.h:21</div></div>
+<div class="ttc" id="class_n_o_p_s_p_i_output_html"><div class="ttname"><a href="class_n_o_p_s_p_i_output.html">NOPSPIOutput</a></div><div class="ttdoc">A nop/stub class, mostly to show the SPI methods that are needed/used by the various SPI chipset impl...</div><div class="ttdef"><b>Definition:</b> fastspi_nop.h:10</div></div>
+<div class="ttc" id="class_n_o_p_s_p_i_output_html_ae07bb6f787879f28979cccec9ec4965d"><div class="ttname"><a href="class_n_o_p_s_p_i_output.html#ae07bb6f787879f28979cccec9ec4965d">NOPSPIOutput::select</a></div><div class="ttdeci">void select()</div><div class="ttdoc">latch the CS select </div><div class="ttdef"><b>Definition:</b> fastspi_nop.h:24</div></div>
+<div class="ttc" id="class_n_o_p_s_p_i_output_html_a2f8e72323c827eb869b222b5a36ebbc1"><div class="ttname"><a href="class_n_o_p_s_p_i_output.html#a2f8e72323c827eb869b222b5a36ebbc1">NOPSPIOutput::writeBytesValue</a></div><div class="ttdeci">void writeBytesValue(uint8_t value, int len)</div><div class="ttdoc">A full cycle of writing a value for len bytes, including select, release, and waiting. </div><div class="ttdef"><b>Definition:</b> fastspi_nop.h:44</div></div>
+<div class="ttc" id="class_n_o_p_s_p_i_output_html_a7c67ce1f9d44cfcac9b94fa9f097835f"><div class="ttname"><a href="class_n_o_p_s_p_i_output.html#a7c67ce1f9d44cfcac9b94fa9f097835f">NOPSPIOutput::writeBytesValueRaw</a></div><div class="ttdeci">static void writeBytesValueRaw(uint8_t value, int len)</div><div class="ttdoc">A raw set of writing byte values, assumes setup/init/waiting done elsewhere (static for use by adjust...</div><div class="ttdef"><b>Definition:</b> fastspi_nop.h:41</div></div>
+<div class="ttc" id="class_n_o_p_s_p_i_output_html_a6d1c46106879fc835ad6ba8149b20068"><div class="ttname"><a href="class_n_o_p_s_p_i_output.html#a6d1c46106879fc835ad6ba8149b20068">NOPSPIOutput::waitFully</a></div><div class="ttdeci">void waitFully()</div><div class="ttdoc">wait until all queued up data has been written </div></div>
+<div class="ttc" id="class_n_o_p_s_p_i_output_html_aa192a8b0f727e7c9fc399e94532e287f"><div class="ttname"><a href="class_n_o_p_s_p_i_output.html#aa192a8b0f727e7c9fc399e94532e287f">NOPSPIOutput::writePixels</a></div><div class="ttdeci">void writePixels(PixelController&lt; RGB_ORDER &gt; pixels)</div><div class="ttdoc">write out pixel data from the given PixelController object </div><div class="ttdef"><b>Definition:</b> fastspi_nop.h:53</div></div>
+<div class="ttc" id="class_n_o_p_s_p_i_output_html_a31ccabe3e4987751ad67a5d06e502df2"><div class="ttname"><a href="class_n_o_p_s_p_i_output.html#a31ccabe3e4987751ad67a5d06e502df2">NOPSPIOutput::writeWord</a></div><div class="ttdeci">void writeWord(uint16_t w)</div><div class="ttdoc">write a word out via SPI (returns immediately on writing register) </div><div class="ttdef"><b>Definition:</b> fastspi_nop.h:38</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 e783bd89..c8a1fae7 100644
--- a/docs/3.1/fastspi__ref_8h_source.html
+++ b/docs/3.1/fastspi__ref_8h_source.html
@@ -95,7 +95,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// A skeletal implementation of hardware SPI support. Fill in the necessary code for init, waiting, and writing. The rest of</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// the method implementations should provide a starting point, even if not hte most efficient to start with</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</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="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">class </span>REFHardwareSPIOutput {</div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_r_e_f_hardware_s_p_i_output.html"> 9</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput</a> {</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="class_selectable.html">Selectable</a> *m_pSelect;</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; SAMHardwareSPIOutput() { m_pSelect = NULL; }</div>
@@ -108,10 +108,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordtype">void</span> init() { <span class="comment">/* TODO */</span> }</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="comment">// latch the CS select</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">void</span> <span class="keyword">inline</span> select() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) { <span class="keywordflow">if</span>(m_pSelect != NULL) { m_pSelect-&gt;select(); } } </div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">void</span> <span class="keyword">inline</span> select() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) { <span class="keywordflow">if</span>(m_pSelect != NULL) { m_pSelect-&gt;select(); } }</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; <span class="comment">// release the CS select </span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordtype">void</span> <span class="keyword">inline</span> release() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) { <span class="keywordflow">if</span>(m_pSelect != NULL) { m_pSelect-&gt;release(); } } </div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="comment">// release the CS select</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordtype">void</span> <span class="keyword">inline</span> release() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) { <span class="keywordflow">if</span>(m_pSelect != NULL) { m_pSelect-&gt;release(); } }</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">// wait until all queued up data has been written</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> waitFully() { <span class="comment">/* TODO */</span> }</div>
@@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="comment">// A raw set of writing byte values, assumes setup/init/waiting done elsewhere</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeBytesValueRaw(uint8_t value, <span class="keywordtype">int</span> len) {</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">while</span>(len--) { writeByte(value); }</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</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">// A full cycle of writing a value for len bytes, including select, release, and waiting</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">void</span> writeBytesValue(uint8_t value, <span class="keywordtype">int</span> len) {</div>
@@ -133,16 +133,16 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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; <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="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> D&gt; <span class="keywordtype">void</span> writeBytes(<span class="keyword">register</span> uint8_t *data, <span class="keywordtype">int</span> len) { </div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> D&gt; <span class="keywordtype">void</span> writeBytes(<span class="keyword">register</span> uint8_t *data, <span class="keywordtype">int</span> len) {</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; uint8_t *end = data + len;</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; select();</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// could be optimized to write 16bit words out instead of 8bit bytes</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">while</span>(data != end) { </div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">while</span>(data != end) {</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; writeByte(D::adjust(*data++));</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; D::postBlock(len);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; waitFully();</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; release(); </div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; release();</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;</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// A full cycle of writing a value for len bytes, including select, release, and waiting</span></div>
@@ -153,10 +153,10 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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="comment">// write a block of uint8_ts out in groups of three. len is the total number of uint8_ts to write out. The template</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">// parameters indicate how many uint8_ts to skip at the beginning and/or end of each grouping</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</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> writeBytes3(<span class="keyword">register</span> uint8_t *data, <span class="keywordtype">int</span> len, <span class="keyword">register</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale, <span class="keywordtype">bool</span> advance=<span class="keyword">true</span>, uint8_t skip=0) {</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</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) {</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; select();</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">while</span>(data != end) { </div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span>(FLAGS &amp; FLAG_START_BIT) { </div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">while</span>(data != end) {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span>(FLAGS &amp; FLAG_START_BIT) {</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; writeBit&lt;0&gt;(1);</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; writeByte(D::adjust(pixels.loadAndScale0()));</div>
@@ -171,31 +171,19 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; release();</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">// template instantiations for writeBytes 3</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t FLAGS, EOrder RGB_ORDER&gt; <span class="keywordtype">void</span> writeBytes3(<span class="keyword">register</span> uint8_t *data, <span class="keywordtype">int</span> len, <span class="keyword">register</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale, <span class="keywordtype">bool</span> advance=<span class="keyword">true</span>, uint8_t skip=0) { </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; writeBytes3&lt;FLAGS, DATA_NOP, RGB_ORDER&gt;(data, len, scale, advance, skip); </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="keyword">template</span> &lt;<span class="keyword">class</span> D, EOrder RGB_ORDER&gt; <span class="keywordtype">void</span> writeBytes3(<span class="keyword">register</span> uint8_t *data, <span class="keywordtype">int</span> len, <span class="keyword">register</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale, <span class="keywordtype">bool</span> advance=<span class="keyword">true</span>, uint8_t skip=0) { </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; writeBytes3&lt;0, D, RGB_ORDER&gt;(data, len, scale, advance, skip); </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">template</span> &lt;EOrder RGB_ORDER&gt; <span class="keywordtype">void</span> writeBytes3(<span class="keyword">register</span> uint8_t *data, <span class="keywordtype">int</span> len, <span class="keyword">register</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale, <span class="keywordtype">bool</span> advance=<span class="keyword">true</span>, uint8_t skip=0) { </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; writeBytes3&lt;0, DATA_NOP, RGB_ORDER&gt;(data, len, scale, advance, skip); </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="keywordtype">void</span> writeBytes3(<span class="keyword">register</span> uint8_t *data, <span class="keywordtype">int</span> len, <span class="keyword">register</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale, <span class="keywordtype">bool</span> advance=<span class="keyword">true</span>, uint8_t skip=0) { </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; writeBytes3&lt;0, DATA_NOP, RGB&gt;(data, len, scale, advance, skip); </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;</div>
-<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="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:19</div></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;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_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:187</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:22</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:85</div></div>
+<div class="ttc" id="class_r_e_f_hardware_s_p_i_output_html"><div class="ttname"><a href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput</a></div><div class="ttdef"><b>Definition:</b> fastspi_ref.h:9</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 9c39df2a..479294ec 100644
--- a/docs/3.1/fastspi__types_8h_source.html
+++ b/docs/3.1/fastspi__types_8h_source.html
@@ -102,7 +102,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">static</span> __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t adjust(<span class="keyword">register</span> uint8_t data) { <span class="keywordflow">return</span> data; }</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">static</span> __attribute__((always_inline)) <span class="keyword">inline</span> uint8_t adjust(<span class="keyword">register</span> uint8_t data, <span class="keyword">register</span> uint8_t scale) { <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data, scale); }</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">static</span> __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">void</span> postBlock(<span class="keywordtype">int</span> len) {}</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">static</span> __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">void</span> postBlock(<span class="keywordtype">int</span> <span class="comment">/* len */</span>) { }</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="preprocessor">#define FLAG_START_BIT 0x80</span></div>
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 693f1251..cefe450a 100644
--- a/docs/3.1/files.html
+++ b/docs/3.1/files.html
@@ -100,31 +100,32 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="colorpalettes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="colorpalettes_8h.html" target="_self">colorpalettes.h</a></td><td class="desc">Definitions for the predefined color palettes supplied by FastLED </td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="colorutils_8h_source.html"><span class="icondoc"></span></a><a class="el" href="colorutils_8h.html" target="_self">colorutils.h</a></td><td class="desc">Functions for color fill, paletters, blending, and more </td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="controller_8h_source.html"><span class="icondoc"></span></a><a class="el" href="controller_8h.html" target="_self">controller.h</a></td><td class="desc">Base definitions used by led controllers for writing out led data </td></tr>
-<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="dmx_8h_source.html"><span class="icondoc"></span></a><b>dmx.h</b></td><td class="desc"></td></tr>
-<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_fast_l_e_d_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_fast_l_e_d_8h.html" target="_self">FastLED.h</a></td><td class="desc">Central include file for FastLED, defines the <a class="el" href="class_c_fast_l_e_d.html" title="High level controller interface for FastLED. ">CFastLED</a> class/object </td></tr>
-<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastled__config_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fastled__config_8h.html" target="_self">fastled_config.h</a></td><td class="desc">Definitions that can be used to configure FastLED at compile time </td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastled__delay_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fastled__delay_8h.html" target="_self">fastled_delay.h</a></td><td class="desc">Utility functions and classes for managing delaycycles </td></tr>
-<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastled__progmem_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fastled__progmem_8h.html" target="_self">fastled_progmem.h</a></td><td class="desc">Wrapper definitions to allow seamless use of PROGMEM in environmens that have it </td></tr>
-<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastpin_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fastpin_8h.html" target="_self">fastpin.h</a></td><td class="desc">Class base definitions for defining fast pin access </td></tr>
-<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="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>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="cpp__compat_8h_source.html"><span class="icondoc"></span></a><b>cpp_compat.h</b></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="dmx_8h_source.html"><span class="icondoc"></span></a><b>dmx.h</b></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="_fast_l_e_d_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_fast_l_e_d_8h.html" target="_self">FastLED.h</a></td><td class="desc">Central include file for FastLED, defines the <a class="el" href="class_c_fast_l_e_d.html" title="High level controller interface for FastLED. ">CFastLED</a> class/object </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastled__config_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fastled__config_8h.html" target="_self">fastled_config.h</a></td><td class="desc">Definitions that can be used to configure FastLED at compile time </td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastled__delay_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fastled__delay_8h.html" target="_self">fastled_delay.h</a></td><td class="desc">Utility functions and classes for managing delaycycles </td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastled__progmem_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fastled__progmem_8h.html" target="_self">fastled_progmem.h</a></td><td class="desc">Wrapper definitions to allow seamless use of PROGMEM in environmens that have it </td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="fastpin_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fastpin_8h.html" target="_self">fastpin.h</a></td><td class="desc">Class base definitions for defining fast pin access </td></tr>
+<tr id="row_14_" class="even"><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_15_"><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_16_" class="even"><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_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>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10:37 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 ddd29e0f..ba4d3518 100644
--- a/docs/3.1/functions.html
+++ b/docs/3.1/functions.html
@@ -90,7 +90,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="#index_n"><span>n</span></a></li>
<li><a href="#index_o"><span>o</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
- <li class="current"><a href="#index_s"><span>s</span></a></li>
+ <li><a href="#index_r"><span>r</span></a></li>
+ <li><a href="#index_s"><span>s</span></a></li>
+ <li class="current"><a href="#index_w"><span>w</span></a></li>
</ul>
</div>
</div><!-- top -->
@@ -210,6 +212,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
, <a class="el" href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27">DMXSerialController&lt; RGB_ORDER &gt;</a>
, <a class="el" href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a>
, <a class="el" href="class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
+, <a class="el" href="class_n_o_p_s_p_i_output.html#ad9ff9bf62427b69e3bb578699e0ce561">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
, <a class="el" href="class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
, <a class="el" href="class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
, <a class="el" href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
@@ -250,13 +253,23 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>release()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#a0599fbdf5e04a633d24ff17033443237">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
+</ul>
+
+
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>select()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#ae07bb6f787879f28979cccec9ec4965d">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
<li>setBrightness()
: <a class="el" href="class_c_fast_l_e_d.html#a730ba7d967e882b4b893689cf333b2eb">CFastLED</a>
</li>
<li>setCorrection()
: <a class="el" href="class_c_fast_l_e_d.html#ad266c3e649cc12a6dc49a1e229acc282">CFastLED</a>
-, <a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">CLEDController</a>
+, <a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">CLEDController</a>
</li>
<li>setDither()
: <a class="el" href="class_c_fast_l_e_d.html#a7ae5d3864df01101d82d242c123ffb36">CFastLED</a>
@@ -265,9 +278,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li>setLeds()
: <a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">CLEDController</a>
</li>
+<li>setMaxPowerInMilliWatts()
+: <a class="el" href="class_c_fast_l_e_d.html#ab07d62cdec036af9ede70cbd06ece40f">CFastLED</a>
+</li>
+<li>setMaxPowerInVoltsAndMilliamps()
+: <a class="el" href="class_c_fast_l_e_d.html#a996375a3f4a7b8c096f87d8a93c2b196">CFastLED</a>
+</li>
<li>setMaxRefreshRate()
: <a class="el" href="class_c_fast_l_e_d.html#a1f39e8404db214bbd6a776f52a77d8b1">CFastLED</a>
</li>
+<li>setSelect()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#a6fca9a7e475aecae123879044d33f195">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
<li>setTemperature()
: <a class="el" href="class_c_fast_l_e_d.html#a28c2dfb0ec592db03f3063ade135f19f">CFastLED</a>
, <a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">CLEDController</a>
@@ -299,13 +321,41 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</li>
<li>size()
: <a class="el" href="class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0">CFastLED</a>
-, <a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">CLEDController</a>
+, <a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">CLEDController</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>waitFully()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#a6d1c46106879fc835ad6ba8149b20068">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
+<li>writeBit()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
+<li>writeByte()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#af5485fc346e12c50480b969e5b242636">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
+<li>writeBytes()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#a7b33548cfee1f5cda7a8a48fa45ee460">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
+<li>writeBytesValue()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#a2f8e72323c827eb869b222b5a36ebbc1">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
+<li>writeBytesValueRaw()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#a7c67ce1f9d44cfcac9b94fa9f097835f">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
+<li>writePixels()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#aa192a8b0f727e7c9fc399e94532e287f">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
+<li>writeWord()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#a31ccabe3e4987751ad67a5d06e502df2">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10:37 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
index 83810d92..06d2cb9b 100644
--- a/docs/3.1/functions_enum.html
+++ b/docs/3.1/functions_enum.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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10:37 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_func.html b/docs/3.1/functions_func.html
index 840fd69a..05478389 100644
--- a/docs/3.1/functions_func.html
+++ b/docs/3.1/functions_func.html
@@ -90,7 +90,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="#index_n"><span>n</span></a></li>
<li><a href="#index_o"><span>o</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
- <li class="current"><a href="#index_s"><span>s</span></a></li>
+ <li><a href="#index_r"><span>r</span></a></li>
+ <li><a href="#index_s"><span>s</span></a></li>
+ <li class="current"><a href="#index_w"><span>w</span></a></li>
</ul>
</div>
</div><!-- top -->
@@ -207,6 +209,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
, <a class="el" href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27">DMXSerialController&lt; RGB_ORDER &gt;</a>
, <a class="el" href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a>
, <a class="el" href="class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
+, <a class="el" href="class_n_o_p_s_p_i_output.html#ad9ff9bf62427b69e3bb578699e0ce561">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
, <a class="el" href="class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
, <a class="el" href="class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
, <a class="el" href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
@@ -247,13 +250,23 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</ul>
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>release()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#a0599fbdf5e04a633d24ff17033443237">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
+</ul>
+
+
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>select()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#ae07bb6f787879f28979cccec9ec4965d">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
<li>setBrightness()
: <a class="el" href="class_c_fast_l_e_d.html#a730ba7d967e882b4b893689cf333b2eb">CFastLED</a>
</li>
<li>setCorrection()
: <a class="el" href="class_c_fast_l_e_d.html#ad266c3e649cc12a6dc49a1e229acc282">CFastLED</a>
-, <a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">CLEDController</a>
+, <a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">CLEDController</a>
</li>
<li>setDither()
: <a class="el" href="class_c_fast_l_e_d.html#a7ae5d3864df01101d82d242c123ffb36">CFastLED</a>
@@ -262,9 +275,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li>setLeds()
: <a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">CLEDController</a>
</li>
+<li>setMaxPowerInMilliWatts()
+: <a class="el" href="class_c_fast_l_e_d.html#ab07d62cdec036af9ede70cbd06ece40f">CFastLED</a>
+</li>
+<li>setMaxPowerInVoltsAndMilliamps()
+: <a class="el" href="class_c_fast_l_e_d.html#a996375a3f4a7b8c096f87d8a93c2b196">CFastLED</a>
+</li>
<li>setMaxRefreshRate()
: <a class="el" href="class_c_fast_l_e_d.html#a1f39e8404db214bbd6a776f52a77d8b1">CFastLED</a>
</li>
+<li>setSelect()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#a6fca9a7e475aecae123879044d33f195">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
<li>setTemperature()
: <a class="el" href="class_c_fast_l_e_d.html#a28c2dfb0ec592db03f3063ade135f19f">CFastLED</a>
, <a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">CLEDController</a>
@@ -296,13 +318,41 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</li>
<li>size()
: <a class="el" href="class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0">CFastLED</a>
-, <a class="el" href="class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08">CLEDController</a>
+, <a class="el" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e">CLEDController</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>waitFully()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#a6d1c46106879fc835ad6ba8149b20068">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
+<li>writeBit()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
+<li>writeByte()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#af5485fc346e12c50480b969e5b242636">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
+<li>writeBytes()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#a7b33548cfee1f5cda7a8a48fa45ee460">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
+<li>writeBytesValue()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#a2f8e72323c827eb869b222b5a36ebbc1">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
+<li>writeBytesValueRaw()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#a7c67ce1f9d44cfcac9b94fa9f097835f">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
+<li>writePixels()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#aa192a8b0f727e7c9fc399e94532e287f">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
+</li>
+<li>writeWord()
+: <a class="el" href="class_n_o_p_s_p_i_output.html#a31ccabe3e4987751ad67a5d06e502df2">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10:37 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 46fd9575..e56f6d61 100644
--- a/docs/3.1/globals.html
+++ b/docs/3.1/globals.html
@@ -161,7 +161,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10:37 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_enum.html b/docs/3.1/globals_enum.html
index b83fe678..a1063087 100644
--- a/docs/3.1/globals_enum.html
+++ b/docs/3.1/globals_enum.html
@@ -106,7 +106,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10:37 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_eval.html b/docs/3.1/globals_eval.html
index 95fbaa1c..ca88120e 100644
--- a/docs/3.1/globals_eval.html
+++ b/docs/3.1/globals_eval.html
@@ -133,7 +133,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10:37 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 9fe6c0c3..e686d9ce 100644
--- a/docs/3.1/globals_func.html
+++ b/docs/3.1/globals_func.html
@@ -113,7 +113,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10:37 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_vars.html b/docs/3.1/globals_vars.html
index 6a9af04b..8ee75543 100644
--- a/docs/3.1/globals_vars.html
+++ b/docs/3.1/globals_vars.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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10:37 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 b303d5a4..d95a2a1e 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 3ce279af..2ac5d2c1 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 fc580e11..d30abae7 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 caa964a4..950868fb 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 a525bf4c..38e0b6b6 100644
--- a/docs/3.1/group___colorutils.html
+++ b/docs/3.1/group___colorutils.html
@@ -370,7 +370,7 @@ LONGEST_HUES: hue goes whichever way is longest
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 04e98a3b..78825cfc 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 f2eda97c..cfcbf5a6 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 03a542f4..6c5e9536 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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
index 5c846b01..19600abd 100644
--- a/docs/3.1/group___pixeltypes.html
+++ b/docs/3.1/group___pixeltypes.html
@@ -347,7 +347,7 @@ Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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___power.html b/docs/3.1/group___power.html
index 524f9c12..296e98e6 100644
--- a/docs/3.1/group___power.html
+++ b/docs/3.1/group___power.html
@@ -88,7 +88,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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___random.html b/docs/3.1/group___random.html
index ad852c47..b24ffd28 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 23c2fb3c..25fed97b 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 5aad4eaa..b1dd9295 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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
index 28815543..9f4dadba 100644
--- a/docs/3.1/group__chipsets.html
+++ b/docs/3.1/group__chipsets.html
@@ -114,6 +114,8 @@ Classes</h2></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_s_k6812_controller.html">SK6812Controller&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>
@@ -130,6 +132,8 @@ Classes</h2></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_p_l9823_controller.html">PL9823Controller&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>
@@ -140,7 +144,7 @@ Classes</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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__lib8tion.html b/docs/3.1/group__lib8tion.html
index 2a843fb6..9dcbf1ce 100644
--- a/docs/3.1/group__lib8tion.html
+++ b/docs/3.1/group__lib8tion.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 508c198f..ac7ef71a 100644
--- a/docs/3.1/hierarchy.html
+++ b/docs/3.1/hierarchy.html
@@ -136,40 +136,47 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
<tr id="row_13_4_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_4_" class="arrow" onclick="toggleFolder('13_4_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_l_p_d1886_controller1250_khz.html" target="_self">LPD1886Controller1250Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
<tr id="row_13_4_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_l_p_d1886.html" target="_self">LPD1886&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
<tr id="row_13_5_" class="even"><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_l_p_d1886_controller1250_khz.html" target="_self">LPD1886Controller1250Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_6_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_6_" class="arrow" onclick="toggleFolder('13_6_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_t_m1803_controller400_khz.html" target="_self">TM1803Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_6_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_t_m1803.html" target="_self">TM1803&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_7_" class="even"><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_t_m1803_controller400_khz.html" target="_self">TM1803Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_8_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_8_" class="arrow" onclick="toggleFolder('13_8_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_t_m1809_controller800_khz.html" target="_self">TM1809Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_8_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_t_m1804.html" target="_self">TM1804&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_8_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_t_m1809.html" target="_self">TM1809&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_9_" class="even"><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_t_m1809_controller800_khz.html" target="_self">TM1809Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_10_"><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_t_m1829_controller1600_khz.html" target="_self">TM1829Controller1600Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_11_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_11_" class="arrow" onclick="toggleFolder('13_11_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_t_m1829_controller800_khz.html" target="_self">TM1829Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_11_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_t_m1829.html" target="_self">TM1829&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_12_"><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_t_m1829_controller800_khz.html" target="_self">TM1829Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_13_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_13_" class="arrow" onclick="toggleFolder('13_13_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_u_c_s1903_b_controller800_khz.html" target="_self">UCS1903BController800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_13_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_u_c_s1903_b.html" target="_self">UCS1903B&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_14_"><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_u_c_s1903_b_controller800_khz.html" target="_self">UCS1903BController800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_15_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_15_" class="arrow" onclick="toggleFolder('13_15_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_u_c_s1903_controller400_khz.html" target="_self">UCS1903Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_15_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_u_c_s1903.html" target="_self">UCS1903&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_16_"><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_u_c_s1903_controller400_khz.html" target="_self">UCS1903Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_17_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_17_" class="arrow" onclick="toggleFolder('13_17_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_u_c_s1904_controller800_khz.html" target="_self">UCS1904Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_17_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_u_c_s1904.html" target="_self">UCS1904&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_18_"><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_u_c_s1904_controller800_khz.html" target="_self">UCS1904Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_19_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_19_" class="arrow" onclick="toggleFolder('13_19_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_w_s2811_controller400_khz.html" target="_self">WS2811Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_19_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_w_s2811__400.html" target="_self">WS2811_400&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_20_"><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_s2811_controller400_khz.html" target="_self">WS2811Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_21_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_21_" class="arrow" onclick="toggleFolder('13_21_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_w_s2811_controller800_khz.html" target="_self">WS2811Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_21_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_p_a104.html" target="_self">APA104&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_21_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_w_s2811.html" target="_self">WS2811&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_22_"><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_s2811_controller800_khz.html" target="_self">WS2811Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_23_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_23_" class="arrow" onclick="toggleFolder('13_23_')">&#9658;</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, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_23_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_w_s2812.html" target="_self">WS2812&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_23_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_w_s2812_b.html" target="_self">WS2812B&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_24_"><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, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_25_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_25_" class="arrow" onclick="toggleFolder('13_25_')">&#9658;</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_13_25_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_n_e_o_p_i_x_e_l.html" target="_self">NEOPIXEL&lt; DATA_PIN &gt;</a></td><td class="desc"></td></tr>
-<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_13_6_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_6_" class="arrow" onclick="toggleFolder('13_6_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_p_l9823_controller.html" target="_self">PL9823Controller&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_6_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_p_l9823.html" target="_self">PL9823&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_7_" class="even"><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_p_l9823_controller.html" target="_self">PL9823Controller&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_8_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_8_" class="arrow" onclick="toggleFolder('13_8_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_s_k6812_controller.html" target="_self">SK6812Controller&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_8_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_s_k6812.html" target="_self">SK6812&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_9_" class="even"><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_s_k6812_controller.html" target="_self">SK6812Controller&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_10_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_10_" class="arrow" onclick="toggleFolder('13_10_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_t_m1803_controller400_khz.html" target="_self">TM1803Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_10_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_t_m1803.html" target="_self">TM1803&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_11_" class="even"><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_t_m1803_controller400_khz.html" target="_self">TM1803Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_12_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_12_" class="arrow" onclick="toggleFolder('13_12_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_t_m1809_controller800_khz.html" target="_self">TM1809Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_12_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_t_m1804.html" target="_self">TM1804&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_12_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_t_m1809.html" target="_self">TM1809&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_12_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_t_m1812.html" target="_self">TM1812&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_13_" class="even"><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_t_m1809_controller800_khz.html" target="_self">TM1809Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_14_"><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_t_m1829_controller1600_khz.html" target="_self">TM1829Controller1600Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_15_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_15_" class="arrow" onclick="toggleFolder('13_15_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_t_m1829_controller800_khz.html" target="_self">TM1829Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_15_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_t_m1829.html" target="_self">TM1829&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_16_"><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_t_m1829_controller800_khz.html" target="_self">TM1829Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_17_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_17_" class="arrow" onclick="toggleFolder('13_17_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_u_c_s1903_b_controller800_khz.html" target="_self">UCS1903BController800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_17_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_u_c_s1903_b.html" target="_self">UCS1903B&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_18_"><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_u_c_s1903_b_controller800_khz.html" target="_self">UCS1903BController800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_19_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_19_" class="arrow" onclick="toggleFolder('13_19_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_u_c_s1903_controller400_khz.html" target="_self">UCS1903Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_19_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_u_c_s1903.html" target="_self">UCS1903&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_20_"><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_u_c_s1903_controller400_khz.html" target="_self">UCS1903Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_21_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_21_" class="arrow" onclick="toggleFolder('13_21_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_u_c_s1904_controller800_khz.html" target="_self">UCS1904Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_21_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_u_c_s1904.html" target="_self">UCS1904&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_22_"><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_u_c_s1904_controller800_khz.html" target="_self">UCS1904Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_23_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_23_" class="arrow" onclick="toggleFolder('13_23_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_w_s2811_controller400_khz.html" target="_self">WS2811Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_23_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_w_s2811__400.html" target="_self">WS2811_400&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_24_"><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_s2811_controller400_khz.html" target="_self">WS2811Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_25_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_25_" class="arrow" onclick="toggleFolder('13_25_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_w_s2811_controller800_khz.html" target="_self">WS2811Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_25_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_a_p_a104.html" target="_self">APA104&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_25_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_w_s2811.html" target="_self">WS2811&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<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_s2811_controller800_khz.html" target="_self">WS2811Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_27_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_27_" class="arrow" onclick="toggleFolder('13_27_')">&#9658;</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, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_27_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_w_s2812.html" target="_self">WS2812&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_27_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_w_s2812_b.html" target="_self">WS2812B&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_28_"><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, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_29_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_29_" class="arrow" onclick="toggleFolder('13_29_')">&#9658;</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_13_29_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_n_e_o_p_i_x_e_l.html" target="_self">NEOPIXEL&lt; DATA_PIN &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_30_"><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">Representation of an RGB pixel (Red, Green, Blue) </td></tr>
@@ -182,26 +189,31 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
<tr id="row_22_"><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="union_i_e_e_e754binary32__t.html" target="_self">IEEE754binary32_t</a></td><td class="desc">Typedef for IEEE754 "binary32" float type internals </td></tr>
<tr id="row_23_" 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="unionjust8bits.html" target="_self">just8bits</a></td><td class="desc">Structure representing 8 bits of access </td></tr>
<tr id="row_24_"><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_multi_pixel_controller.html" target="_self">MultiPixelController&lt; LANES, MASK, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_25_" 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_pixel_controller.html" target="_self">PixelController&lt; RGB_ORDER &gt;</a></td><td class="desc">Pixel controller class </td></tr>
-<tr id="row_26_"><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="classq.html" target="_self">q&lt; T, F, I &gt;</a></td><td class="desc">Template class for represneting fractional ints </td></tr>
-<tr id="row_27_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_27_" class="arrow" onclick="toggleFolder('27_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>SAMHardwareSPIOutput</b></td><td class="desc"></td></tr>
-<tr id="row_27_0_"><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_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" target="_self">SPIOutput&lt; SPI_DATA, SPI_CLOCK, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_28_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_28_" class="arrow" onclick="toggleFolder('28_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_selectable.html" target="_self">Selectable</a></td><td class="desc"></td></tr>
-<tr id="row_28_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_28_0_" class="arrow" onclick="toggleFolder('28_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_pin.html" target="_self">Pin</a></td><td class="desc"></td></tr>
-<tr id="row_28_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_input_pin.html" target="_self">InputPin</a></td><td class="desc"></td></tr>
-<tr id="row_28_0_1_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_input_pin.html" target="_self">InputPin</a></td><td class="desc"></td></tr>
-<tr id="row_28_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_output_pin.html" target="_self">OutputPin</a></td><td class="desc"></td></tr>
-<tr id="row_28_0_3_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_output_pin.html" target="_self">OutputPin</a></td><td class="desc"></td></tr>
-<tr id="row_28_1_" class="even"><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_pin.html" target="_self">Pin</a></td><td class="desc"></td></tr>
-<tr id="row_29_"><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="structsub4.html" target="_self">sub4</a></td><td class="desc">Structure representing 32 bits of access </td></tr>
-<tr id="row_30_" 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="uniont_bytes_for_long.html" target="_self">tBytesForLong</a></td><td class="desc"></td></tr>
-<tr id="row_31_"><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="union_t_r_g_b_gradient_palette_entry_union.html" target="_self">TRGBGradientPaletteEntryUnion</a></td><td class="desc"></td></tr>
+<tr id="row_25_" 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_n_o_p_s_p_i_output.html" target="_self">NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="desc">A nop/stub class, mostly to show the SPI methods that are needed/used by the various SPI chipset implementations </td></tr>
+<tr id="row_26_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_26_" class="arrow" onclick="toggleFolder('26_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>NRF51SPIOutput</b></td><td class="desc"></td></tr>
+<tr id="row_26_0_" class="even"><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_s_p_i_output.html" target="_self">SPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_26_1_"><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_s_p_i_output.html" target="_self">SPIOutput&lt; DATA_PIN, CLOCK_PIN, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_27_" 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_pixel_controller.html" target="_self">PixelController&lt; RGB_ORDER &gt;</a></td><td class="desc">Pixel controller class </td></tr>
+<tr id="row_28_"><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="classq.html" target="_self">q&lt; T, F, I &gt;</a></td><td class="desc">Template class for represneting fractional ints </td></tr>
+<tr id="row_29_" 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_r_e_f_hardware_s_p_i_output.html" target="_self">REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_30_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_30_" class="arrow" onclick="toggleFolder('30_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>SAMHardwareSPIOutput</b></td><td class="desc"></td></tr>
+<tr id="row_30_0_" class="even"><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_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" target="_self">SPIOutput&lt; SPI_DATA, SPI_CLOCK, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_31_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_31_" class="arrow" onclick="toggleFolder('31_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_selectable.html" target="_self">Selectable</a></td><td class="desc"></td></tr>
+<tr id="row_31_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_0_" class="arrow" onclick="toggleFolder('31_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_pin.html" target="_self">Pin</a></td><td class="desc"></td></tr>
+<tr id="row_31_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_input_pin.html" target="_self">InputPin</a></td><td class="desc"></td></tr>
+<tr id="row_31_0_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_input_pin.html" target="_self">InputPin</a></td><td class="desc"></td></tr>
+<tr id="row_31_0_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_output_pin.html" target="_self">OutputPin</a></td><td class="desc"></td></tr>
+<tr id="row_31_0_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_output_pin.html" target="_self">OutputPin</a></td><td class="desc"></td></tr>
+<tr id="row_31_1_"><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_pin.html" target="_self">Pin</a></td><td class="desc"></td></tr>
+<tr id="row_32_" 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="structsub4.html" target="_self">sub4</a></td><td class="desc">Structure representing 32 bits of access </td></tr>
+<tr id="row_33_"><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="uniont_bytes_for_long.html" target="_self">tBytesForLong</a></td><td class="desc"></td></tr>
+<tr id="row_34_" 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="union_t_r_g_b_gradient_palette_entry_union.html" target="_self">TRGBGradientPaletteEntryUnion</a></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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 7a375598..1df77c00 100644
--- a/docs/3.1/hsv2rgb_8h_source.html
+++ b/docs/3.1/hsv2rgb_8h_source.html
@@ -182,7 +182,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 e3805612..54cbd63a 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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_0.map b/docs/3.1/inherit_graph_0.map
index 9055498c..9b05351d 100644
--- a/docs/3.1/inherit_graph_0.map
+++ b/docs/3.1/inherit_graph_0.map
@@ -1,6 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_a_v_r_software_s_p_i_output.html" title="AVRSoftwareSPIOutput\l\&lt; _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="5,85,205,141"/>
-<area shape="rect" id="node2" href="$class_software_s_p_i_output.html" title="SoftwareSPIOutput\&lt;\l _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="257,5,449,61"/>
-<area shape="rect" id="node3" href="$class_s_p_i_output.html" title="SPIOutput\&lt; _DATA_PIN,\l _CLOCK_PIN, _SPI_CLOCK\l_DIVIDER \&gt;" alt="" coords="254,85,453,141"/>
-<area shape="rect" id="node4" href="$class_s_p_i_output.html" title="SPIOutput\&lt; DATA_PIN,\l CLOCK_PIN, SPI_SPEED \&gt;" alt="" coords="256,166,451,207"/>
+<area shape="rect" id="node1" href="$class_a_v_r_software_s_p_i_output.html" title="AVRSoftwareSPIOutput\l\&lt; DATA_PIN, CLOCK_PIN,\l SPI_SPEED \&gt;" alt="" coords="6,5,191,61"/>
</map>
diff --git a/docs/3.1/inherit_graph_0.md5 b/docs/3.1/inherit_graph_0.md5
index 223eea47..b535aa3e 100644
--- a/docs/3.1/inherit_graph_0.md5
+++ b/docs/3.1/inherit_graph_0.md5
@@ -1 +1 @@
-2c41106f5574631dc7c5658b11f41088 \ No newline at end of file
+ce85357edaf83c085052f03649cdbbb7 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_0.png b/docs/3.1/inherit_graph_0.png
index db0d74dc..14bcd558 100644
--- a/docs/3.1/inherit_graph_0.png
+++ b/docs/3.1/inherit_graph_0.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_1.map b/docs/3.1/inherit_graph_1.map
index 9b05351d..e7334093 100644
--- a/docs/3.1/inherit_graph_1.map
+++ b/docs/3.1/inherit_graph_1.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_a_v_r_software_s_p_i_output.html" title="AVRSoftwareSPIOutput\l\&lt; DATA_PIN, CLOCK_PIN,\l SPI_SPEED \&gt;" alt="" coords="6,5,191,61"/>
+<area shape="rect" id="node1" href="$unionbitswap__type.html" title="union containing a full 8 bytes to swap the bit orientation on " alt="" coords="6,5,106,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_1.md5 b/docs/3.1/inherit_graph_1.md5
index b535aa3e..2ffcc4e2 100644
--- a/docs/3.1/inherit_graph_1.md5
+++ b/docs/3.1/inherit_graph_1.md5
@@ -1 +1 @@
-ce85357edaf83c085052f03649cdbbb7 \ No newline at end of file
+e43e29c4c6be74769d4fed0dfa782b80 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_1.png b/docs/3.1/inherit_graph_1.png
index 14bcd558..f3c2f42d 100644
--- a/docs/3.1/inherit_graph_1.png
+++ b/docs/3.1/inherit_graph_1.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_10.map b/docs/3.1/inherit_graph_10.map
index 32f82ec3..0a821ae4 100644
--- a/docs/3.1/inherit_graph_10.map
+++ b/docs/3.1/inherit_graph_10.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_c_min_wait.html" title="Class to ensure that a minimum amount of time has kicked since the last time run &#45; and delay if not e..." alt="" coords="5,5,141,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_10.md5 b/docs/3.1/inherit_graph_10.md5
index 2d8ffdc9..719b3650 100644
--- a/docs/3.1/inherit_graph_10.md5
+++ b/docs/3.1/inherit_graph_10.md5
@@ -1 +1 @@
-d061b8cd12ee165a7fe64ff35ddf4c50 \ No newline at end of file
+6f9963c60471b0a8d2dc7f3ff0da2540 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_10.png b/docs/3.1/inherit_graph_10.png
index 315ee837..034d2496 100644
--- a/docs/3.1/inherit_graph_10.png
+++ b/docs/3.1/inherit_graph_10.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_11.map b/docs/3.1/inherit_graph_11.map
index 0a821ae4..a37af540 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="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="6,5,66,32"/>
+<area shape="rect" id="node1" href="$class_c_r_g_b_palette16.html" title="CRGBPalette16" alt="" coords="5,5,123,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_11.md5 b/docs/3.1/inherit_graph_11.md5
index 719b3650..c27b940a 100644
--- a/docs/3.1/inherit_graph_11.md5
+++ b/docs/3.1/inherit_graph_11.md5
@@ -1 +1 @@
-6f9963c60471b0a8d2dc7f3ff0da2540 \ No newline at end of file
+605594545affded9ddb5dfd7ad57af84 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_11.png b/docs/3.1/inherit_graph_11.png
index 034d2496..df846db8 100644
--- a/docs/3.1/inherit_graph_11.png
+++ b/docs/3.1/inherit_graph_11.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_12.map b/docs/3.1/inherit_graph_12.map
index a37af540..b47198d1 100644
--- a/docs/3.1/inherit_graph_12.map
+++ b/docs/3.1/inherit_graph_12.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_c_r_g_b_palette16.html" title="CRGBPalette16" alt="" coords="5,5,123,32"/>
+<area shape="rect" id="node1" href="$class_c_r_g_b_palette256.html" title="CRGBPalette256" alt="" coords="6,5,130,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_12.md5 b/docs/3.1/inherit_graph_12.md5
index c27b940a..04cb5ea1 100644
--- a/docs/3.1/inherit_graph_12.md5
+++ b/docs/3.1/inherit_graph_12.md5
@@ -1 +1 @@
-605594545affded9ddb5dfd7ad57af84 \ No newline at end of file
+77060e775dbe8df58c848605024876ca \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_12.png b/docs/3.1/inherit_graph_12.png
index df846db8..da77fa31 100644
--- a/docs/3.1/inherit_graph_12.png
+++ b/docs/3.1/inherit_graph_12.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_13.map b/docs/3.1/inherit_graph_13.map
index b47198d1..19a9c657 100644
--- a/docs/3.1/inherit_graph_13.map
+++ b/docs/3.1/inherit_graph_13.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_c_r_g_b_palette256.html" title="CRGBPalette256" alt="" coords="6,5,130,32"/>
+<area shape="rect" id="node1" href="$class_d_a_t_a___n_o_p.html" title="Some of the SPI controllers will need to perform a transform on each byte before doing anyting with i..." alt="" coords="5,5,99,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_13.md5 b/docs/3.1/inherit_graph_13.md5
index 04cb5ea1..5f01d4a6 100644
--- a/docs/3.1/inherit_graph_13.md5
+++ b/docs/3.1/inherit_graph_13.md5
@@ -1 +1 @@
-77060e775dbe8df58c848605024876ca \ No newline at end of file
+02cfa8fbc6ed1eb6b3d40d91cc103d4d \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_13.png b/docs/3.1/inherit_graph_13.png
index da77fa31..c6d0e6d7 100644
--- a/docs/3.1/inherit_graph_13.png
+++ b/docs/3.1/inherit_graph_13.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_14.map b/docs/3.1/inherit_graph_14.map
index 19a9c657..855df757 100644
--- a/docs/3.1/inherit_graph_14.map
+++ b/docs/3.1/inherit_graph_14.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_d_a_t_a___n_o_p.html" title="Some of the SPI controllers will need to perform a transform on each byte before doing anyting with i..." alt="" coords="5,5,99,32"/>
+<area shape="rect" id="node1" href="$class_fast_pin.html" title="FastPin\&lt; CLOCK_PIN \&gt;" alt="" coords="5,5,171,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_14.md5 b/docs/3.1/inherit_graph_14.md5
index 5f01d4a6..46df333b 100644
--- a/docs/3.1/inherit_graph_14.md5
+++ b/docs/3.1/inherit_graph_14.md5
@@ -1 +1 @@
-02cfa8fbc6ed1eb6b3d40d91cc103d4d \ No newline at end of file
+ccf9b1197d80bc1c2aba3505b533b587 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_14.png b/docs/3.1/inherit_graph_14.png
index c6d0e6d7..0b40025f 100644
--- a/docs/3.1/inherit_graph_14.png
+++ b/docs/3.1/inherit_graph_14.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_15.map b/docs/3.1/inherit_graph_15.map
index 855df757..915c0501 100644
--- a/docs/3.1/inherit_graph_15.map
+++ b/docs/3.1/inherit_graph_15.map
@@ -1,3 +1,4 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_fast_pin.html" title="FastPin\&lt; CLOCK_PIN \&gt;" alt="" coords="5,5,171,32"/>
+<area shape="rect" id="node1" href="$class_fast_pin.html" title="The simplest level of Pin class. " alt="" coords="5,5,117,32"/>
+<area shape="rect" id="node2" href="$class_fast_pin_b_b.html" title="FastPinBB\&lt; PIN \&gt;" alt="" coords="165,5,296,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_15.md5 b/docs/3.1/inherit_graph_15.md5
index 46df333b..6202ad65 100644
--- a/docs/3.1/inherit_graph_15.md5
+++ b/docs/3.1/inherit_graph_15.md5
@@ -1 +1 @@
-ccf9b1197d80bc1c2aba3505b533b587 \ No newline at end of file
+3bc369ad9258fe5b5453ce276e8ccce6 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_15.png b/docs/3.1/inherit_graph_15.png
index 0b40025f..6ed3fbfc 100644
--- a/docs/3.1/inherit_graph_15.png
+++ b/docs/3.1/inherit_graph_15.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_16.map b/docs/3.1/inherit_graph_16.map
index 915c0501..152f2895 100644
--- a/docs/3.1/inherit_graph_16.map
+++ b/docs/3.1/inherit_graph_16.map
@@ -1,4 +1,37 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_fast_pin.html" title="The simplest level of Pin class. " alt="" coords="5,5,117,32"/>
-<area shape="rect" id="node2" href="$class_fast_pin_b_b.html" title="FastPinBB\&lt; PIN \&gt;" alt="" coords="165,5,296,32"/>
+<area shape="rect" id="node2" href="$class_g_w6205_controller400_khz.html" title="GW6205Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,6,395,47"/>
+<area shape="rect" id="node4" href="$class_g_w6205_controller800_khz.html" title="GW6205Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,73,395,114"/>
+<area shape="rect" id="node6" href="$class_l_p_d1886_controller1250_khz.html" title="LPD1886Controller1250Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,141,395,182"/>
+<area shape="rect" id="node8" href="$class_p_l9823_controller.html" title="PL9823Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="207,210,380,251"/>
+<area shape="rect" id="node10" href="$class_s_k6812_controller.html" title="SK6812Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="206,283,381,325"/>
+<area shape="rect" id="node12" href="$class_t_m1803_controller400_khz.html" title="TM1803Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,365,395,406"/>
+<area shape="rect" id="node14" href="$class_t_m1809_controller800_khz.html" title="TM1809Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,462,395,503"/>
+<area shape="rect" id="node18" href="$class_t_m1829_controller1600_khz.html" title="TM1829Controller1600Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,527,395,569"/>
+<area shape="rect" id="node19" href="$class_t_m1829_controller800_khz.html" title="TM1829Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,593,395,634"/>
+<area shape="rect" id="node21" href="$class_u_c_s1903_b_controller800_khz.html" title="UCS1903BController800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,658,395,699"/>
+<area shape="rect" id="node23" href="$class_u_c_s1903_controller400_khz.html" title="UCS1903Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,723,395,765"/>
+<area shape="rect" id="node25" href="$class_u_c_s1904_controller800_khz.html" title="UCS1904Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,789,395,830"/>
+<area shape="rect" id="node27" href="$class_w_s2811_controller400_khz.html" title="WS2811Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,854,395,895"/>
+<area shape="rect" id="node29" href="$class_w_s2811_controller800_khz.html" title="WS2811Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,919,395,961"/>
+<area shape="rect" id="node32" href="$class_w_s2812_controller800_khz.html" title="WS2812Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,1050,395,1091"/>
+<area shape="rect" id="node35" href="$class_w_s2812_controller800_khz.html" title="WS2812Controller800Khz\l\&lt; DATA_PIN, GRB \&gt;" alt="" coords="205,1145,381,1186"/>
+<area shape="rect" id="node3" href="$class_g_w6205__400.html" title="GW6205_400\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="445,5,630,46"/>
+<area shape="rect" id="node5" href="$class_g_w6205.html" title="GW6205\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="443,70,631,111"/>
+<area shape="rect" id="node7" href="$class_l_p_d1886.html" title="LPD1886\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="459,135,616,177"/>
+<area shape="rect" id="node9" href="$class_p_l9823.html" title="PL9823\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="447,201,628,242"/>
+<area shape="rect" id="node11" href="$class_s_k6812.html" title="SK6812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="446,266,629,307"/>
+<area shape="rect" id="node13" href="$class_t_m1803.html" title="TM1803\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,331,629,373"/>
+<area shape="rect" id="node15" href="$class_t_m1804.html" title="TM1804\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,397,629,438"/>
+<area shape="rect" id="node16" href="$class_t_m1809.html" title="TM1809\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,462,629,503"/>
+<area shape="rect" id="node17" href="$class_t_m1812.html" title="TM1812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,527,629,569"/>
+<area shape="rect" id="node20" href="$class_t_m1829.html" title="TM1829\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,593,629,634"/>
+<area shape="rect" id="node22" href="$class_u_c_s1903_b.html" title="UCS1903B\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="453,658,622,699"/>
+<area shape="rect" id="node24" href="$class_u_c_s1903.html" title="UCS1903\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="457,723,617,765"/>
+<area shape="rect" id="node26" href="$class_u_c_s1904.html" title="UCS1904\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="457,789,617,830"/>
+<area shape="rect" id="node28" href="$class_w_s2811__400.html" title="WS2811_400\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="446,854,629,895"/>
+<area shape="rect" id="node30" href="$class_a_p_a104.html" title="APA104\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,919,629,961"/>
+<area shape="rect" id="node31" href="$class_w_s2811.html" title="WS2811\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="444,985,631,1026"/>
+<area shape="rect" id="node33" href="$class_w_s2812.html" title="WS2812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="444,1050,631,1091"/>
+<area shape="rect" id="node34" href="$class_w_s2812_b.html" title="WS2812B\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="456,1115,619,1157"/>
+<area shape="rect" id="node36" href="$class_n_e_o_p_i_x_e_l.html" title="NEOPIXEL\&lt; DATA_PIN \&gt;" alt="" coords="449,1181,626,1208"/>
</map>
diff --git a/docs/3.1/inherit_graph_16.md5 b/docs/3.1/inherit_graph_16.md5
index 6202ad65..08d99ac5 100644
--- a/docs/3.1/inherit_graph_16.md5
+++ b/docs/3.1/inherit_graph_16.md5
@@ -1 +1 @@
-3bc369ad9258fe5b5453ce276e8ccce6 \ No newline at end of file
+c06772359661ee0a93467a5729887da8 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_16.png b/docs/3.1/inherit_graph_16.png
index 6ed3fbfc..f3ee446a 100644
--- a/docs/3.1/inherit_graph_16.png
+++ b/docs/3.1/inherit_graph_16.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_17.map b/docs/3.1/inherit_graph_17.map
index e09415a3..c4676ee3 100644
--- a/docs/3.1/inherit_graph_17.map
+++ b/docs/3.1/inherit_graph_17.map
@@ -1,32 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node2" href="$class_g_w6205_controller400_khz.html" title="GW6205Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,5,395,46"/>
-<area shape="rect" id="node4" href="$class_g_w6205_controller800_khz.html" title="GW6205Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,70,395,111"/>
-<area shape="rect" id="node6" href="$class_l_p_d1886_controller1250_khz.html" title="LPD1886Controller1250Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,135,395,177"/>
-<area shape="rect" id="node8" href="$class_t_m1803_controller400_khz.html" title="TM1803Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,201,395,242"/>
-<area shape="rect" id="node10" href="$class_t_m1809_controller800_khz.html" title="TM1809Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,266,395,307"/>
-<area shape="rect" id="node13" href="$class_t_m1829_controller1600_khz.html" title="TM1829Controller1600Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,331,395,373"/>
-<area shape="rect" id="node14" href="$class_t_m1829_controller800_khz.html" title="TM1829Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,397,395,438"/>
-<area shape="rect" id="node16" href="$class_u_c_s1903_b_controller800_khz.html" title="UCS1903BController800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,462,395,503"/>
-<area shape="rect" id="node18" href="$class_u_c_s1903_controller400_khz.html" title="UCS1903Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,527,395,569"/>
-<area shape="rect" id="node20" href="$class_u_c_s1904_controller800_khz.html" title="UCS1904Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,593,395,634"/>
-<area shape="rect" id="node22" href="$class_w_s2811_controller400_khz.html" title="WS2811Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,658,395,699"/>
-<area shape="rect" id="node24" href="$class_w_s2811_controller800_khz.html" title="WS2811Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,723,395,765"/>
-<area shape="rect" id="node27" href="$class_w_s2812_controller800_khz.html" title="WS2812Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,854,395,895"/>
-<area shape="rect" id="node30" href="$class_w_s2812_controller800_khz.html" title="WS2812Controller800Khz\l\&lt; DATA_PIN, GRB \&gt;" alt="" coords="205,949,381,990"/>
-<area shape="rect" id="node3" href="$class_g_w6205__400.html" title="GW6205_400\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="445,5,630,46"/>
-<area shape="rect" id="node5" href="$class_g_w6205.html" title="GW6205\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="443,70,631,111"/>
-<area shape="rect" id="node7" href="$class_l_p_d1886.html" title="LPD1886\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="459,135,616,177"/>
-<area shape="rect" id="node9" href="$class_t_m1803.html" title="TM1803\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,201,629,242"/>
-<area shape="rect" id="node11" href="$class_t_m1804.html" title="TM1804\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,266,629,307"/>
-<area shape="rect" id="node12" href="$class_t_m1809.html" title="TM1809\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,331,629,373"/>
-<area shape="rect" id="node15" href="$class_t_m1829.html" title="TM1829\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,397,629,438"/>
-<area shape="rect" id="node17" href="$class_u_c_s1903_b.html" title="UCS1903B\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="453,462,622,503"/>
-<area shape="rect" id="node19" href="$class_u_c_s1903.html" title="UCS1903\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="457,527,617,569"/>
-<area shape="rect" id="node21" href="$class_u_c_s1904.html" title="UCS1904\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="457,593,617,634"/>
-<area shape="rect" id="node23" href="$class_w_s2811__400.html" title="WS2811_400\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="446,658,629,699"/>
-<area shape="rect" id="node25" href="$class_a_p_a104.html" title="APA104\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,723,629,765"/>
-<area shape="rect" id="node26" href="$class_w_s2811.html" title="WS2811\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="444,789,631,830"/>
-<area shape="rect" id="node28" href="$class_w_s2812.html" title="WS2812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="444,854,631,895"/>
-<area shape="rect" id="node29" href="$class_w_s2812_b.html" title="WS2812B\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="456,919,619,961"/>
-<area shape="rect" id="node31" href="$class_n_e_o_p_i_x_e_l.html" title="NEOPIXEL\&lt; DATA_PIN \&gt;" alt="" coords="449,985,626,1012"/>
+<area shape="rect" id="node1" href="$union_i_e_e_e754binary32__t.html" title="typedef for IEEE754 &quot;binary32&quot; float type internals " alt="" coords="6,5,143,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_17.md5 b/docs/3.1/inherit_graph_17.md5
index cc9d1624..16e73671 100644
--- a/docs/3.1/inherit_graph_17.md5
+++ b/docs/3.1/inherit_graph_17.md5
@@ -1 +1 @@
-83459d01528993392e1fbe97cec2ccab \ No newline at end of file
+3179042e30daae2627d365314c520288 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_17.png b/docs/3.1/inherit_graph_17.png
index 27e7c5a5..3e72319e 100644
--- a/docs/3.1/inherit_graph_17.png
+++ b/docs/3.1/inherit_graph_17.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_18.map b/docs/3.1/inherit_graph_18.map
index c4676ee3..10920651 100644
--- a/docs/3.1/inherit_graph_18.map
+++ b/docs/3.1/inherit_graph_18.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$union_i_e_e_e754binary32__t.html" title="typedef for IEEE754 &quot;binary32&quot; float type internals " alt="" coords="6,5,143,32"/>
+<area shape="rect" id="node1" href="$unionjust8bits.html" title="structure representing 8 bits of access " alt="" coords="6,5,77,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_18.md5 b/docs/3.1/inherit_graph_18.md5
index 16e73671..47803097 100644
--- a/docs/3.1/inherit_graph_18.md5
+++ b/docs/3.1/inherit_graph_18.md5
@@ -1 +1 @@
-3179042e30daae2627d365314c520288 \ No newline at end of file
+8d471172123b13dfb9999519f6748ec6 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_18.png b/docs/3.1/inherit_graph_18.png
index 3e72319e..be566307 100644
--- a/docs/3.1/inherit_graph_18.png
+++ b/docs/3.1/inherit_graph_18.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_19.map b/docs/3.1/inherit_graph_19.map
index 10920651..d5ef36e0 100644
--- a/docs/3.1/inherit_graph_19.map
+++ b/docs/3.1/inherit_graph_19.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$unionjust8bits.html" title="structure representing 8 bits of access " alt="" coords="6,5,77,32"/>
+<area shape="rect" id="node1" href="$struct_multi_pixel_controller.html" title="MultiPixelController\l\&lt; LANES, MASK, RGB_ORDER \&gt;" alt="" coords="6,5,231,46"/>
</map>
diff --git a/docs/3.1/inherit_graph_19.md5 b/docs/3.1/inherit_graph_19.md5
index 47803097..752f4ad7 100644
--- a/docs/3.1/inherit_graph_19.md5
+++ b/docs/3.1/inherit_graph_19.md5
@@ -1 +1 @@
-8d471172123b13dfb9999519f6748ec6 \ No newline at end of file
+f1a3293763c3d7b8452c673e78352fbd \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_19.png b/docs/3.1/inherit_graph_19.png
index be566307..dfc895f2 100644
--- a/docs/3.1/inherit_graph_19.png
+++ b/docs/3.1/inherit_graph_19.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_2.map b/docs/3.1/inherit_graph_2.map
index e7334093..fbc485b2 100644
--- a/docs/3.1/inherit_graph_2.map
+++ b/docs/3.1/inherit_graph_2.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$unionbitswap__type.html" title="union containing a full 8 bytes to swap the bit orientation on " alt="" coords="6,5,106,32"/>
+<area shape="rect" id="node1" href="$class_c_every_n_time_periods.html" title="CEveryNTimePeriods\l\&lt; timeType, timeGetter \&gt;" alt="" coords="6,5,175,46"/>
</map>
diff --git a/docs/3.1/inherit_graph_2.md5 b/docs/3.1/inherit_graph_2.md5
index 2ffcc4e2..c72aade6 100644
--- a/docs/3.1/inherit_graph_2.md5
+++ b/docs/3.1/inherit_graph_2.md5
@@ -1 +1 @@
-e43e29c4c6be74769d4fed0dfa782b80 \ No newline at end of file
+420300a05d5a670b5090fb520e4c0b3a \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_2.png b/docs/3.1/inherit_graph_2.png
index f3c2f42d..5056b88e 100644
--- a/docs/3.1/inherit_graph_2.png
+++ b/docs/3.1/inherit_graph_2.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_20.map b/docs/3.1/inherit_graph_20.map
index d5ef36e0..e60a5775 100644
--- a/docs/3.1/inherit_graph_20.map
+++ b/docs/3.1/inherit_graph_20.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$struct_multi_pixel_controller.html" title="MultiPixelController\l\&lt; LANES, MASK, RGB_ORDER \&gt;" alt="" coords="6,5,231,46"/>
+<area shape="rect" id="node1" href="$class_n_o_p_s_p_i_output.html" title="A nop/stub class, mostly to show the SPI methods that are needed/used by the various SPI chipset impl..." alt="" coords="5,5,184,61"/>
</map>
diff --git a/docs/3.1/inherit_graph_20.md5 b/docs/3.1/inherit_graph_20.md5
index 752f4ad7..0ebd805d 100644
--- a/docs/3.1/inherit_graph_20.md5
+++ b/docs/3.1/inherit_graph_20.md5
@@ -1 +1 @@
-f1a3293763c3d7b8452c673e78352fbd \ No newline at end of file
+0d897a5aa3ecaf90af08580de399ac36 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_20.png b/docs/3.1/inherit_graph_20.png
index dfc895f2..c6656d07 100644
--- a/docs/3.1/inherit_graph_20.png
+++ b/docs/3.1/inherit_graph_20.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_23.map b/docs/3.1/inherit_graph_23.map
index c45b47ea..9773df68 100644
--- a/docs/3.1/inherit_graph_23.map
+++ b/docs/3.1/inherit_graph_23.map
@@ -1,6 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_selectable.html" title="Selectable" alt="" coords="6,31,90,57"/>
-<area shape="rect" id="node2" href="$class_pin.html" title="Pin" alt="" coords="139,31,181,57"/>
-<area shape="rect" id="node3" href="$class_input_pin.html" title="InputPin" alt="" coords="235,5,306,32"/>
-<area shape="rect" id="node4" href="$class_output_pin.html" title="OutputPin" alt="" coords="230,56,311,83"/>
+<area shape="rect" id="node1" href="$class_r_e_f_hardware_s_p_i_output.html" title="REFHardwareSPIOutput\l\&lt; _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="5,5,205,61"/>
</map>
diff --git a/docs/3.1/inherit_graph_23.md5 b/docs/3.1/inherit_graph_23.md5
index 16d2bd55..7c5ce2ca 100644
--- a/docs/3.1/inherit_graph_23.md5
+++ b/docs/3.1/inherit_graph_23.md5
@@ -1 +1 @@
-3223476052b31aafd3758538ebfc26ab \ No newline at end of file
+35f103d922271b48d6dff7e7c034c876 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_23.png b/docs/3.1/inherit_graph_23.png
index 5dc8dc81..a2ac9f4e 100644
--- a/docs/3.1/inherit_graph_23.png
+++ b/docs/3.1/inherit_graph_23.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_24.map b/docs/3.1/inherit_graph_24.map
index 806784f0..c45b47ea 100644
--- a/docs/3.1/inherit_graph_24.map
+++ b/docs/3.1/inherit_graph_24.map
@@ -1,6 +1,6 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node2" href="$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" title="SPIOutput\&lt; SPI2_DATA,\l SPI2_CLOCK, SPI_SPEED \&gt;" alt="" coords="225,5,426,46"/>
-<area shape="rect" id="node3" href="$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" title="SPIOutput\&lt; SPI2_DATA,\l SPI_CLOCK, SPI_SPEED \&gt;" alt="" coords="229,70,422,111"/>
-<area shape="rect" id="node4" href="$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" title="SPIOutput\&lt; SPI_DATA,\l SPI2_CLOCK, SPI_SPEED \&gt;" alt="" coords="225,135,426,177"/>
-<area shape="rect" id="node5" href="$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" title="SPIOutput\&lt; SPI_DATA,\l SPI_CLOCK, SPI_SPEED \&gt;" alt="" coords="229,201,422,242"/>
+<area shape="rect" id="node1" href="$class_selectable.html" title="Selectable" alt="" coords="6,31,90,57"/>
+<area shape="rect" id="node2" href="$class_pin.html" title="Pin" alt="" coords="139,31,181,57"/>
+<area shape="rect" id="node3" href="$class_input_pin.html" title="InputPin" alt="" coords="235,5,306,32"/>
+<area shape="rect" id="node4" href="$class_output_pin.html" title="OutputPin" alt="" coords="230,56,311,83"/>
</map>
diff --git a/docs/3.1/inherit_graph_24.md5 b/docs/3.1/inherit_graph_24.md5
index dc7c1546..16d2bd55 100644
--- a/docs/3.1/inherit_graph_24.md5
+++ b/docs/3.1/inherit_graph_24.md5
@@ -1 +1 @@
-8d6bb42275acc5603dc0749a0162794e \ No newline at end of file
+3223476052b31aafd3758538ebfc26ab \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_24.png b/docs/3.1/inherit_graph_24.png
index 3ec6c80f..5dc8dc81 100644
--- a/docs/3.1/inherit_graph_24.png
+++ b/docs/3.1/inherit_graph_24.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_25.map b/docs/3.1/inherit_graph_25.map
index 66689649..b16ac1db 100644
--- a/docs/3.1/inherit_graph_25.map
+++ b/docs/3.1/inherit_graph_25.map
@@ -1,3 +1,6 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node2" href="$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" title="SPIOutput\&lt; SPI_UART0\l_DATA, SPI_UART0_CLOCK,\l SPI_SPEED \&gt;" alt="" coords="219,5,421,61"/>
+<area shape="rect" id="node1" href="$class_a_v_r_software_s_p_i_output.html" title="AVRSoftwareSPIOutput\l\&lt; _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="5,79,205,135"/>
+<area shape="rect" id="node2" href="$class_software_s_p_i_output.html" title="SoftwareSPIOutput\&lt;\l _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="257,5,449,61"/>
+<area shape="rect" id="node3" href="$class_s_p_i_output.html" title="SPIOutput\&lt; _DATA_PIN,\l _CLOCK_PIN, _SPI_CLOCK\l_DIVIDER \&gt;" alt="" coords="254,152,453,208"/>
+<area shape="rect" id="node4" href="$class_s_p_i_output.html" title="SPIOutput\&lt; DATA_PIN,\l CLOCK_PIN, SPI_SPEED \&gt;" alt="" coords="256,86,451,127"/>
</map>
diff --git a/docs/3.1/inherit_graph_25.md5 b/docs/3.1/inherit_graph_25.md5
index 30d62be3..5e3ec767 100644
--- a/docs/3.1/inherit_graph_25.md5
+++ b/docs/3.1/inherit_graph_25.md5
@@ -1 +1 @@
-4155ce38acf209c0054521ccfe29cd11 \ No newline at end of file
+ee1a9a268da6e91b21b6062d51c42115 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_25.png b/docs/3.1/inherit_graph_25.png
index c15ce69a..39efea3a 100644
--- a/docs/3.1/inherit_graph_25.png
+++ b/docs/3.1/inherit_graph_25.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_26.map b/docs/3.1/inherit_graph_26.map
index 661688be..806784f0 100644
--- a/docs/3.1/inherit_graph_26.map
+++ b/docs/3.1/inherit_graph_26.map
@@ -1,3 +1,6 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node2" href="$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" title="SPIOutput\&lt; SPI_UART1\l_DATA, SPI_UART1_CLOCK,\l SPI_SPEED \&gt;" alt="" coords="219,5,421,61"/>
+<area shape="rect" id="node2" href="$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" title="SPIOutput\&lt; SPI2_DATA,\l SPI2_CLOCK, SPI_SPEED \&gt;" alt="" coords="225,5,426,46"/>
+<area shape="rect" id="node3" href="$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" title="SPIOutput\&lt; SPI2_DATA,\l SPI_CLOCK, SPI_SPEED \&gt;" alt="" coords="229,70,422,111"/>
+<area shape="rect" id="node4" href="$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" title="SPIOutput\&lt; SPI_DATA,\l SPI2_CLOCK, SPI_SPEED \&gt;" alt="" coords="225,135,426,177"/>
+<area shape="rect" id="node5" href="$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" title="SPIOutput\&lt; SPI_DATA,\l SPI_CLOCK, SPI_SPEED \&gt;" alt="" coords="229,201,422,242"/>
</map>
diff --git a/docs/3.1/inherit_graph_26.md5 b/docs/3.1/inherit_graph_26.md5
index 6b0f600c..dc7c1546 100644
--- a/docs/3.1/inherit_graph_26.md5
+++ b/docs/3.1/inherit_graph_26.md5
@@ -1 +1 @@
-9196205d20a02ec6a0e64a0f3c6c06ee \ No newline at end of file
+8d6bb42275acc5603dc0749a0162794e \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_26.png b/docs/3.1/inherit_graph_26.png
index 07f34d7e..3ec6c80f 100644
--- a/docs/3.1/inherit_graph_26.png
+++ b/docs/3.1/inherit_graph_26.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_27.map b/docs/3.1/inherit_graph_27.map
index 250724cb..66689649 100644
--- a/docs/3.1/inherit_graph_27.map
+++ b/docs/3.1/inherit_graph_27.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$structsub4.html" title="structure representing 32 bits of access " alt="" coords="5,5,56,32"/>
+<area shape="rect" id="node2" href="$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" title="SPIOutput\&lt; SPI_UART0\l_DATA, SPI_UART0_CLOCK,\l SPI_SPEED \&gt;" alt="" coords="219,5,421,61"/>
</map>
diff --git a/docs/3.1/inherit_graph_27.md5 b/docs/3.1/inherit_graph_27.md5
index e00192f1..30d62be3 100644
--- a/docs/3.1/inherit_graph_27.md5
+++ b/docs/3.1/inherit_graph_27.md5
@@ -1 +1 @@
-dc0342838c623ffee6445388bf13a639 \ No newline at end of file
+4155ce38acf209c0054521ccfe29cd11 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_27.png b/docs/3.1/inherit_graph_27.png
index ce4ebb77..c15ce69a 100644
--- a/docs/3.1/inherit_graph_27.png
+++ b/docs/3.1/inherit_graph_27.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_28.map b/docs/3.1/inherit_graph_28.map
index 7e72113c..661688be 100644
--- a/docs/3.1/inherit_graph_28.map
+++ b/docs/3.1/inherit_graph_28.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$uniont_bytes_for_long.html" title="tBytesForLong" alt="" coords="5,5,115,32"/>
+<area shape="rect" id="node2" href="$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" title="SPIOutput\&lt; SPI_UART1\l_DATA, SPI_UART1_CLOCK,\l SPI_SPEED \&gt;" alt="" coords="219,5,421,61"/>
</map>
diff --git a/docs/3.1/inherit_graph_28.md5 b/docs/3.1/inherit_graph_28.md5
index c9ba1969..6b0f600c 100644
--- a/docs/3.1/inherit_graph_28.md5
+++ b/docs/3.1/inherit_graph_28.md5
@@ -1 +1 @@
-cc096aad13575ff7cb2b147c51e9bb74 \ No newline at end of file
+9196205d20a02ec6a0e64a0f3c6c06ee \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_28.png b/docs/3.1/inherit_graph_28.png
index ed2276ff..07f34d7e 100644
--- a/docs/3.1/inherit_graph_28.png
+++ b/docs/3.1/inherit_graph_28.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_29.map b/docs/3.1/inherit_graph_29.map
index 81c8c43b..250724cb 100644
--- a/docs/3.1/inherit_graph_29.map
+++ b/docs/3.1/inherit_graph_29.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$union_t_r_g_b_gradient_palette_entry_union.html" title="TRGBGradientPaletteEntry\lUnion" alt="" coords="6,5,189,46"/>
+<area shape="rect" id="node1" href="$structsub4.html" title="structure representing 32 bits of access " alt="" coords="5,5,56,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_29.md5 b/docs/3.1/inherit_graph_29.md5
index 3a769fc5..e00192f1 100644
--- a/docs/3.1/inherit_graph_29.md5
+++ b/docs/3.1/inherit_graph_29.md5
@@ -1 +1 @@
-ec3163c4aacddfc74245a62753ba41fb \ No newline at end of file
+dc0342838c623ffee6445388bf13a639 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_29.png b/docs/3.1/inherit_graph_29.png
index 999471a1..ce4ebb77 100644
--- a/docs/3.1/inherit_graph_29.png
+++ b/docs/3.1/inherit_graph_29.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_3.map b/docs/3.1/inherit_graph_3.map
index fbc485b2..24f31d41 100644
--- a/docs/3.1/inherit_graph_3.map
+++ b/docs/3.1/inherit_graph_3.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_c_every_n_time_periods.html" title="CEveryNTimePeriods\l\&lt; timeType, timeGetter \&gt;" alt="" coords="6,5,175,46"/>
+<area shape="rect" id="node1" href="$class_c_fast_l_e_d.html" title="High level controller interface for FastLED. " alt="" coords="6,5,90,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_3.md5 b/docs/3.1/inherit_graph_3.md5
index c72aade6..984f312c 100644
--- a/docs/3.1/inherit_graph_3.md5
+++ b/docs/3.1/inherit_graph_3.md5
@@ -1 +1 @@
-420300a05d5a670b5090fb520e4c0b3a \ No newline at end of file
+44c3d65150aae6493ecfef52e9b2825d \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_3.png b/docs/3.1/inherit_graph_3.png
index 5056b88e..8facaee9 100644
--- a/docs/3.1/inherit_graph_3.png
+++ b/docs/3.1/inherit_graph_3.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_31.map b/docs/3.1/inherit_graph_31.map
new file mode 100644
index 00000000..81c8c43b
--- /dev/null
+++ b/docs/3.1/inherit_graph_31.map
@@ -0,0 +1,3 @@
+<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
+<area shape="rect" id="node1" href="$union_t_r_g_b_gradient_palette_entry_union.html" title="TRGBGradientPaletteEntry\lUnion" alt="" coords="6,5,189,46"/>
+</map>
diff --git a/docs/3.1/inherit_graph_31.md5 b/docs/3.1/inherit_graph_31.md5
new file mode 100644
index 00000000..3a769fc5
--- /dev/null
+++ b/docs/3.1/inherit_graph_31.md5
@@ -0,0 +1 @@
+ec3163c4aacddfc74245a62753ba41fb \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_31.png b/docs/3.1/inherit_graph_31.png
new file mode 100644
index 00000000..999471a1
--- /dev/null
+++ b/docs/3.1/inherit_graph_31.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_4.map b/docs/3.1/inherit_graph_4.map
index 24f31d41..665f92bd 100644
--- a/docs/3.1/inherit_graph_4.map
+++ b/docs/3.1/inherit_graph_4.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_c_fast_l_e_d.html" title="High level controller interface for FastLED. " alt="" coords="6,5,90,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_4.md5 b/docs/3.1/inherit_graph_4.md5
index 984f312c..4bc3e3cc 100644
--- a/docs/3.1/inherit_graph_4.md5
+++ b/docs/3.1/inherit_graph_4.md5
@@ -1 +1 @@
-44c3d65150aae6493ecfef52e9b2825d \ No newline at end of file
+48f80f537d9c163a339757dd1892acf4 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_4.png b/docs/3.1/inherit_graph_4.png
index 8facaee9..e957c5b6 100644
--- a/docs/3.1/inherit_graph_4.png
+++ b/docs/3.1/inherit_graph_4.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_5.map b/docs/3.1/inherit_graph_5.map
index 665f92bd..543a0fbf 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="Representation of an HSV pixel (hue, saturation, value (aka brightness)). " alt="" coords="5,5,64,32"/>
+<area shape="rect" id="node1" href="$class_c_h_s_v_palette16.html" title="CHSVPalette16" alt="" coords="6,5,122,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_5.md5 b/docs/3.1/inherit_graph_5.md5
index 4bc3e3cc..04a0b47f 100644
--- a/docs/3.1/inherit_graph_5.md5
+++ b/docs/3.1/inherit_graph_5.md5
@@ -1 +1 @@
-48f80f537d9c163a339757dd1892acf4 \ No newline at end of file
+eea0468fc09668ecbad4a9499ecbb175 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_5.png b/docs/3.1/inherit_graph_5.png
index e957c5b6..254e7e52 100644
--- a/docs/3.1/inherit_graph_5.png
+++ b/docs/3.1/inherit_graph_5.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_6.map b/docs/3.1/inherit_graph_6.map
index 543a0fbf..2ae0c5b4 100644
--- a/docs/3.1/inherit_graph_6.map
+++ b/docs/3.1/inherit_graph_6.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_c_h_s_v_palette16.html" title="CHSVPalette16" alt="" coords="6,5,122,32"/>
+<area shape="rect" id="node1" href="$class_c_h_s_v_palette256.html" title="CHSVPalette256" alt="" coords="5,5,128,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_6.md5 b/docs/3.1/inherit_graph_6.md5
index 04a0b47f..bbf95a28 100644
--- a/docs/3.1/inherit_graph_6.md5
+++ b/docs/3.1/inherit_graph_6.md5
@@ -1 +1 @@
-eea0468fc09668ecbad4a9499ecbb175 \ No newline at end of file
+316eb8b21f637cc5f65d7df9c7d29b12 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_6.png b/docs/3.1/inherit_graph_6.png
index 254e7e52..d61c7349 100644
--- a/docs/3.1/inherit_graph_6.png
+++ b/docs/3.1/inherit_graph_6.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_7.map b/docs/3.1/inherit_graph_7.map
index 2ae0c5b4..ce18c254 100644
--- a/docs/3.1/inherit_graph_7.map
+++ b/docs/3.1/inherit_graph_7.map
@@ -1,3 +1,13 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_c_h_s_v_palette256.html" title="CHSVPalette256" alt="" coords="5,5,128,32"/>
+<area shape="rect" id="node1" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="6,232,122,259"/>
+<area shape="rect" id="node2" href="$class_a_p_a102_controller.html" title="APA102 controller class. " alt="" coords="171,5,402,61"/>
+<area shape="rect" id="node3" href="$class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="215,86,359,127"/>
+<area shape="rect" id="node5" href="$class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="185,151,388,193"/>
+<area shape="rect" id="node7" href="$class_l_p_d8806_controller.html" title="LPD8806 controller class. " alt="" coords="185,217,388,273"/>
+<area shape="rect" id="node8" href="$class_p9813_controller.html" title="P9813 controller class. " alt="" coords="201,297,372,353"/>
+<area shape="rect" id="node9" href="$class_s_m16716_controller.html" title="SM16716 controller class. " alt="" coords="185,377,388,433"/>
+<area shape="rect" id="node10" href="$class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="171,457,402,513"/>
+<area shape="rect" id="node4" href="$class_d_m_x_s_e_r_i_a_l.html" title="DMXSERIAL\&lt; RGB_ORDER \&gt;" alt="" coords="463,93,670,120"/>
+<area shape="rect" id="node6" href="$class_d_m_x_s_i_m_p_l_e.html" title="DMXSIMPLE\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="476,151,657,193"/>
+<area shape="rect" id="node11" href="$class_w_s2803_controller.html" title="WS2803Controller\&lt; DATA\l_PIN, CLOCK_PIN, RGB_ORDER,\l SPI_SPEED \&gt;" alt="" coords="451,457,682,513"/>
</map>
diff --git a/docs/3.1/inherit_graph_7.md5 b/docs/3.1/inherit_graph_7.md5
index bbf95a28..cb2f6ade 100644
--- a/docs/3.1/inherit_graph_7.md5
+++ b/docs/3.1/inherit_graph_7.md5
@@ -1 +1 @@
-316eb8b21f637cc5f65d7df9c7d29b12 \ No newline at end of file
+341b49535497055142763b857652f387 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_7.png b/docs/3.1/inherit_graph_7.png
index d61c7349..27ec511e 100644
--- a/docs/3.1/inherit_graph_7.png
+++ b/docs/3.1/inherit_graph_7.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_8.map b/docs/3.1/inherit_graph_8.map
index ce18c254..428f1342 100644
--- a/docs/3.1/inherit_graph_8.map
+++ b/docs/3.1/inherit_graph_8.map
@@ -1,13 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="6,232,122,259"/>
-<area shape="rect" id="node2" href="$class_a_p_a102_controller.html" title="APA102 controller class. " alt="" coords="171,5,402,61"/>
-<area shape="rect" id="node3" href="$class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="215,86,359,127"/>
-<area shape="rect" id="node5" href="$class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="185,151,388,193"/>
-<area shape="rect" id="node7" href="$class_l_p_d8806_controller.html" title="LPD8806 controller class. " alt="" coords="185,217,388,273"/>
-<area shape="rect" id="node8" href="$class_p9813_controller.html" title="P9813 controller class. " alt="" coords="201,297,372,353"/>
-<area shape="rect" id="node9" href="$class_s_m16716_controller.html" title="SM16716 controller class. " alt="" coords="185,377,388,433"/>
-<area shape="rect" id="node10" href="$class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="171,457,402,513"/>
-<area shape="rect" id="node4" href="$class_d_m_x_s_e_r_i_a_l.html" title="DMXSERIAL\&lt; RGB_ORDER \&gt;" alt="" coords="463,93,670,120"/>
-<area shape="rect" id="node6" href="$class_d_m_x_s_i_m_p_l_e.html" title="DMXSIMPLE\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="476,151,657,193"/>
-<area shape="rect" id="node11" href="$class_w_s2803_controller.html" title="WS2803Controller\&lt; DATA\l_PIN, CLOCK_PIN, RGB_ORDER,\l SPI_SPEED \&gt;" alt="" coords="451,457,682,513"/>
+<area shape="rect" id="node1" href="$class_c_min_wait.html" title="CMinWait\&lt; 1000 \&gt;" alt="" coords="6,5,138,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_8.md5 b/docs/3.1/inherit_graph_8.md5
index cb2f6ade..c0fa1719 100644
--- a/docs/3.1/inherit_graph_8.md5
+++ b/docs/3.1/inherit_graph_8.md5
@@ -1 +1 @@
-341b49535497055142763b857652f387 \ No newline at end of file
+ec403eb7aeba941ec587f7cd276ab7a4 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_8.png b/docs/3.1/inherit_graph_8.png
index 27ec511e..29a98e00 100644
--- a/docs/3.1/inherit_graph_8.png
+++ b/docs/3.1/inherit_graph_8.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_9.map b/docs/3.1/inherit_graph_9.map
index 428f1342..32f82ec3 100644
--- a/docs/3.1/inherit_graph_9.map
+++ b/docs/3.1/inherit_graph_9.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_c_min_wait.html" title="CMinWait\&lt; 1000 \&gt;" alt="" coords="6,5,138,32"/>
+<area shape="rect" id="node1" href="$class_c_min_wait.html" title="Class to ensure that a minimum amount of time has kicked since the last time run &#45; and delay if not e..." alt="" coords="5,5,141,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_9.md5 b/docs/3.1/inherit_graph_9.md5
index c0fa1719..2d8ffdc9 100644
--- a/docs/3.1/inherit_graph_9.md5
+++ b/docs/3.1/inherit_graph_9.md5
@@ -1 +1 @@
-ec403eb7aeba941ec587f7cd276ab7a4 \ No newline at end of file
+d061b8cd12ee165a7fe64ff35ddf4c50 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_9.png b/docs/3.1/inherit_graph_9.png
index 29a98e00..315ee837 100644
--- a/docs/3.1/inherit_graph_9.png
+++ b/docs/3.1/inherit_graph_9.png
Binary files differ
diff --git a/docs/3.1/inherits.html b/docs/3.1/inherits.html
index d5b9d02d..8de9adf3 100644
--- a/docs/3.1/inherits.html
+++ b/docs/3.1/inherits.html
@@ -92,90 +92,90 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="textblock">
<p><a href="hierarchy.html">Go to the textual class hierarchy</a></p>
</div><table border="0" cellspacing="10" cellpadding="0">
-<tr><td><img src="inherit_graph_0.png" border="0" alt="" usemap="#_a_v_r_software_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4"/>
-<map name="_a_v_r_software_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4" id="_a_v_r_software_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4">
-<area shape="rect" id="node1" href="class_a_v_r_software_s_p_i_output.html" title="AVRSoftwareSPIOutput\l\&lt; _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="5,85,205,141"/><area shape="rect" id="node2" href="class_software_s_p_i_output.html" title="SoftwareSPIOutput\&lt;\l _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="257,5,449,61"/><area shape="rect" id="node3" href="class_s_p_i_output.html" title="SPIOutput\&lt; _DATA_PIN,\l _CLOCK_PIN, _SPI_CLOCK\l_DIVIDER \&gt;" alt="" coords="254,85,453,141"/><area shape="rect" id="node4" href="class_s_p_i_output.html" title="SPIOutput\&lt; DATA_PIN,\l CLOCK_PIN, SPI_SPEED \&gt;" alt="" coords="256,166,451,207"/></map>
-</td></tr>
-<tr><td><img src="inherit_graph_1.png" border="0" alt="" usemap="#_a_v_r_software_s_p_i_output_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_s_p_i___s_p_e_e_d_01_4"/>
+<tr><td><img src="inherit_graph_0.png" border="0" alt="" usemap="#_a_v_r_software_s_p_i_output_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_s_p_i___s_p_e_e_d_01_4"/>
<map name="_a_v_r_software_s_p_i_output_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_s_p_i___s_p_e_e_d_01_4" id="_a_v_r_software_s_p_i_output_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_s_p_i___s_p_e_e_d_01_4">
<area shape="rect" id="node1" href="class_a_v_r_software_s_p_i_output.html" title="AVRSoftwareSPIOutput\l\&lt; DATA_PIN, CLOCK_PIN,\l SPI_SPEED \&gt;" alt="" coords="6,5,191,61"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_2.png" border="0" alt="" usemap="#bitswap__type"/>
+<tr><td><img src="inherit_graph_1.png" border="0" alt="" usemap="#bitswap__type"/>
<map name="bitswap__type" id="bitswap__type">
<area shape="rect" id="node1" href="unionbitswap__type.html" title="union containing a full 8 bytes to swap the bit orientation on " alt="" coords="6,5,106,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_3.png" border="0" alt="" usemap="#_c_every_n_time_periods_3_01time_type_00_01time_getter_01_4"/>
+<tr><td><img src="inherit_graph_2.png" border="0" alt="" usemap="#_c_every_n_time_periods_3_01time_type_00_01time_getter_01_4"/>
<map name="_c_every_n_time_periods_3_01time_type_00_01time_getter_01_4" id="_c_every_n_time_periods_3_01time_type_00_01time_getter_01_4">
<area shape="rect" id="node1" href="class_c_every_n_time_periods.html" title="CEveryNTimePeriods\l\&lt; timeType, timeGetter \&gt;" alt="" coords="6,5,175,46"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_4.png" border="0" alt="" usemap="#_c_fast_l_e_d"/>
+<tr><td><img src="inherit_graph_3.png" border="0" alt="" usemap="#_c_fast_l_e_d"/>
<map name="_c_fast_l_e_d" id="_c_fast_l_e_d">
<area shape="rect" id="node1" href="class_c_fast_l_e_d.html" title="High level controller interface for FastLED. " alt="" coords="6,5,90,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_5.png" border="0" alt="" usemap="#_c_h_s_v"/>
+<tr><td><img src="inherit_graph_4.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="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"/>
+<tr><td><img src="inherit_graph_5.png" border="0" alt="" usemap="#_c_h_s_v_palette16"/>
<map name="_c_h_s_v_palette16" id="_c_h_s_v_palette16">
<area shape="rect" id="node1" href="class_c_h_s_v_palette16.html" title="CHSVPalette16" alt="" coords="6,5,122,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_7.png" border="0" alt="" usemap="#_c_h_s_v_palette256"/>
+<tr><td><img src="inherit_graph_6.png" border="0" alt="" usemap="#_c_h_s_v_palette256"/>
<map name="_c_h_s_v_palette256" id="_c_h_s_v_palette256">
<area shape="rect" id="node1" href="class_c_h_s_v_palette256.html" title="CHSVPalette256" alt="" coords="5,5,128,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_8.png" border="0" alt="" usemap="#_c_l_e_d_controller"/>
+<tr><td><img src="inherit_graph_7.png" border="0" alt="" usemap="#_c_l_e_d_controller"/>
<map name="_c_l_e_d_controller" id="_c_l_e_d_controller">
<area shape="rect" id="node1" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="6,232,122,259"/><area shape="rect" id="node2" href="class_a_p_a102_controller.html" title="APA102 controller class. " alt="" coords="171,5,402,61"/><area shape="rect" id="node3" href="class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="215,86,359,127"/><area shape="rect" id="node5" href="class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="185,151,388,193"/><area shape="rect" id="node7" href="class_l_p_d8806_controller.html" title="LPD8806 controller class. " alt="" coords="185,217,388,273"/><area shape="rect" id="node8" href="class_p9813_controller.html" title="P9813 controller class. " alt="" coords="201,297,372,353"/><area shape="rect" id="node9" href="class_s_m16716_controller.html" title="SM16716 controller class. " alt="" coords="185,377,388,433"/><area shape="rect" id="node10" href="class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="171,457,402,513"/><area shape="rect" id="node4" href="class_d_m_x_s_e_r_i_a_l.html" title="DMXSERIAL\&lt; RGB_ORDER \&gt;" alt="" coords="463,93,670,120"/><area shape="rect" id="node6" href="class_d_m_x_s_i_m_p_l_e.html" title="DMXSIMPLE\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="476,151,657,193"/><area shape="rect" id="node11" href="class_w_s2803_controller.html" title="WS2803Controller\&lt; DATA\l_PIN, CLOCK_PIN, RGB_ORDER,\l SPI_SPEED \&gt;" alt="" coords="451,457,682,513"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_9.png" border="0" alt="" usemap="#_c_min_wait_3_011000_01_4"/>
+<tr><td><img src="inherit_graph_8.png" border="0" alt="" usemap="#_c_min_wait_3_011000_01_4"/>
<map name="_c_min_wait_3_011000_01_4" id="_c_min_wait_3_011000_01_4">
<area shape="rect" id="node1" href="class_c_min_wait.html" title="CMinWait\&lt; 1000 \&gt;" alt="" coords="6,5,138,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_10.png" border="0" alt="" usemap="#_c_min_wait_3_01_w_a_i_t_01_4"/>
+<tr><td><img src="inherit_graph_9.png" border="0" alt="" usemap="#_c_min_wait_3_01_w_a_i_t_01_4"/>
<map name="_c_min_wait_3_01_w_a_i_t_01_4" id="_c_min_wait_3_01_w_a_i_t_01_4">
<area shape="rect" id="node1" href="class_c_min_wait.html" title="Class to ensure that a minimum amount of time has kicked since the last time run &#45; and delay if not e..." alt="" coords="5,5,141,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_11.png" border="0" alt="" usemap="#_c_r_g_b"/>
+<tr><td><img src="inherit_graph_10.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="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"/>
+<tr><td><img src="inherit_graph_11.png" border="0" alt="" usemap="#_c_r_g_b_palette16"/>
<map name="_c_r_g_b_palette16" id="_c_r_g_b_palette16">
<area shape="rect" id="node1" href="class_c_r_g_b_palette16.html" title="CRGBPalette16" alt="" coords="5,5,123,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_13.png" border="0" alt="" usemap="#_c_r_g_b_palette256"/>
+<tr><td><img src="inherit_graph_12.png" border="0" alt="" usemap="#_c_r_g_b_palette256"/>
<map name="_c_r_g_b_palette256" id="_c_r_g_b_palette256">
<area shape="rect" id="node1" href="class_c_r_g_b_palette256.html" title="CRGBPalette256" alt="" coords="6,5,130,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_14.png" border="0" alt="" usemap="#_d_a_t_a___n_o_p"/>
+<tr><td><img src="inherit_graph_13.png" border="0" alt="" usemap="#_d_a_t_a___n_o_p"/>
<map name="_d_a_t_a___n_o_p" id="_d_a_t_a___n_o_p">
<area shape="rect" id="node1" href="class_d_a_t_a___n_o_p.html" title="Some of the SPI controllers will need to perform a transform on each byte before doing anyting with i..." alt="" coords="5,5,99,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_15.png" border="0" alt="" usemap="#_fast_pin_3_01_c_l_o_c_k___p_i_n_01_4"/>
+<tr><td><img src="inherit_graph_14.png" border="0" alt="" usemap="#_fast_pin_3_01_c_l_o_c_k___p_i_n_01_4"/>
<map name="_fast_pin_3_01_c_l_o_c_k___p_i_n_01_4" id="_fast_pin_3_01_c_l_o_c_k___p_i_n_01_4">
<area shape="rect" id="node1" href="class_fast_pin.html" title="FastPin\&lt; CLOCK_PIN \&gt;" alt="" coords="5,5,171,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_16.png" border="0" alt="" usemap="#_fast_pin_3_01_p_i_n_01_4"/>
+<tr><td><img src="inherit_graph_15.png" border="0" alt="" usemap="#_fast_pin_3_01_p_i_n_01_4"/>
<map name="_fast_pin_3_01_p_i_n_01_4" id="_fast_pin_3_01_p_i_n_01_4">
<area shape="rect" id="node1" href="class_fast_pin.html" title="The simplest level of Pin class. " alt="" coords="5,5,117,32"/><area shape="rect" id="node2" href="class_fast_pin_b_b.html" title="FastPinBB\&lt; PIN \&gt;" alt="" coords="165,5,296,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_17.png" border="0" alt="" usemap="#_g_w6205_controller400_khz_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4"/>
+<tr><td><img src="inherit_graph_16.png" border="0" alt="" usemap="#_g_w6205_controller400_khz_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4"/>
<map name="_g_w6205_controller400_khz_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4" id="_g_w6205_controller400_khz_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4">
-<area shape="rect" id="node2" href="class_g_w6205_controller400_khz.html" title="GW6205Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,5,395,46"/><area shape="rect" id="node4" href="class_g_w6205_controller800_khz.html" title="GW6205Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,70,395,111"/><area shape="rect" id="node6" href="class_l_p_d1886_controller1250_khz.html" title="LPD1886Controller1250Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,135,395,177"/><area shape="rect" id="node8" href="class_t_m1803_controller400_khz.html" title="TM1803Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,201,395,242"/><area shape="rect" id="node10" href="class_t_m1809_controller800_khz.html" title="TM1809Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,266,395,307"/><area shape="rect" id="node13" href="class_t_m1829_controller1600_khz.html" title="TM1829Controller1600Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,331,395,373"/><area shape="rect" id="node14" href="class_t_m1829_controller800_khz.html" title="TM1829Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,397,395,438"/><area shape="rect" id="node16" href="class_u_c_s1903_b_controller800_khz.html" title="UCS1903BController800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,462,395,503"/><area shape="rect" id="node18" href="class_u_c_s1903_controller400_khz.html" title="UCS1903Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,527,395,569"/><area shape="rect" id="node20" href="class_u_c_s1904_controller800_khz.html" title="UCS1904Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,593,395,634"/><area shape="rect" id="node22" href="class_w_s2811_controller400_khz.html" title="WS2811Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,658,395,699"/><area shape="rect" id="node24" href="class_w_s2811_controller800_khz.html" title="WS2811Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,723,395,765"/><area shape="rect" id="node27" href="class_w_s2812_controller800_khz.html" title="WS2812Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,854,395,895"/><area shape="rect" id="node30" href="class_w_s2812_controller800_khz.html" title="WS2812Controller800Khz\l\&lt; DATA_PIN, GRB \&gt;" alt="" coords="205,949,381,990"/><area shape="rect" id="node3" href="class_g_w6205__400.html" title="GW6205_400\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="445,5,630,46"/><area shape="rect" id="node5" href="class_g_w6205.html" title="GW6205\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="443,70,631,111"/><area shape="rect" id="node7" href="class_l_p_d1886.html" title="LPD1886\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="459,135,616,177"/><area shape="rect" id="node9" href="class_t_m1803.html" title="TM1803\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,201,629,242"/><area shape="rect" id="node11" href="class_t_m1804.html" title="TM1804\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,266,629,307"/><area shape="rect" id="node12" href="class_t_m1809.html" title="TM1809\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,331,629,373"/><area shape="rect" id="node15" href="class_t_m1829.html" title="TM1829\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,397,629,438"/><area shape="rect" id="node17" href="class_u_c_s1903_b.html" title="UCS1903B\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="453,462,622,503"/><area shape="rect" id="node19" href="class_u_c_s1903.html" title="UCS1903\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="457,527,617,569"/><area shape="rect" id="node21" href="class_u_c_s1904.html" title="UCS1904\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="457,593,617,634"/><area shape="rect" id="node23" href="class_w_s2811__400.html" title="WS2811_400\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="446,658,629,699"/><area shape="rect" id="node25" href="class_a_p_a104.html" title="APA104\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,723,629,765"/><area shape="rect" id="node26" href="class_w_s2811.html" title="WS2811\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="444,789,631,830"/><area shape="rect" id="node28" href="class_w_s2812.html" title="WS2812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="444,854,631,895"/><area shape="rect" id="node29" href="class_w_s2812_b.html" title="WS2812B\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="456,919,619,961"/><area shape="rect" id="node31" href="class_n_e_o_p_i_x_e_l.html" title="NEOPIXEL\&lt; DATA_PIN \&gt;" alt="" coords="449,985,626,1012"/></map>
+<area shape="rect" id="node2" href="class_g_w6205_controller400_khz.html" title="GW6205Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,6,395,47"/><area shape="rect" id="node4" href="class_g_w6205_controller800_khz.html" title="GW6205Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,73,395,114"/><area shape="rect" id="node6" href="class_l_p_d1886_controller1250_khz.html" title="LPD1886Controller1250Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,141,395,182"/><area shape="rect" id="node8" href="class_p_l9823_controller.html" title="PL9823Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="207,210,380,251"/><area shape="rect" id="node10" href="class_s_k6812_controller.html" title="SK6812Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="206,283,381,325"/><area shape="rect" id="node12" href="class_t_m1803_controller400_khz.html" title="TM1803Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,365,395,406"/><area shape="rect" id="node14" href="class_t_m1809_controller800_khz.html" title="TM1809Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,462,395,503"/><area shape="rect" id="node18" href="class_t_m1829_controller1600_khz.html" title="TM1829Controller1600Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,527,395,569"/><area shape="rect" id="node19" href="class_t_m1829_controller800_khz.html" title="TM1829Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,593,395,634"/><area shape="rect" id="node21" href="class_u_c_s1903_b_controller800_khz.html" title="UCS1903BController800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,658,395,699"/><area shape="rect" id="node23" href="class_u_c_s1903_controller400_khz.html" title="UCS1903Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,723,395,765"/><area shape="rect" id="node25" href="class_u_c_s1904_controller800_khz.html" title="UCS1904Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,789,395,830"/><area shape="rect" id="node27" href="class_w_s2811_controller400_khz.html" title="WS2811Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,854,395,895"/><area shape="rect" id="node29" href="class_w_s2811_controller800_khz.html" title="WS2811Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,919,395,961"/><area shape="rect" id="node32" href="class_w_s2812_controller800_khz.html" title="WS2812Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,1050,395,1091"/><area shape="rect" id="node35" href="class_w_s2812_controller800_khz.html" title="WS2812Controller800Khz\l\&lt; DATA_PIN, GRB \&gt;" alt="" coords="205,1145,381,1186"/><area shape="rect" id="node3" href="class_g_w6205__400.html" title="GW6205_400\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="445,5,630,46"/><area shape="rect" id="node5" href="class_g_w6205.html" title="GW6205\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="443,70,631,111"/><area shape="rect" id="node7" href="class_l_p_d1886.html" title="LPD1886\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="459,135,616,177"/><area shape="rect" id="node9" href="class_p_l9823.html" title="PL9823\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="447,201,628,242"/><area shape="rect" id="node11" href="class_s_k6812.html" title="SK6812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="446,266,629,307"/><area shape="rect" id="node13" href="class_t_m1803.html" title="TM1803\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,331,629,373"/><area shape="rect" id="node15" href="class_t_m1804.html" title="TM1804\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,397,629,438"/><area shape="rect" id="node16" href="class_t_m1809.html" title="TM1809\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,462,629,503"/><area shape="rect" id="node17" href="class_t_m1812.html" title="TM1812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,527,629,569"/><area shape="rect" id="node20" href="class_t_m1829.html" title="TM1829\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,593,629,634"/><area shape="rect" id="node22" href="class_u_c_s1903_b.html" title="UCS1903B\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="453,658,622,699"/><area shape="rect" id="node24" href="class_u_c_s1903.html" title="UCS1903\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="457,723,617,765"/><area shape="rect" id="node26" href="class_u_c_s1904.html" title="UCS1904\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="457,789,617,830"/><area shape="rect" id="node28" href="class_w_s2811__400.html" title="WS2811_400\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="446,854,629,895"/><area shape="rect" id="node30" href="class_a_p_a104.html" title="APA104\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,919,629,961"/><area shape="rect" id="node31" href="class_w_s2811.html" title="WS2811\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="444,985,631,1026"/><area shape="rect" id="node33" href="class_w_s2812.html" title="WS2812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="444,1050,631,1091"/><area shape="rect" id="node34" href="class_w_s2812_b.html" title="WS2812B\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="456,1115,619,1157"/><area shape="rect" id="node36" href="class_n_e_o_p_i_x_e_l.html" title="NEOPIXEL\&lt; DATA_PIN \&gt;" alt="" coords="449,1181,626,1208"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_18.png" border="0" alt="" usemap="#_i_e_e_e754binary32__t"/>
+<tr><td><img src="inherit_graph_17.png" border="0" alt="" usemap="#_i_e_e_e754binary32__t"/>
<map name="_i_e_e_e754binary32__t" id="_i_e_e_e754binary32__t">
<area shape="rect" id="node1" href="union_i_e_e_e754binary32__t.html" title="typedef for IEEE754 &quot;binary32&quot; float type internals " alt="" coords="6,5,143,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_19.png" border="0" alt="" usemap="#just8bits"/>
+<tr><td><img src="inherit_graph_18.png" border="0" alt="" usemap="#just8bits"/>
<map name="just8bits" id="just8bits">
<area shape="rect" id="node1" href="unionjust8bits.html" title="structure representing 8 bits of access " alt="" coords="6,5,77,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_20.png" border="0" alt="" 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"/>
+<tr><td><img src="inherit_graph_19.png" border="0" alt="" 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"/>
<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" 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">
<area shape="rect" id="node1" href="struct_multi_pixel_controller.html" title="MultiPixelController\l\&lt; LANES, MASK, RGB_ORDER \&gt;" alt="" coords="6,5,231,46"/></map>
</td></tr>
+<tr><td><img src="inherit_graph_20.png" border="0" alt="" usemap="#_n_o_p_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4"/>
+<map name="_n_o_p_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4" id="_n_o_p_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4">
+<area shape="rect" id="node1" href="class_n_o_p_s_p_i_output.html" title="A nop/stub class, mostly to show the SPI methods that are needed/used by the various SPI chipset impl..." alt="" coords="5,5,184,61"/></map>
+</td></tr>
<tr><td><img src="inherit_graph_21.png" border="0" alt="" usemap="#_pixel_controller_3_01_r_g_b___o_r_d_e_r_01_4"/>
<map name="_pixel_controller_3_01_r_g_b___o_r_d_e_r_01_4" id="_pixel_controller_3_01_r_g_b___o_r_d_e_r_01_4">
<area shape="rect" id="node1" href="struct_pixel_controller.html" title="Pixel controller class. " alt="" coords="5,5,155,46"/></map>
@@ -184,31 +184,39 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<map name="q_3_01_t_00_01_f_00_01_i_01_4" id="q_3_01_t_00_01_f_00_01_i_01_4">
<area shape="rect" id="node1" href="classq.html" title="Template class for represneting fractional ints. " alt="" coords="6,5,93,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_23.png" border="0" alt="" usemap="#_selectable"/>
+<tr><td><img src="inherit_graph_23.png" border="0" alt="" usemap="#_r_e_f_hardware_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4"/>
+<map name="_r_e_f_hardware_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4" id="_r_e_f_hardware_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4">
+<area shape="rect" id="node1" href="class_r_e_f_hardware_s_p_i_output.html" title="REFHardwareSPIOutput\l\&lt; _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="5,5,205,61"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_24.png" border="0" alt="" usemap="#_selectable"/>
<map name="_selectable" id="_selectable">
<area shape="rect" id="node1" href="class_selectable.html" title="Selectable" alt="" coords="6,31,90,57"/><area shape="rect" id="node2" href="class_pin.html" title="Pin" alt="" coords="139,31,181,57"/><area shape="rect" id="node3" href="class_input_pin.html" title="InputPin" alt="" coords="235,5,306,32"/><area shape="rect" id="node4" href="class_output_pin.html" title="OutputPin" alt="" coords="230,56,311,83"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_24.png" border="0" alt="" usemap="#_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"/>
+<tr><td><img src="inherit_graph_25.png" border="0" alt="" usemap="#_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4"/>
+<map name="_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4" id="_s_p_i_output_3_01___d_a_t_a___p_i_n_00_01___c_l_o_c_k___p_i_n_00_01___s_p_i___c_l_o_c_k___d_i_v_i_d_e_r_01_4">
+<area shape="rect" id="node1" href="class_a_v_r_software_s_p_i_output.html" title="AVRSoftwareSPIOutput\l\&lt; _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="5,79,205,135"/><area shape="rect" id="node2" href="class_software_s_p_i_output.html" title="SoftwareSPIOutput\&lt;\l _DATA_PIN, _CLOCK_PIN,\l _SPI_CLOCK_DIVIDER \&gt;" alt="" coords="257,5,449,61"/><area shape="rect" id="node3" href="class_s_p_i_output.html" title="SPIOutput\&lt; _DATA_PIN,\l _CLOCK_PIN, _SPI_CLOCK\l_DIVIDER \&gt;" alt="" coords="254,152,453,208"/><area shape="rect" id="node4" href="class_s_p_i_output.html" title="SPIOutput\&lt; DATA_PIN,\l CLOCK_PIN, SPI_SPEED \&gt;" alt="" coords="256,86,451,127"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_26.png" border="0" alt="" usemap="#_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"/>
<map name="_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" id="_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">
<area shape="rect" id="node2" href="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" title="SPIOutput\&lt; SPI2_DATA,\l SPI2_CLOCK, SPI_SPEED \&gt;" alt="" coords="225,5,426,46"/><area shape="rect" id="node3" href="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" title="SPIOutput\&lt; SPI2_DATA,\l SPI_CLOCK, SPI_SPEED \&gt;" alt="" coords="229,70,422,111"/><area shape="rect" id="node4" href="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" title="SPIOutput\&lt; SPI_DATA,\l SPI2_CLOCK, SPI_SPEED \&gt;" alt="" coords="225,135,426,177"/><area shape="rect" id="node5" href="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" title="SPIOutput\&lt; SPI_DATA,\l SPI_CLOCK, SPI_SPEED \&gt;" alt="" coords="229,201,422,242"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_25.png" border="0" alt="" usemap="#_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"/>
+<tr><td><img src="inherit_graph_27.png" border="0" alt="" usemap="#_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"/>
<map name="_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" id="_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">
<area shape="rect" id="node2" href="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" title="SPIOutput\&lt; SPI_UART0\l_DATA, SPI_UART0_CLOCK,\l SPI_SPEED \&gt;" alt="" coords="219,5,421,61"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_26.png" border="0" alt="" usemap="#_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"/>
+<tr><td><img src="inherit_graph_28.png" border="0" alt="" usemap="#_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"/>
<map name="_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" id="_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">
<area shape="rect" id="node2" href="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" title="SPIOutput\&lt; SPI_UART1\l_DATA, SPI_UART1_CLOCK,\l SPI_SPEED \&gt;" alt="" coords="219,5,421,61"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_27.png" border="0" alt="" usemap="#sub4"/>
+<tr><td><img src="inherit_graph_29.png" border="0" alt="" usemap="#sub4"/>
<map name="sub4" id="sub4">
<area shape="rect" id="node1" href="structsub4.html" title="structure representing 32 bits of access " alt="" coords="5,5,56,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_28.png" border="0" alt="" usemap="#t_bytes_for_long"/>
+<tr><td><img src="inherit_graph_30.png" border="0" alt="" usemap="#t_bytes_for_long"/>
<map name="t_bytes_for_long" id="t_bytes_for_long">
<area shape="rect" id="node1" href="uniont_bytes_for_long.html" title="tBytesForLong" alt="" coords="5,5,115,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_29.png" border="0" alt="" usemap="#_t_r_g_b_gradient_palette_entry_union"/>
+<tr><td><img src="inherit_graph_31.png" border="0" alt="" usemap="#_t_r_g_b_gradient_palette_entry_union"/>
<map name="_t_r_g_b_gradient_palette_entry_union" id="_t_r_g_b_gradient_palette_entry_union">
<area shape="rect" id="node1" href="union_t_r_g_b_gradient_palette_entry_union.html" title="TRGBGradientPaletteEntry\lUnion" alt="" coords="6,5,189,46"/></map>
</td></tr>
@@ -216,7 +224,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 ad187133..6cbb541a 100644
--- a/docs/3.1/led__sysdefs_8h_source.html
+++ b/docs/3.1/led__sysdefs_8h_source.html
@@ -132,7 +132,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 7f4fa8ae..9f5cbec8 100644
--- a/docs/3.1/lib8tion_8h_source.html
+++ b/docs/3.1/lib8tion_8h_source.html
@@ -1024,10 +1024,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;</div>
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;<span class="preprocessor">#define CEveryNMilliseconds CEveryNMillis</span></div>
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;<span class="preprocessor">#define EVERY_N_MILLISECONDS(N) EVERY_N_MILLIS(N)</span></div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;</div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;FASTLED_NAMESPACE_END</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;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;<span class="preprocessor">#define EVERY_N_MILLISECONDS_I(NAME,N) EVERY_N_MILLIS_I(NAME,N)</span></div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="group__lib8tion_html_ga837f5a688998f3340994613944e47d41"><div class="ttname"><a href="group__lib8tion.html#ga837f5a688998f3340994613944e47d41">hours8</a></div><div class="ttdeci">LIB8STATIC uint8_t hours8()</div><div class="ttdoc">Return the current hours since boot in an 8-bit value. </div><div class="ttdef"><b>Definition:</b> lib8tion.h:937</div></div>
<div class="ttc" id="group__lib8tion_html_ga8c8f06da86c5d7cf13f55c3a5bfdf251"><div class="ttname"><a href="group__lib8tion.html#ga8c8f06da86c5d7cf13f55c3a5bfdf251">lerp16by8</a></div><div class="ttdeci">LIB8STATIC uint16_t lerp16by8(uint16_t a, uint16_t b, fract8 frac)</div><div class="ttdoc">linear interpolation between two unsigned 16-bit values, with 8-bit fraction </div><div class="ttdef"><b>Definition:</b> lib8tion.h:480</div></div>
<div class="ttc" id="group__lib8tion_html_gade6acbf6fd3c9d346148bccfcafb2fe2"><div class="ttname"><a href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2">beat16</a></div><div class="ttdeci">LIB8STATIC uint16_t beat16(accum88 beats_per_minute, uint32_t timebase=0)</div><div class="ttdoc">beat16 generates a 16-bit &#39;sawtooth&#39; wave at a given BPM </div><div class="ttdef"><b>Definition:</b> lib8tion.h:858</div></div>
@@ -1079,7 +1080,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 944194c5..452f808f 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 94e38b77..57a426a9 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 54574bfd..12a92aa6 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
@@ -84,7 +84,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="textblock"><p><a href="https://gitter.im/FastLED/public">![Gitter](https://badges.gitter.im/Join%20Chat.svg)</a></p>
<p>IMPORTANT NOTE: For AVR based systems, avr-gcc 4.8.x is supported, as is avr-gcc 4.3 and earlier. There are known issues with avr-gcc 4.7 and timing based chipsets like the <a class="el" href="class_w_s2812_b.html">WS2812B</a>. If you are using a linux system make sure you are using avr-gcc 4.8.x not avr-gcc 4.7.x.</p>
<h1>FastLED 3.1 </h1>
-<p>IMPORTANT NOTE: If you are building for AVR based systems, please do not use any version of the arduino IDE 1.5.7 or later yet. It messes with some of the asm output which will cause you problems. This is a library for easily &amp; efficiently controlling a wide variety of LED chipsets, like the ones sold by adafruit (Neopixel, LPD8806), Sparkfun (WS2801), and aliexpress. In addition to writing to the leds, this library also includes a number of functions for high-performing 8bit math for manipulating your RGB values, as well as low level classes for abstracting out access to pins and SPI hardware, while still keeping things as fast as possible. Tested with Arduino up to 1.6.5 from arduino.cc.</p>
+<p>This is a library for easily &amp; efficiently controlling a wide variety of LED chipsets, like the ones sold by adafruit (Neopixel, DotStar, LPD8806), Sparkfun (WS2801), and aliexpress. In addition to writing to the leds, this library also includes a number of functions for high-performing 8bit math for manipulating your RGB values, as well as low level classes for abstracting out access to pins and SPI hardware, while still keeping things as fast as possible. Tested with Arduino up to 1.6.5 from arduino.cc.</p>
<p>Quick note for people installing from GitHub repo zips, rename the folder FastLED before copying it to your Arduino/libraries folder. Github likes putting -branchname into the name of the folder, which unfortunately, makes Arduino cranky!</p>
<p>We have multiple goals with this library:</p>
<ul>
@@ -125,11 +125,13 @@ void loop() {
<p>Right now the library is supported on a variety of arduino compatable platforms. If it's ARM or AVR and uses the arduino software (or a modified version of it to build) then it is likely supported. Note that we have a long list of upcoming platforms to support, so if you don't see what you're looking for here, ask, it may be on the roadmap (or may already be supported). N.B. at the moment we are only supporting the stock compilers that ship with the arduino software. Support for upgraded compilers, as well as using AVR studio and skipping the arduino entirely, should be coming in a near future release.</p>
<ul>
<li>Arduino &amp; compatibles - straight up arduino devices, uno, duo, leonardo, mega, nano, etc...</li>
+<li>Arduino Yún</li>
<li>Adafruit Trinket &amp; Gemma - Trinket Pro may be supported, but haven't tested to confirm yet</li>
-<li>Teensy 2, Teensy++ 2, Teensy 3.0, Teensy 3.1, Teensy LC - arduino compataible from pjrc.com with some extra goodies (note the teensy 3 is ARM, not AVR!)</li>
+<li>Teensy 2, Teensy++ 2, Teensy 3.0, Teensy 3.1, Teensy LC - arduino compataible from pjrc.com with some extra goodies (note the teensy 3, 3.1, and LC are ARM, not AVR!)</li>
<li>Arduino Due and the digistump DigiX</li>
<li>RFDuino</li>
<li>SparkCore</li>
+<li>Arduino Zero</li>
</ul>
<p>What types of platforms are we thinking about supporting in the future? Here's a short list: ChipKit32, Maple, Beagleboard</p>
<h2>What about that name?</h2>
@@ -140,7 +142,7 @@ void loop() {
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 fe9e841a..8e758084 100644
--- a/docs/3.1/md_release_notes.html
+++ b/docs/3.1/md_release_notes.html
@@ -4,7 +4,7 @@
<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: FastLED3.0</title>
+<title>FastLED: FastLED3.1.1pre</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>
@@ -78,10 +78,41 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div><!-- top -->
<div class="header">
<div class="headertitle">
-<div class="title">FastLED3.0 </div> </div>
+<div class="title">FastLED3.1.1pre </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><ul>
+<li>Enabled RFDuino/nrf51822 hardware SPI support</li>
+<li>Fix edge case bug w/HSV palette blending</li>
+<li>Fix power management issue w/parallel output</li>
+<li>Use static_asserts for some more useful compile time errors around bad pins</li>
+<li>Roll power management into FastLED.show/delay directly</li>
+</ul>
+<h1>FastLED3.1.0 </h1>
+<ul>
+<li>Added support for the following platforms<ul>
+<li>Arduino Zero</li>
+<li>Teensy LC</li>
+<li>RFDuino/nrf51822</li>
+<li>Spark Core</li>
+</ul>
+</li>
+<li>Major internal code reoganization</li>
+<li>Started doxygen based documentation</li>
+<li>Lots of bug/performance fixes</li>
+<li>Parallel output on various arm platforms</li>
+<li>lots of new stuff</li>
+</ul>
+<h1>FastLED3.0.2 </h1>
+<ul>
+<li>possibly fix issues #67 and #90 by fixing gcc 4.8.x support</li>
+</ul>
+<h1>FastLED3.0.1 </h1>
+<ul>
+<li>fix issue #89 w/power management pin always being on</li>
+</ul>
+<h1>FastLED3.0 </h1>
+<ul>
<li>Added support for the following platforms:<ul>
<li>Arduino due</li>
<li>Teensy 3.1</li>
@@ -197,7 +228,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 8f4908bd..d18624e2 100644
--- a/docs/3.1/modules.html
+++ b/docs/3.1/modules.html
@@ -102,7 +102,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 96e59a81..ba0e753e 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 c302c708..da3e18a3 100644
--- a/docs/3.1/noise_8h_source.html
+++ b/docs/3.1/noise_8h_source.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 0a1e97dc..a13a9776 100644
--- a/docs/3.1/pages.html
+++ b/docs/3.1/pages.html
@@ -85,14 +85,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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="md__p_o_r_t_i_n_g.html" target="_self">PORTING</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="md__r_e_a_d_m_e.html" target="_self">README</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="md_release_notes.html" target="_self">FastLED3.0</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="md_release_notes.html" target="_self">FastLED3.1.1pre</a></td><td class="desc"></td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="todo.html" target="_self">Todo List</a></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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 f7638ba5..607979b3 100644
--- a/docs/3.1/pixeltypes_8h_source.html
+++ b/docs/3.1/pixeltypes_8h_source.html
@@ -347,7 +347,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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="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> ) <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>
@@ -362,7 +362,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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="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> ) <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>
@@ -432,475 +432,495 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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="l00353"></a><span class="lineno"> 353</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="l00354"></a><span class="lineno"> 354</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="l00355"></a><span class="lineno"> 355</span>&#160; <span class="comment">// may dim all the way to 100% black.</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; nscale8 (<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; scaledown )</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; r = ::scale8(r, scaledown.r);</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; g = ::scale8(g, scaledown.g);</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; b = ::scale8(b, scaledown.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;</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale8 (<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; scaledown )<span class="keyword"> const</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="keyword"> </span>{</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> out;</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; out.r = ::scale8(r, scaledown.r);</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; out.g = ::scale8(g, scaledown.g);</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; out.b = ::scale8(b, scaledown.b);</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">return</span> out;</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="comment">// fadeToBlackBy is a synonym for nscale8( ..., 255-fadefactor)</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</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="l00375"></a><span class="lineno"> 375</span>&#160; {</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <a class="code" href="group___scaling.html#ga39bf87e5526120889086cab19ac749b1">nscale8x3</a>( r, g, b, 255 - fadefactor);</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;</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</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="l00381"></a><span class="lineno"> 381</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="l00382"></a><span class="lineno"> 382</span>&#160; {</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">if</span>( rhs.r &gt; r) r = rhs.r;</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">if</span>( rhs.g &gt; g) g = rhs.g;</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">if</span>( rhs.b &gt; b) b = rhs.b;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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="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="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">if</span>( d &gt; r) r = d;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">if</span>( d &gt; g) g = d;</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">if</span>( d &gt; b) b = d;</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</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="l00397"></a><span class="lineno"> 397</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="l00398"></a><span class="lineno"> 398</span>&#160; {</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">if</span>( rhs.r &lt; r) r = rhs.r;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">if</span>( rhs.g &lt; g) g = rhs.g;</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">if</span>( rhs.b &lt; b) b = rhs.b;</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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="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="l00405"></a><span class="lineno"> 405</span>&#160; {</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">if</span>( d &lt; r) r = d;</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">if</span>( d &lt; g) g = d;</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">if</span>( d &lt; b) b = d;</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="comment">// this allows testing a CRGB for zero-ness</span></div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</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="l00414"></a><span class="lineno"> 414</span>&#160; {</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">return</span> r || g || b;</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="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="l00418"></a><span class="lineno"> 418</span>&#160; <span class="comment">// invert each channel</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</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="l00420"></a><span class="lineno"> 420</span>&#160; {</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> retval;</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; retval.r = 255 - r;</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; retval.g = 255 - g;</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; retval.b = 255 - b;</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">return</span> retval;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; }</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;<span class="preprocessor">#if (defined SmartMatrix_h || defined SmartMatrix3_h)</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keyword">operator</span> rgb24()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; rgb24 ret;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; ret.red = r;</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; ret.green = g;</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; ret.blue = b;</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">return</span> ret;</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="preprocessor">#endif</span></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">// 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___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.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___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; <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="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keyword">inline</span> uint8_t getLuma ( )<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</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="l00440"></a><span class="lineno"> 440</span>&#160; <span class="comment">// 54 183 18 (!)</span></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; 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="l00443"></a><span class="lineno"> 443</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="l00444"></a><span class="lineno"> 444</span>&#160;<a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c"> scale8_LEAVING_R1_DIRTY</a>( b, 18);</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">return</span> luma;</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;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keyword">inline</span> uint8_t getAverageLight( )<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keyword">const</span> uint8_t eightysix = 86;</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</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="l00452"></a><span class="lineno"> 452</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="l00453"></a><span class="lineno"> 453</span>&#160;<a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c"> scale8_LEAVING_R1_DIRTY</a>( b, eightysix);</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">return</span> avg;</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;</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> maximizeBrightness( uint8_t limit = 255 ) {</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; uint8_t max = red;</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">if</span>( green &gt; max) max = green;</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">if</span>( blue &gt; max) max = blue;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; uint16_t factor = ((uint16_t)(limit) * 256) / max;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; red = (red * factor) / 256;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; green = (green * factor) / 256;</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; blue = (blue * factor) / 256;</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_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="l00469"></a><span class="lineno"> 469</span>&#160; {</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> ret;</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; ret.r = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(r,other.r,frac);</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; ret.g = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(g,other.g,frac);</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; ret.b = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(b,other.b,frac);</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="keywordflow">return</span> ret;</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;</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</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="l00480"></a><span class="lineno"> 480</span>&#160; {</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> ret;</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; 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="l00484"></a><span class="lineno"> 484</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="l00485"></a><span class="lineno"> 485</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="l00486"></a><span class="lineno"> 486</span>&#160;</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">return</span> ret;</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;</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="comment">// getParity returns 0 or 1, depending on the</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="comment">// lowest bit of the sum of the color components.</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keyword">inline</span> uint8_t getParity()</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; {</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; uint8_t sum = r + g + b;</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">return</span> (sum &amp; 0x01);</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;</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="comment">// setParity adjusts the color in the smallest</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="comment">// way possible so that the parity of the color</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="comment">// is now the desired value. This allows you to</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="comment">// &#39;hide&#39; one bit of information in the color.</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="comment">// Ideally, we find one color channel which already</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="comment">// has data in it, and modify just that channel by one.</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</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="l00506"></a><span class="lineno"> 506</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="l00507"></a><span class="lineno"> 507</span>&#160; <span class="comment">// (meaning that R==G==B), we modify all three channels</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="comment">// at once, to preserve the neutral hue.</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</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="l00511"></a><span class="lineno"> 511</span>&#160; <span class="comment">// this &#39;hidden bit&#39; may actually be visible, but this</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="comment">// code makes reasonable efforts to hide it as much</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="comment">// as is reasonably possible.</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="comment">// Also, an effort is made to have make it such that</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="comment">// repeatedly setting the parity to different values</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="comment">// will not cause the color to &#39;drift&#39;. Toggling</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="comment">// the parity twice should generally result in the</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="comment">// original color again.</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> setParity( uint8_t parity)</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; uint8_t curparity = getParity();</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">if</span>( parity == curparity) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">if</span>( parity ) {</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="comment">// going &#39;up&#39;</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">if</span>( (b &gt; 0) &amp;&amp; (b &lt; 255)) {</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; r++;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; g++;</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; b++;</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</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="l00536"></a><span class="lineno"> 536</span>&#160; r++;</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</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="l00538"></a><span class="lineno"> 538</span>&#160; g++;</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; r ^= 0x01;</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; g ^= 0x01;</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; b ^= 0x01;</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="keywordflow">else</span> {</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="comment">// going &#39;down&#39;</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">if</span>( b &gt; 1) {</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; r--;</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; g--;</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; b--;</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( g &gt; 1) {</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; g--;</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( r &gt; 1) {</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; r--;</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; r ^= 0x01;</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; g ^= 0x01;</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; b ^= 0x01;</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; }</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;</div>
+<div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99"> 569</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; AliceBlue=0xF0F8FF,</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; Amethyst=0x9966CC,</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; AntiqueWhite=0xFAEBD7,</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; Aqua=0x00FFFF,</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; Aquamarine=0x7FFFD4,</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; Azure=0xF0FFFF,</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; Beige=0xF5F5DC,</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; Bisque=0xFFE4C4,</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; Black=0x000000,</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; BlanchedAlmond=0xFFEBCD,</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; Blue=0x0000FF,</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; BlueViolet=0x8A2BE2,</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; Brown=0xA52A2A,</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; BurlyWood=0xDEB887,</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; CadetBlue=0x5F9EA0,</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; Chartreuse=0x7FFF00,</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; Chocolate=0xD2691E,</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; Coral=0xFF7F50,</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; CornflowerBlue=0x6495ED,</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; Cornsilk=0xFFF8DC,</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; Crimson=0xDC143C,</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; Cyan=0x00FFFF,</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; DarkBlue=0x00008B,</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; DarkCyan=0x008B8B,</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; DarkGoldenrod=0xB8860B,</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; DarkGray=0xA9A9A9,</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; DarkGrey=0xA9A9A9,</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; DarkGreen=0x006400,</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; DarkKhaki=0xBDB76B,</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; DarkMagenta=0x8B008B,</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; DarkOliveGreen=0x556B2F,</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; DarkOrange=0xFF8C00,</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; DarkOrchid=0x9932CC,</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; DarkRed=0x8B0000,</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; DarkSalmon=0xE9967A,</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; DarkSeaGreen=0x8FBC8F,</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; DarkSlateBlue=0x483D8B,</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; DarkSlateGray=0x2F4F4F,</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; DarkSlateGrey=0x2F4F4F,</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; DarkTurquoise=0x00CED1,</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; DarkViolet=0x9400D3,</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; DeepPink=0xFF1493,</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; DeepSkyBlue=0x00BFFF,</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; DimGray=0x696969,</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; DimGrey=0x696969,</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; DodgerBlue=0x1E90FF,</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; FireBrick=0xB22222,</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; FloralWhite=0xFFFAF0,</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; ForestGreen=0x228B22,</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; Fuchsia=0xFF00FF,</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; Gainsboro=0xDCDCDC,</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; GhostWhite=0xF8F8FF,</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; Gold=0xFFD700,</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; Goldenrod=0xDAA520,</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; Gray=0x808080,</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; Grey=0x808080,</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; Green=0x008000,</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; GreenYellow=0xADFF2F,</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; Honeydew=0xF0FFF0,</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; HotPink=0xFF69B4,</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; IndianRed=0xCD5C5C,</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; Indigo=0x4B0082,</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; Ivory=0xFFFFF0,</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; Khaki=0xF0E68C,</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; Lavender=0xE6E6FA,</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; LavenderBlush=0xFFF0F5,</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; LawnGreen=0x7CFC00,</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; LemonChiffon=0xFFFACD,</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; LightBlue=0xADD8E6,</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; LightCoral=0xF08080,</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; LightCyan=0xE0FFFF,</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; LightGoldenrodYellow=0xFAFAD2,</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; LightGreen=0x90EE90,</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; LightGrey=0xD3D3D3,</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; LightPink=0xFFB6C1,</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; LightSalmon=0xFFA07A,</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; LightSeaGreen=0x20B2AA,</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; LightSkyBlue=0x87CEFA,</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; LightSlateGray=0x778899,</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; LightSlateGrey=0x778899,</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; LightSteelBlue=0xB0C4DE,</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; LightYellow=0xFFFFE0,</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; Lime=0x00FF00,</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; LimeGreen=0x32CD32,</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; Linen=0xFAF0E6,</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; Magenta=0xFF00FF,</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; Maroon=0x800000,</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; MediumAquamarine=0x66CDAA,</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; MediumBlue=0x0000CD,</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; MediumOrchid=0xBA55D3,</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; MediumPurple=0x9370DB,</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; MediumSeaGreen=0x3CB371,</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; MediumSlateBlue=0x7B68EE,</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; MediumSpringGreen=0x00FA9A,</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; MediumTurquoise=0x48D1CC,</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; MediumVioletRed=0xC71585,</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; MidnightBlue=0x191970,</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; MintCream=0xF5FFFA,</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; MistyRose=0xFFE4E1,</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; Moccasin=0xFFE4B5,</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; NavajoWhite=0xFFDEAD,</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; Navy=0x000080,</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; OldLace=0xFDF5E6,</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; Olive=0x808000,</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; OliveDrab=0x6B8E23,</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; Orange=0xFFA500,</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; OrangeRed=0xFF4500,</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; Orchid=0xDA70D6,</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; PaleGoldenrod=0xEEE8AA,</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; PaleGreen=0x98FB98,</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; PaleTurquoise=0xAFEEEE,</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; PaleVioletRed=0xDB7093,</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; PapayaWhip=0xFFEFD5,</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; PeachPuff=0xFFDAB9,</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; Peru=0xCD853F,</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; Pink=0xFFC0CB,</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; Plaid=0xCC5533,</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; Plum=0xDDA0DD,</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; PowderBlue=0xB0E0E6,</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; Purple=0x800080,</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; Red=0xFF0000,</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; RosyBrown=0xBC8F8F,</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; RoyalBlue=0x4169E1,</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; SaddleBrown=0x8B4513,</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; Salmon=0xFA8072,</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; SandyBrown=0xF4A460,</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; SeaGreen=0x2E8B57,</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; Seashell=0xFFF5EE,</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; Sienna=0xA0522D,</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; Silver=0xC0C0C0,</div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; SkyBlue=0x87CEEB,</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; SlateBlue=0x6A5ACD,</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; SlateGray=0x708090,</div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; SlateGrey=0x708090,</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; Snow=0xFFFAFA,</div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; SpringGreen=0x00FF7F,</div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; SteelBlue=0x4682B4,</div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; Tan=0xD2B48C,</div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; Teal=0x008080,</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; Thistle=0xD8BFD8,</div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; Tomato=0xFF6347,</div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; Turquoise=0x40E0D0,</div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; Violet=0xEE82EE,</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; Wheat=0xF5DEB3,</div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; White=0xFFFFFF,</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; WhiteSmoke=0xF5F5F5,</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; Yellow=0xFFFF00,</div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; YellowGreen=0x9ACD32,</div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="comment">// LED RGB color that roughly approximates</span></div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="comment">// the color of incandescent fairy lights,</span></div>
+<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="comment">// assuming that you&#39;re using FastLED</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="comment">// color correction on your LEDs (recommended).</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; FairyLight=0xFFE42D,</div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="comment">// If you are using no color correction, use this</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; FairyLightNCC=0xFF9D2A</div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; } <a class="code" href="group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99">HTMLColorCode</a>;</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;</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;<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="l00732"></a><span class="lineno"> 732</span>&#160;{</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</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="l00734"></a><span class="lineno"> 734</span>&#160;}</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;<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="l00737"></a><span class="lineno"> 737</span>&#160;{</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">return</span> !(lhs == rhs);</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;</div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</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="l00742"></a><span class="lineno"> 742</span>&#160;{</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; uint16_t sl, sr;</div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keywordflow">return</span> sl &lt; sr;</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;<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="l00750"></a><span class="lineno"> 750</span>&#160;{</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; uint16_t sl, sr;</div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="keywordflow">return</span> sl &gt; sr;</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;<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="l00758"></a><span class="lineno"> 758</span>&#160;{</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; uint16_t sl, sr;</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">return</span> sl &gt;= sr;</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;<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="l00766"></a><span class="lineno"> 766</span>&#160;{</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; uint16_t sl, sr;</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keywordflow">return</span> sl &lt;= sr;</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;</div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</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="l00776"></a><span class="lineno"> 776</span>&#160;{</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</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="l00778"></a><span class="lineno"> 778</span>&#160; <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( p1.g, p2.g),</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( p1.b, p2.b));</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;</div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</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="l00784"></a><span class="lineno"> 784</span>&#160;{</div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</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="l00786"></a><span class="lineno"> 786</span>&#160; <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( p1.g, p2.g),</div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( p1.b, p2.b));</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;</div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</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="l00792"></a><span class="lineno"> 792</span>&#160;{</div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</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="l00794"></a><span class="lineno"> 794</span>&#160; <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( p1.g, d),</div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( p1.b, d));</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;}</div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</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="l00800"></a><span class="lineno"> 800</span>&#160;{</div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</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="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;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</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="l00807"></a><span class="lineno"> 807</span>&#160;{</div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</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="l00809"></a><span class="lineno"> 809</span>&#160; p1.g &lt; p2.g ? p1.g : p2.g,</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; p1.b &lt; p2.b ? p1.b : p2.b);</div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;}</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;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</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="l00815"></a><span class="lineno"> 815</span>&#160;{</div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</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="l00817"></a><span class="lineno"> 817</span>&#160; p1.g &gt; p2.g ? p1.g : p2.g,</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; p1.b &gt; p2.b ? p1.b : p2.b);</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"> 820</span>&#160;</div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</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="l00823"></a><span class="lineno"> 823</span>&#160;{</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> retval( p1);</div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; retval.nscale8_video( d);</div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keywordflow">return</span> retval;</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;}</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;</div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;</div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;<span class="keyword">enum</span> EOrder {</div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; RGB=0012,</div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; RBG=0021,</div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; GRB=0102,</div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; GBR=0120,</div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; BRG=0201,</div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; BGR=0210</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;</div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;FASTLED_NAMESPACE_END</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="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="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>
@@ -920,11 +940,11 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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:85</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:33</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 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:569</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 e19dc040..9071fe15 100644
--- a/docs/3.1/platforms_8h_source.html
+++ b/docs/3.1/platforms_8h_source.html
@@ -119,7 +119,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 79fb49d7..3bd6d211 100644
--- a/docs/3.1/power__mgt_8h_source.html
+++ b/docs/3.1/power__mgt_8h_source.html
@@ -101,43 +101,43 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<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;</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="l00019"></a><span class="lineno"> 19</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="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keywordtype">void</span> set_max_power_in_milliwatts( uint32_t powerInmW);</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</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="l00027"></a><span class="lineno"> 27</span>&#160;</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">// Power Control &#39;show&#39; and &#39;delay&#39; functions</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">// These are drop-in replacements for FastLED.show() and FastLED.delay()</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</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="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">// FastLED.show() and FastLED.delay() with these two functions.</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Example:</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// // was: FastLED.show();</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// // now is:</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// show_at_max_brightness_for_power();</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keywordtype">void</span> show_at_max_brightness_for_power();</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keywordtype">void</span> delay_at_max_brightness_for_power( uint16_t ms);</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;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// Power Control internal helper functions</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</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="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</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="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="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment">// POWER_MGT_H</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 61b37efc..1613550a 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 18b2dcd7..382a4fa4 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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_11.js b/docs/3.1/search/all_11.js
index 8cf3cca2..c5293cfd 100644
--- a/docs/3.1/search/all_11.js
+++ b/docs/3.1/search/all_11.js
@@ -6,5 +6,7 @@ var searchData=
['random16_5fadd_5fentropy',['random16_add_entropy',['../group___random.html#ga1078b2029a50e86c93ccf4e3e1d85e7d',1,'random8.h']]],
['random16_5fget_5fseed',['random16_get_seed',['../group___random.html#ga860bc64bfca4ada980e70cf1e03dedd8',1,'random8.h']]],
['random16_5fset_5fseed',['random16_set_seed',['../group___random.html#ga95e371c2438843e0ed1ed83412b28c99',1,'random8.h']]],
- ['random8',['random8',['../group___random.html#ga4e63c74426f6516f28470dc1b814aefe',1,'random8():&#160;random8.h'],['../group___random.html#ga216b1cfe4f62f92f5493515c6b74220c',1,'random8(uint8_t lim):&#160;random8.h'],['../group___random.html#ga2829e2c714f0a0f4617a65c4eddccec2',1,'random8(uint8_t min, uint8_t lim):&#160;random8.h']]]
+ ['random8',['random8',['../group___random.html#ga4e63c74426f6516f28470dc1b814aefe',1,'random8():&#160;random8.h'],['../group___random.html#ga216b1cfe4f62f92f5493515c6b74220c',1,'random8(uint8_t lim):&#160;random8.h'],['../group___random.html#ga2829e2c714f0a0f4617a65c4eddccec2',1,'random8(uint8_t min, uint8_t lim):&#160;random8.h']]],
+ ['refhardwarespioutput',['REFHardwareSPIOutput',['../class_r_e_f_hardware_s_p_i_output.html',1,'']]],
+ ['release',['release',['../class_n_o_p_s_p_i_output.html#a0599fbdf5e04a633d24ff17033443237',1,'NOPSPIOutput']]]
];
diff --git a/docs/3.1/search/all_12.js b/docs/3.1/search/all_12.js
index 80c845c9..8500b10c 100644
--- a/docs/3.1/search/all_12.js
+++ b/docs/3.1/search/all_12.js
@@ -11,12 +11,16 @@ var searchData=
['scale8_5fvideo_5fleaving_5fr1_5fdirty',['scale8_video_LEAVING_R1_DIRTY',['../group___scaling.html#gab341cef8d46232269bb70092fed9eb75',1,'scale8.h']]],
['scaling_20functions',['Scaling functions',['../group___scaling.html',1,'']]],
['seconds16',['seconds16',['../group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69',1,'lib8tion.h']]],
+ ['select',['select',['../class_n_o_p_s_p_i_output.html#ae07bb6f787879f28979cccec9ec4965d',1,'NOPSPIOutput']]],
['selectable',['Selectable',['../class_selectable.html',1,'']]],
['setbrightness',['setBrightness',['../class_c_fast_l_e_d.html#a730ba7d967e882b4b893689cf333b2eb',1,'CFastLED']]],
['setcorrection',['setCorrection',['../class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8',1,'CLEDController::setCorrection(CRGB correction)'],['../class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9',1,'CLEDController::setCorrection(LEDColorCorrection correction)'],['../class_c_fast_l_e_d.html#ad266c3e649cc12a6dc49a1e229acc282',1,'CFastLED::setCorrection()']]],
['setdither',['setDither',['../class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517',1,'CLEDController::setDither()'],['../class_c_fast_l_e_d.html#a7ae5d3864df01101d82d242c123ffb36',1,'CFastLED::setDither()']]],
['setleds',['setLeds',['../class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037',1,'CLEDController']]],
+ ['setmaxpowerinmilliwatts',['setMaxPowerInMilliWatts',['../class_c_fast_l_e_d.html#ab07d62cdec036af9ede70cbd06ece40f',1,'CFastLED']]],
+ ['setmaxpowerinvoltsandmilliamps',['setMaxPowerInVoltsAndMilliamps',['../class_c_fast_l_e_d.html#a996375a3f4a7b8c096f87d8a93c2b196',1,'CFastLED']]],
['setmaxrefreshrate',['setMaxRefreshRate',['../class_c_fast_l_e_d.html#a1f39e8404db214bbd6a776f52a77d8b1',1,'CFastLED']]],
+ ['setselect',['setSelect',['../class_n_o_p_s_p_i_output.html#a6fca9a7e475aecae123879044d33f195',1,'NOPSPIOutput']]],
['settemperature',['setTemperature',['../class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883',1,'CLEDController::setTemperature(CRGB temperature)'],['../class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4',1,'CLEDController::setTemperature(ColorTemperature temperature)'],['../class_c_fast_l_e_d.html#a28c2dfb0ec592db03f3063ade135f19f',1,'CFastLED::setTemperature()']]],
['sfract15',['sfract15',['../group__lib8tion.html#ga00cb5dc9e5b477a58669a3e40bc473c2',1,'lib8tion.h']]],
['sfract15tofloat',['sfract15ToFloat',['../group__lib8tion.html#gab947c1150e3b9056cb91685a14270173',1,'lib8tion.h']]],
@@ -28,7 +32,9 @@ var searchData=
['sin16_5fc',['sin16_C',['../group___trig.html#ga0890962cb06b267617f4b06d7e9be5eb',1,'trig8.h']]],
['sin8_5favr',['sin8_avr',['../group___trig.html#ga6aa1f993cbbc427d80da1ee2ccca86e7',1,'trig8.h']]],
['sin8_5fc',['sin8_C',['../group___trig.html#ga46933a9b42921c6605588268d11f7c1e',1,'trig8.h']]],
- ['size',['size',['../class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08',1,'CLEDController::size()'],['../class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0',1,'CFastLED::size()']]],
+ ['size',['size',['../class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e',1,'CLEDController::size()'],['../class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0',1,'CFastLED::size()']]],
+ ['sk6812',['SK6812',['../class_s_k6812.html',1,'']]],
+ ['sk6812controller',['SK6812Controller',['../class_s_k6812_controller.html',1,'']]],
['sm16716controller',['SM16716Controller',['../class_s_m16716_controller.html',1,'']]],
['softwarespioutput',['SoftwareSPIOutput',['../class_software_s_p_i_output.html',1,'']]],
['spioutput',['SPIOutput',['../class_s_p_i_output.html',1,'']]],
diff --git a/docs/3.1/search/all_13.js b/docs/3.1/search/all_13.js
index d2981845..f283eb35 100644
--- a/docs/3.1/search/all_13.js
+++ b/docs/3.1/search/all_13.js
@@ -6,6 +6,7 @@ var searchData=
['tm1804',['TM1804',['../class_t_m1804.html',1,'']]],
['tm1809',['TM1809',['../class_t_m1809.html',1,'']]],
['tm1809controller800khz',['TM1809Controller800Khz',['../class_t_m1809_controller800_khz.html',1,'']]],
+ ['tm1812',['TM1812',['../class_t_m1812.html',1,'']]],
['tm1829',['TM1829',['../class_t_m1829.html',1,'']]],
['tm1829controller1600khz',['TM1829Controller1600Khz',['../class_t_m1829_controller1600_khz.html',1,'']]],
['tm1829controller800khz',['TM1829Controller800Khz',['../class_t_m1829_controller800_khz.html',1,'']]],
diff --git a/docs/3.1/search/all_15.js b/docs/3.1/search/all_15.js
index a95343bb..24d563c5 100644
--- a/docs/3.1/search/all_15.js
+++ b/docs/3.1/search/all_15.js
@@ -1,5 +1,13 @@
var searchData=
[
+ ['waitfully',['waitFully',['../class_n_o_p_s_p_i_output.html#a6d1c46106879fc835ad6ba8149b20068',1,'NOPSPIOutput']]],
+ ['writebit',['writeBit',['../class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637',1,'NOPSPIOutput::writeBit(uint8_t b)'],['../class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637',1,'NOPSPIOutput::writeBit(uint8_t b)']]],
+ ['writebyte',['writeByte',['../class_n_o_p_s_p_i_output.html#af5485fc346e12c50480b969e5b242636',1,'NOPSPIOutput']]],
+ ['writebytes',['writeBytes',['../class_n_o_p_s_p_i_output.html#a7b33548cfee1f5cda7a8a48fa45ee460',1,'NOPSPIOutput']]],
+ ['writebytesvalue',['writeBytesValue',['../class_n_o_p_s_p_i_output.html#a2f8e72323c827eb869b222b5a36ebbc1',1,'NOPSPIOutput']]],
+ ['writebytesvalueraw',['writeBytesValueRaw',['../class_n_o_p_s_p_i_output.html#a7c67ce1f9d44cfcac9b94fa9f097835f',1,'NOPSPIOutput']]],
+ ['writepixels',['writePixels',['../class_n_o_p_s_p_i_output.html#aa192a8b0f727e7c9fc399e94532e287f',1,'NOPSPIOutput']]],
+ ['writeword',['writeWord',['../class_n_o_p_s_p_i_output.html#a31ccabe3e4987751ad67a5d06e502df2',1,'NOPSPIOutput']]],
['ws2801controller',['WS2801Controller',['../class_w_s2801_controller.html',1,'']]],
['ws2803controller',['WS2803Controller',['../class_w_s2803_controller.html',1,'']]],
['ws2811',['WS2811',['../class_w_s2811.html',1,'']]],
diff --git a/docs/3.1/search/all_6.js b/docs/3.1/search/all_6.js
index efe56411..eee27079 100644
--- a/docs/3.1/search/all_6.js
+++ b/docs/3.1/search/all_6.js
@@ -16,7 +16,7 @@ var searchData=
['fract16',['fract16',['../group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5',1,'lib8tion.h']]],
['fract8',['fract8',['../group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644',1,'lib8tion.h']]],
['fast_20math_20functions',['Fast math functions',['../group__lib8tion.html',1,'']]],
- ['fastled3_2e0',['FastLED3.0',['../md_release_notes.html',1,'']]],
+ ['fastled3_2e1_2e1pre',['FastLED3.1.1pre',['../md_release_notes.html',1,'']]],
['fast_20random_20number_20generators',['Fast random number generators',['../group___random.html',1,'']]],
['fast_20trig_20functions',['Fast trig functions',['../group___trig.html',1,'']]]
];
diff --git a/docs/3.1/search/all_9.js b/docs/3.1/search/all_9.js
index 14606b29..0b9e9cc9 100644
--- a/docs/3.1/search/all_9.js
+++ b/docs/3.1/search/all_9.js
@@ -1,7 +1,7 @@
var searchData=
[
['ieee754binary32_5ft',['IEEE754binary32_t',['../union_i_e_e_e754binary32__t.html',1,'']]],
- ['init',['init',['../class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608',1,'LPD8806Controller::init()'],['../class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4',1,'WS2801Controller::init()'],['../class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0',1,'APA102Controller::init()'],['../class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a',1,'P9813Controller::init()'],['../class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591',1,'SM16716Controller::init()'],['../class_c_l_e_d_controller.html#af877a15a5ec452780fbd1d359b8a9913',1,'CLEDController::init()'],['../class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3',1,'DMXSimpleController::init()'],['../class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27',1,'DMXSerialController::init()']]],
+ ['init',['init',['../class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608',1,'LPD8806Controller::init()'],['../class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4',1,'WS2801Controller::init()'],['../class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0',1,'APA102Controller::init()'],['../class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a',1,'P9813Controller::init()'],['../class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591',1,'SM16716Controller::init()'],['../class_c_l_e_d_controller.html#af877a15a5ec452780fbd1d359b8a9913',1,'CLEDController::init()'],['../class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3',1,'DMXSimpleController::init()'],['../class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27',1,'DMXSerialController::init()'],['../class_n_o_p_s_p_i_output.html#ad9ff9bf62427b69e3bb578699e0ce561',1,'NOPSPIOutput::init()']]],
['init_5fbinary_5fdithering',['init_binary_dithering',['../struct_pixel_controller.html#accb48b27c47c742a8b13f97ae1d82d32',1,'PixelController']]],
['inoise16_5fraw',['inoise16_raw',['../group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd',1,'inoise16_raw(uint32_t x, uint32_t y, uint32_t z):&#160;noise.cpp'],['../group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd',1,'inoise16_raw(uint32_t x, uint32_t y, uint32_t z):&#160;noise.cpp']]],
['inputpin',['InputPin',['../class_input_pin.html',1,'']]]
diff --git a/docs/3.1/search/all_d.js b/docs/3.1/search/all_d.js
index 08d151e5..f2dc6604 100644
--- a/docs/3.1/search/all_d.js
+++ b/docs/3.1/search/all_d.js
@@ -4,6 +4,7 @@ var searchData=
['next',['next',['../class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565',1,'CLEDController']]],
['noise_20functions',['Noise functions',['../group___noise.html',1,'']]],
['noise_2eh',['noise.h',['../noise_8h.html',1,'']]],
+ ['nopspioutput',['NOPSPIOutput',['../class_n_o_p_s_p_i_output.html',1,'']]],
['nscale8_5fleaving_5fr1_5fdirty',['nscale8_LEAVING_R1_DIRTY',['../group___scaling.html#ga5f6dde3d9398f4b389c96e759a3f7b80',1,'scale8.h']]],
['nscale8_5fvideo_5fleaving_5fr1_5fdirty',['nscale8_video_LEAVING_R1_DIRTY',['../group___scaling.html#ga2a580fcaa010558218faae95d1936635',1,'scale8.h']]],
['nscale8x2',['nscale8x2',['../group___scaling.html#ga6f419761a744efed4bae8875ac07aef0',1,'scale8.h']]],
diff --git a/docs/3.1/search/all_f.js b/docs/3.1/search/all_f.js
index ed1093be..b332c0d4 100644
--- a/docs/3.1/search/all_f.js
+++ b/docs/3.1/search/all_f.js
@@ -5,5 +5,7 @@ var searchData=
['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)']]],
+ ['pl9823',['PL9823',['../class_p_l9823.html',1,'']]],
+ ['pl9823controller',['PL9823Controller',['../class_p_l9823_controller.html',1,'']]],
['power_20management_20functions',['Power management functions',['../group___power.html',1,'']]]
];
diff --git a/docs/3.1/search/classes_10.js b/docs/3.1/search/classes_10.js
index 938825cd..bf0b35e8 100644
--- a/docs/3.1/search/classes_10.js
+++ b/docs/3.1/search/classes_10.js
@@ -1,9 +1,14 @@
var searchData=
[
- ['ucs1903',['UCS1903',['../class_u_c_s1903.html',1,'']]],
- ['ucs1903b',['UCS1903B',['../class_u_c_s1903_b.html',1,'']]],
- ['ucs1903bcontroller800khz',['UCS1903BController800Khz',['../class_u_c_s1903_b_controller800_khz.html',1,'']]],
- ['ucs1903controller400khz',['UCS1903Controller400Khz',['../class_u_c_s1903_controller400_khz.html',1,'']]],
- ['ucs1904',['UCS1904',['../class_u_c_s1904.html',1,'']]],
- ['ucs1904controller800khz',['UCS1904Controller800Khz',['../class_u_c_s1904_controller800_khz.html',1,'']]]
+ ['tbytesforlong',['tBytesForLong',['../uniont_bytes_for_long.html',1,'']]],
+ ['tm1803',['TM1803',['../class_t_m1803.html',1,'']]],
+ ['tm1803controller400khz',['TM1803Controller400Khz',['../class_t_m1803_controller400_khz.html',1,'']]],
+ ['tm1804',['TM1804',['../class_t_m1804.html',1,'']]],
+ ['tm1809',['TM1809',['../class_t_m1809.html',1,'']]],
+ ['tm1809controller800khz',['TM1809Controller800Khz',['../class_t_m1809_controller800_khz.html',1,'']]],
+ ['tm1812',['TM1812',['../class_t_m1812.html',1,'']]],
+ ['tm1829',['TM1829',['../class_t_m1829.html',1,'']]],
+ ['tm1829controller1600khz',['TM1829Controller1600Khz',['../class_t_m1829_controller1600_khz.html',1,'']]],
+ ['tm1829controller800khz',['TM1829Controller800Khz',['../class_t_m1829_controller800_khz.html',1,'']]],
+ ['trgbgradientpaletteentryunion',['TRGBGradientPaletteEntryUnion',['../union_t_r_g_b_gradient_palette_entry_union.html',1,'']]]
];
diff --git a/docs/3.1/search/classes_11.js b/docs/3.1/search/classes_11.js
index a95343bb..938825cd 100644
--- a/docs/3.1/search/classes_11.js
+++ b/docs/3.1/search/classes_11.js
@@ -1,13 +1,9 @@
var searchData=
[
- ['ws2801controller',['WS2801Controller',['../class_w_s2801_controller.html',1,'']]],
- ['ws2803controller',['WS2803Controller',['../class_w_s2803_controller.html',1,'']]],
- ['ws2811',['WS2811',['../class_w_s2811.html',1,'']]],
- ['ws2811_5f400',['WS2811_400',['../class_w_s2811__400.html',1,'']]],
- ['ws2811controller400khz',['WS2811Controller400Khz',['../class_w_s2811_controller400_khz.html',1,'']]],
- ['ws2811controller800khz',['WS2811Controller800Khz',['../class_w_s2811_controller800_khz.html',1,'']]],
- ['ws2812',['WS2812',['../class_w_s2812.html',1,'']]],
- ['ws2812b',['WS2812B',['../class_w_s2812_b.html',1,'']]],
- ['ws2812controller800khz',['WS2812Controller800Khz',['../class_w_s2812_controller800_khz.html',1,'']]],
- ['ws2812controller800khz_3c_20data_5fpin_2c_20grb_20_3e',['WS2812Controller800Khz&lt; DATA_PIN, GRB &gt;',['../class_w_s2812_controller800_khz.html',1,'']]]
+ ['ucs1903',['UCS1903',['../class_u_c_s1903.html',1,'']]],
+ ['ucs1903b',['UCS1903B',['../class_u_c_s1903_b.html',1,'']]],
+ ['ucs1903bcontroller800khz',['UCS1903BController800Khz',['../class_u_c_s1903_b_controller800_khz.html',1,'']]],
+ ['ucs1903controller400khz',['UCS1903Controller400Khz',['../class_u_c_s1903_controller400_khz.html',1,'']]],
+ ['ucs1904',['UCS1904',['../class_u_c_s1904.html',1,'']]],
+ ['ucs1904controller800khz',['UCS1904Controller800Khz',['../class_u_c_s1904_controller800_khz.html',1,'']]]
];
diff --git a/docs/3.1/search/classes_a.js b/docs/3.1/search/classes_a.js
index 5694348f..90998429 100644
--- a/docs/3.1/search/classes_a.js
+++ b/docs/3.1/search/classes_a.js
@@ -1,4 +1,5 @@
var searchData=
[
- ['neopixel',['NEOPIXEL',['../class_n_e_o_p_i_x_e_l.html',1,'']]]
+ ['neopixel',['NEOPIXEL',['../class_n_e_o_p_i_x_e_l.html',1,'']]],
+ ['nopspioutput',['NOPSPIOutput',['../class_n_o_p_s_p_i_output.html',1,'']]]
];
diff --git a/docs/3.1/search/classes_c.js b/docs/3.1/search/classes_c.js
index eb497370..ce15a21e 100644
--- a/docs/3.1/search/classes_c.js
+++ b/docs/3.1/search/classes_c.js
@@ -2,5 +2,7 @@ var searchData=
[
['p9813controller',['P9813Controller',['../class_p9813_controller.html',1,'']]],
['pin',['Pin',['../class_pin.html',1,'']]],
- ['pixelcontroller',['PixelController',['../struct_pixel_controller.html',1,'']]]
+ ['pixelcontroller',['PixelController',['../struct_pixel_controller.html',1,'']]],
+ ['pl9823',['PL9823',['../class_p_l9823.html',1,'']]],
+ ['pl9823controller',['PL9823Controller',['../class_p_l9823_controller.html',1,'']]]
];
diff --git a/docs/3.1/search/classes_e.js b/docs/3.1/search/classes_e.js
index 177c396d..acf6872e 100644
--- a/docs/3.1/search/classes_e.js
+++ b/docs/3.1/search/classes_e.js
@@ -1,15 +1,4 @@
var searchData=
[
- ['selectable',['Selectable',['../class_selectable.html',1,'']]],
- ['sm16716controller',['SM16716Controller',['../class_s_m16716_controller.html',1,'']]],
- ['softwarespioutput',['SoftwareSPIOutput',['../class_software_s_p_i_output.html',1,'']]],
- ['spioutput',['SPIOutput',['../class_s_p_i_output.html',1,'']]],
- ['spioutput_3c_20data_5fpin_2c_20clock_5fpin_2c_20spi_5fspeed_20_3e',['SPIOutput&lt; DATA_PIN, CLOCK_PIN, SPI_SPEED &gt;',['../class_s_p_i_output.html',1,'']]],
- ['spioutput_3c_20spi2_5fdata_2c_20spi2_5fclock_2c_20spi_5fspeed_20_3e',['SPIOutput&lt; SPI2_DATA, SPI2_CLOCK, SPI_SPEED &gt;',['../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',1,'']]],
- ['spioutput_3c_20spi2_5fdata_2c_20spi_5fclock_2c_20spi_5fspeed_20_3e',['SPIOutput&lt; SPI2_DATA, SPI_CLOCK, SPI_SPEED &gt;',['../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',1,'']]],
- ['spioutput_3c_20spi_5fdata_2c_20spi2_5fclock_2c_20spi_5fspeed_20_3e',['SPIOutput&lt; SPI_DATA, SPI2_CLOCK, SPI_SPEED &gt;',['../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',1,'']]],
- ['spioutput_3c_20spi_5fdata_2c_20spi_5fclock_2c_20spi_5fspeed_20_3e',['SPIOutput&lt; SPI_DATA, SPI_CLOCK, SPI_SPEED &gt;',['../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',1,'']]],
- ['spioutput_3c_20spi_5fuart0_5fdata_2c_20spi_5fuart0_5fclock_2c_20spi_5fspeed_20_3e',['SPIOutput&lt; SPI_UART0_DATA, SPI_UART0_CLOCK, SPI_SPEED &gt;',['../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',1,'']]],
- ['spioutput_3c_20spi_5fuart1_5fdata_2c_20spi_5fuart1_5fclock_2c_20spi_5fspeed_20_3e',['SPIOutput&lt; SPI_UART1_DATA, SPI_UART1_CLOCK, SPI_SPEED &gt;',['../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',1,'']]],
- ['sub4',['sub4',['../structsub4.html',1,'']]]
+ ['refhardwarespioutput',['REFHardwareSPIOutput',['../class_r_e_f_hardware_s_p_i_output.html',1,'']]]
];
diff --git a/docs/3.1/search/classes_f.js b/docs/3.1/search/classes_f.js
index 6bda5b3c..c106254f 100644
--- a/docs/3.1/search/classes_f.js
+++ b/docs/3.1/search/classes_f.js
@@ -1,13 +1,17 @@
var searchData=
[
- ['tbytesforlong',['tBytesForLong',['../uniont_bytes_for_long.html',1,'']]],
- ['tm1803',['TM1803',['../class_t_m1803.html',1,'']]],
- ['tm1803controller400khz',['TM1803Controller400Khz',['../class_t_m1803_controller400_khz.html',1,'']]],
- ['tm1804',['TM1804',['../class_t_m1804.html',1,'']]],
- ['tm1809',['TM1809',['../class_t_m1809.html',1,'']]],
- ['tm1809controller800khz',['TM1809Controller800Khz',['../class_t_m1809_controller800_khz.html',1,'']]],
- ['tm1829',['TM1829',['../class_t_m1829.html',1,'']]],
- ['tm1829controller1600khz',['TM1829Controller1600Khz',['../class_t_m1829_controller1600_khz.html',1,'']]],
- ['tm1829controller800khz',['TM1829Controller800Khz',['../class_t_m1829_controller800_khz.html',1,'']]],
- ['trgbgradientpaletteentryunion',['TRGBGradientPaletteEntryUnion',['../union_t_r_g_b_gradient_palette_entry_union.html',1,'']]]
+ ['selectable',['Selectable',['../class_selectable.html',1,'']]],
+ ['sk6812',['SK6812',['../class_s_k6812.html',1,'']]],
+ ['sk6812controller',['SK6812Controller',['../class_s_k6812_controller.html',1,'']]],
+ ['sm16716controller',['SM16716Controller',['../class_s_m16716_controller.html',1,'']]],
+ ['softwarespioutput',['SoftwareSPIOutput',['../class_software_s_p_i_output.html',1,'']]],
+ ['spioutput',['SPIOutput',['../class_s_p_i_output.html',1,'']]],
+ ['spioutput_3c_20data_5fpin_2c_20clock_5fpin_2c_20spi_5fspeed_20_3e',['SPIOutput&lt; DATA_PIN, CLOCK_PIN, SPI_SPEED &gt;',['../class_s_p_i_output.html',1,'']]],
+ ['spioutput_3c_20spi2_5fdata_2c_20spi2_5fclock_2c_20spi_5fspeed_20_3e',['SPIOutput&lt; SPI2_DATA, SPI2_CLOCK, SPI_SPEED &gt;',['../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',1,'']]],
+ ['spioutput_3c_20spi2_5fdata_2c_20spi_5fclock_2c_20spi_5fspeed_20_3e',['SPIOutput&lt; SPI2_DATA, SPI_CLOCK, SPI_SPEED &gt;',['../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',1,'']]],
+ ['spioutput_3c_20spi_5fdata_2c_20spi2_5fclock_2c_20spi_5fspeed_20_3e',['SPIOutput&lt; SPI_DATA, SPI2_CLOCK, SPI_SPEED &gt;',['../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',1,'']]],
+ ['spioutput_3c_20spi_5fdata_2c_20spi_5fclock_2c_20spi_5fspeed_20_3e',['SPIOutput&lt; SPI_DATA, SPI_CLOCK, SPI_SPEED &gt;',['../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',1,'']]],
+ ['spioutput_3c_20spi_5fuart0_5fdata_2c_20spi_5fuart0_5fclock_2c_20spi_5fspeed_20_3e',['SPIOutput&lt; SPI_UART0_DATA, SPI_UART0_CLOCK, SPI_SPEED &gt;',['../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',1,'']]],
+ ['spioutput_3c_20spi_5fuart1_5fdata_2c_20spi_5fuart1_5fclock_2c_20spi_5fspeed_20_3e',['SPIOutput&lt; SPI_UART1_DATA, SPI_UART1_CLOCK, SPI_SPEED &gt;',['../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',1,'']]],
+ ['sub4',['sub4',['../structsub4.html',1,'']]]
];
diff --git a/docs/3.1/search/functions_10.js b/docs/3.1/search/functions_10.js
index 7c26a3b0..21924f95 100644
--- a/docs/3.1/search/functions_10.js
+++ b/docs/3.1/search/functions_10.js
@@ -4,5 +4,6 @@ var searchData=
['random16_5fadd_5fentropy',['random16_add_entropy',['../group___random.html#ga1078b2029a50e86c93ccf4e3e1d85e7d',1,'random8.h']]],
['random16_5fget_5fseed',['random16_get_seed',['../group___random.html#ga860bc64bfca4ada980e70cf1e03dedd8',1,'random8.h']]],
['random16_5fset_5fseed',['random16_set_seed',['../group___random.html#ga95e371c2438843e0ed1ed83412b28c99',1,'random8.h']]],
- ['random8',['random8',['../group___random.html#ga4e63c74426f6516f28470dc1b814aefe',1,'random8():&#160;random8.h'],['../group___random.html#ga216b1cfe4f62f92f5493515c6b74220c',1,'random8(uint8_t lim):&#160;random8.h'],['../group___random.html#ga2829e2c714f0a0f4617a65c4eddccec2',1,'random8(uint8_t min, uint8_t lim):&#160;random8.h']]]
+ ['random8',['random8',['../group___random.html#ga4e63c74426f6516f28470dc1b814aefe',1,'random8():&#160;random8.h'],['../group___random.html#ga216b1cfe4f62f92f5493515c6b74220c',1,'random8(uint8_t lim):&#160;random8.h'],['../group___random.html#ga2829e2c714f0a0f4617a65c4eddccec2',1,'random8(uint8_t min, uint8_t lim):&#160;random8.h']]],
+ ['release',['release',['../class_n_o_p_s_p_i_output.html#a0599fbdf5e04a633d24ff17033443237',1,'NOPSPIOutput']]]
];
diff --git a/docs/3.1/search/functions_11.js b/docs/3.1/search/functions_11.js
index 0eda8d4a..f87407ac 100644
--- a/docs/3.1/search/functions_11.js
+++ b/docs/3.1/search/functions_11.js
@@ -7,11 +7,15 @@ var searchData=
['scale8_5fvideo',['scale8_video',['../group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1',1,'scale8.h']]],
['scale8_5fvideo_5fleaving_5fr1_5fdirty',['scale8_video_LEAVING_R1_DIRTY',['../group___scaling.html#gab341cef8d46232269bb70092fed9eb75',1,'scale8.h']]],
['seconds16',['seconds16',['../group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69',1,'lib8tion.h']]],
+ ['select',['select',['../class_n_o_p_s_p_i_output.html#ae07bb6f787879f28979cccec9ec4965d',1,'NOPSPIOutput']]],
['setbrightness',['setBrightness',['../class_c_fast_l_e_d.html#a730ba7d967e882b4b893689cf333b2eb',1,'CFastLED']]],
['setcorrection',['setCorrection',['../class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8',1,'CLEDController::setCorrection(CRGB correction)'],['../class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9',1,'CLEDController::setCorrection(LEDColorCorrection correction)'],['../class_c_fast_l_e_d.html#ad266c3e649cc12a6dc49a1e229acc282',1,'CFastLED::setCorrection()']]],
['setdither',['setDither',['../class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517',1,'CLEDController::setDither()'],['../class_c_fast_l_e_d.html#a7ae5d3864df01101d82d242c123ffb36',1,'CFastLED::setDither()']]],
['setleds',['setLeds',['../class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037',1,'CLEDController']]],
+ ['setmaxpowerinmilliwatts',['setMaxPowerInMilliWatts',['../class_c_fast_l_e_d.html#ab07d62cdec036af9ede70cbd06ece40f',1,'CFastLED']]],
+ ['setmaxpowerinvoltsandmilliamps',['setMaxPowerInVoltsAndMilliamps',['../class_c_fast_l_e_d.html#a996375a3f4a7b8c096f87d8a93c2b196',1,'CFastLED']]],
['setmaxrefreshrate',['setMaxRefreshRate',['../class_c_fast_l_e_d.html#a1f39e8404db214bbd6a776f52a77d8b1',1,'CFastLED']]],
+ ['setselect',['setSelect',['../class_n_o_p_s_p_i_output.html#a6fca9a7e475aecae123879044d33f195',1,'NOPSPIOutput']]],
['settemperature',['setTemperature',['../class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883',1,'CLEDController::setTemperature(CRGB temperature)'],['../class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4',1,'CLEDController::setTemperature(ColorTemperature temperature)'],['../class_c_fast_l_e_d.html#a28c2dfb0ec592db03f3063ade135f19f',1,'CFastLED::setTemperature()']]],
['sfract15tofloat',['sfract15ToFloat',['../group__lib8tion.html#gab947c1150e3b9056cb91685a14270173',1,'lib8tion.h']]],
['show',['show',['../class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5',1,'LPD8806Controller::show()'],['../class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0',1,'WS2801Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0',1,'WS2801Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332',1,'APA102Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332',1,'APA102Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81',1,'P9813Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81',1,'P9813Controller::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d',1,'SM16716Controller::show()'],['../class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f',1,'CLEDController::show(const struct CRGB *data, int nLeds, CRGB scale)=0'],['../class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb',1,'CLEDController::show(const struct CRGB *data, int nLeds, uint8_t brightness)'],['../class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186',1,'DMXSimpleController::show()'],['../class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1',1,'DMXSerialController::show()'],['../class_c_fast_l_e_d.html#a83afdd1e2a21f33ac4f8d2610d6e331b',1,'CFastLED::show(uint8_t scale)'],['../class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de',1,'CFastLED::show()']]],
@@ -21,7 +25,7 @@ var searchData=
['sin16_5fc',['sin16_C',['../group___trig.html#ga0890962cb06b267617f4b06d7e9be5eb',1,'trig8.h']]],
['sin8_5favr',['sin8_avr',['../group___trig.html#ga6aa1f993cbbc427d80da1ee2ccca86e7',1,'trig8.h']]],
['sin8_5fc',['sin8_C',['../group___trig.html#ga46933a9b42921c6605588268d11f7c1e',1,'trig8.h']]],
- ['size',['size',['../class_c_l_e_d_controller.html#a8840496d231f1fe0fa640970dc14db08',1,'CLEDController::size()'],['../class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0',1,'CFastLED::size()']]],
+ ['size',['size',['../class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e',1,'CLEDController::size()'],['../class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0',1,'CFastLED::size()']]],
['sqrt16',['sqrt16',['../group___math.html#ga66ecef97faa5f9b92c49766651c5afe9',1,'math8.h']]],
['squarewave8',['squarewave8',['../group__lib8tion.html#ga17ae8fcfd9c485bb1120d908f836637a',1,'lib8tion.h']]],
['sub8',['sub8',['../group___math.html#ga0c40c15ab5af36ddabded161941f2091',1,'math8.h']]]
diff --git a/docs/3.1/search/functions_13.html b/docs/3.1/search/functions_13.html
new file mode 100644
index 00000000..81a66b19
--- /dev/null
+++ b/docs/3.1/search/functions_13.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="functions_13.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/functions_13.js b/docs/3.1/search/functions_13.js
new file mode 100644
index 00000000..f3ff0f5c
--- /dev/null
+++ b/docs/3.1/search/functions_13.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+ ['waitfully',['waitFully',['../class_n_o_p_s_p_i_output.html#a6d1c46106879fc835ad6ba8149b20068',1,'NOPSPIOutput']]],
+ ['writebit',['writeBit',['../class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637',1,'NOPSPIOutput::writeBit(uint8_t b)'],['../class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637',1,'NOPSPIOutput::writeBit(uint8_t b)']]],
+ ['writebyte',['writeByte',['../class_n_o_p_s_p_i_output.html#af5485fc346e12c50480b969e5b242636',1,'NOPSPIOutput']]],
+ ['writebytes',['writeBytes',['../class_n_o_p_s_p_i_output.html#a7b33548cfee1f5cda7a8a48fa45ee460',1,'NOPSPIOutput']]],
+ ['writebytesvalue',['writeBytesValue',['../class_n_o_p_s_p_i_output.html#a2f8e72323c827eb869b222b5a36ebbc1',1,'NOPSPIOutput']]],
+ ['writebytesvalueraw',['writeBytesValueRaw',['../class_n_o_p_s_p_i_output.html#a7c67ce1f9d44cfcac9b94fa9f097835f',1,'NOPSPIOutput']]],
+ ['writepixels',['writePixels',['../class_n_o_p_s_p_i_output.html#aa192a8b0f727e7c9fc399e94532e287f',1,'NOPSPIOutput']]],
+ ['writeword',['writeWord',['../class_n_o_p_s_p_i_output.html#a31ccabe3e4987751ad67a5d06e502df2',1,'NOPSPIOutput']]]
+];
diff --git a/docs/3.1/search/functions_9.js b/docs/3.1/search/functions_9.js
index efc7e84a..45b49fe2 100644
--- a/docs/3.1/search/functions_9.js
+++ b/docs/3.1/search/functions_9.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['init',['init',['../class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608',1,'LPD8806Controller::init()'],['../class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4',1,'WS2801Controller::init()'],['../class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0',1,'APA102Controller::init()'],['../class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a',1,'P9813Controller::init()'],['../class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591',1,'SM16716Controller::init()'],['../class_c_l_e_d_controller.html#af877a15a5ec452780fbd1d359b8a9913',1,'CLEDController::init()'],['../class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3',1,'DMXSimpleController::init()'],['../class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27',1,'DMXSerialController::init()']]],
+ ['init',['init',['../class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608',1,'LPD8806Controller::init()'],['../class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4',1,'WS2801Controller::init()'],['../class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0',1,'APA102Controller::init()'],['../class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a',1,'P9813Controller::init()'],['../class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591',1,'SM16716Controller::init()'],['../class_c_l_e_d_controller.html#af877a15a5ec452780fbd1d359b8a9913',1,'CLEDController::init()'],['../class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3',1,'DMXSimpleController::init()'],['../class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27',1,'DMXSerialController::init()'],['../class_n_o_p_s_p_i_output.html#ad9ff9bf62427b69e3bb578699e0ce561',1,'NOPSPIOutput::init()']]],
['init_5fbinary_5fdithering',['init_binary_dithering',['../struct_pixel_controller.html#accb48b27c47c742a8b13f97ae1d82d32',1,'PixelController']]],
['inoise16_5fraw',['inoise16_raw',['../group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd',1,'inoise16_raw(uint32_t x, uint32_t y, uint32_t z):&#160;noise.cpp'],['../group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd',1,'inoise16_raw(uint32_t x, uint32_t y, uint32_t z):&#160;noise.cpp']]]
];
diff --git a/docs/3.1/search/pages_0.js b/docs/3.1/search/pages_0.js
index 6d85403d..4ff498e3 100644
--- a/docs/3.1/search/pages_0.js
+++ b/docs/3.1/search/pages_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['fastled3_2e0',['FastLED3.0',['../md_release_notes.html',1,'']]]
+ ['fastled3_2e1_2e1pre',['FastLED3.1.1pre',['../md_release_notes.html',1,'']]]
];
diff --git a/docs/3.1/search/searchdata.js b/docs/3.1/search/searchdata.js
index cc437762..854e70e9 100644
--- a/docs/3.1/search/searchdata.js
+++ b/docs/3.1/search/searchdata.js
@@ -1,9 +1,9 @@
var indexSectionsWithContent =
{
0: "_abcdefghijlmnopqrstuw",
- 1: "abcdfgijlmnopqstuw",
+ 1: "abcdfgijlmnopqrstuw",
2: "bcfn",
- 3: "_abcdefghilmnopqrst",
+ 3: "_abcdefghilmnopqrstw",
4: "fr",
5: "afqs",
6: "cehl",
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 ed232de5..38b30877 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 ab997dd9..f85032d3 100644
--- a/docs/3.1/struct_c_h_s_v.html
+++ b/docs/3.1/struct_c_h_s_v.html
@@ -172,7 +172,7 @@ union {</td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 0b3af92a..05351337 100644
--- a/docs/3.1/struct_c_r_g_b-members.html
+++ b/docs/3.1/struct_c_r_g_b-members.html
@@ -218,56 +218,58 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<tr bgcolor="#f0f0f0"><td class="entry"><b>NavajoWhite</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>Navy</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>nscale8</b>(uint8_t scaledown) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>nscale8_video</b>(uint8_t scaledown) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>OldLace</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>Olive</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>OliveDrab</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>operator bool</b>() const __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator rgb24</b>() const (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator%=</b>(uint8_t scaledown) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator&amp;=</b>(const CRGB &amp;rhs) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator&amp;=</b>(uint8_t d) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator*=</b>(uint8_t d) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator++</b>() __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator++</b>(int DUMMY_ARG) __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator+=</b>(const CRGB &amp;rhs) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator-</b>() (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator--</b>() __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator--</b>(int DUMMY_ARG) __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator-=</b>(const CRGB &amp;rhs) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator/=</b>(uint8_t d) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const CRGB &amp;rhs) __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const uint32_t colorcode) __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const CHSV &amp;rhs) __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator&gt;&gt;=</b>(uint8_t d) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator[]</b>(uint8_t x) __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator[]</b>(uint8_t x) const __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator|=</b>(const CRGB &amp;rhs) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>operator|=</b>(uint8_t d) (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"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Orange</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>OrangeRed</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>Orchid</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>PaleGoldenrod</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>PaleGreen</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>PaleTurquoise</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>PaleVioletRed</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>PapayaWhip</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>PeachPuff</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>Peru</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>Pink</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>Plaid</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>Plum</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>PowderBlue</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>Purple</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>r</b> (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>raw</b> (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>Red</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>nscale8</b>(const CRGB &amp;scaledown) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>nscale8_video</b>(uint8_t scaledown) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>OldLace</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>Olive</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>OliveDrab</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>operator bool</b>() const __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator rgb24</b>() const (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator%=</b>(uint8_t scaledown) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator&amp;=</b>(const CRGB &amp;rhs) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator&amp;=</b>(uint8_t d) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator*=</b>(uint8_t d) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator++</b>() __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator++</b>(int) __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator+=</b>(const CRGB &amp;rhs) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator-</b>() (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator--</b>() __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator--</b>(int) __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator-=</b>(const CRGB &amp;rhs) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator/=</b>(uint8_t d) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const CRGB &amp;rhs) __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const uint32_t colorcode) __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const CHSV &amp;rhs) __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator&gt;&gt;=</b>(uint8_t d) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator[]</b>(uint8_t x) __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator[]</b>(uint8_t x) const __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator|=</b>(const CRGB &amp;rhs) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator|=</b>(uint8_t d) (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"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>Orange</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>OrangeRed</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>Orchid</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>PaleGoldenrod</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>PaleGreen</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>PaleTurquoise</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>PaleVioletRed</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>PapayaWhip</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>PeachPuff</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>Peru</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>Pink</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>Plaid</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>Plum</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>PowderBlue</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>Purple</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>r</b> (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>raw</b> (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>red</b> (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>RosyBrown</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>RoyalBlue</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>SaddleBrown</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>Salmon</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>SandyBrown</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>Red</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>RosyBrown</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>RoyalBlue</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>SaddleBrown</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>Salmon</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>SandyBrown</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>scale8</b>(const CRGB &amp;scaledown) const (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"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SeaGreen</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>Seashell</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>setColorCode</b>(uint32_t colorcode) __attribute__((always_inline)) (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"><span class="mlabel">inline</span></td></tr>
@@ -299,7 +301,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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 6fd56065..871dcddd 100644
--- a/docs/3.1/struct_c_r_g_b.html
+++ b/docs/3.1/struct_c_r_g_b.html
@@ -357,15 +357,15 @@ const uint8_t &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operat
<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___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___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
-<tr class="separator:afca6a189ce1da99d897f755b1ca16638"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a324b4ad77f766a55b9c3960b6e8b2815"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a324b4ad77f766a55b9c3960b6e8b2815"></a>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator--</b> (int) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
+<tr class="separator:a324b4ad77f766a55b9c3960b6e8b2815"><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___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___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
-<tr class="separator:a2c63d3f14b33017ff037309324d93169"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c8702942ef7696b0eb6435e37347faf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c8702942ef7696b0eb6435e37347faf"></a>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>operator++</b> (int) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
+<tr class="separator:a7c8702942ef7696b0eb6435e37347faf"><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>
<tr class="separator:aa630fb7918dc81f255525ee90152e62f"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -387,6 +387,12 @@ const uint8_t &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operat
<tr class="memitem:aa80fd3b2990b00a963aa009a3c4d095a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa80fd3b2990b00a963aa009a3c4d095a"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>nscale8</b> (uint8_t scaledown)</td></tr>
<tr class="separator:aa80fd3b2990b00a963aa009a3c4d095a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a071f7ba57db3d9b88899f4c30c715a6b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a071f7ba57db3d9b88899f4c30c715a6b"></a>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>nscale8</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;scaledown)</td></tr>
+<tr class="separator:a071f7ba57db3d9b88899f4c30c715a6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b80746e55da30c6a1dad63b3edd5fd4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b80746e55da30c6a1dad63b3edd5fd4"></a>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>scale8</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;scaledown) const </td></tr>
+<tr class="separator:a5b80746e55da30c6a1dad63b3edd5fd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab49109cf2ec532c643d4998f03cf16c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab49109cf2ec532c643d4998f03cf16c7"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>fadeToBlackBy</b> (uint8_t fadefactor)</td></tr>
<tr class="separator:ab49109cf2ec532c643d4998f03cf16c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -485,7 +491,7 @@ union {</td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
-Generated on Mon Aug 10 2015 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 853fb0b0..fc3344c0 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 5aef0696..f4bd81dc 100644
--- a/docs/3.1/struct_multi_pixel_controller.html
+++ b/docs/3.1/struct_multi_pixel_controller.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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-members.html b/docs/3.1/struct_pixel_controller-members.html
index 6adae635..7e673389 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 975b06a5..29155db0 100644
--- a/docs/3.1/struct_pixel_controller.html
+++ b/docs/3.1/struct_pixel_controller.html
@@ -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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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-members.html b/docs/3.1/structsub4-members.html
index cbb5ce9d..182d91c2 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 59736da6..db3fc57b 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 a5ac53e2..6e31e704 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 fe125533..b023b78d 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 eb4e757b..2e13dc60 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 bb53de4b..35aa5623 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 2017a7df..f6f4bbcc 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 772c338c..c3944f77 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 fd2f9c08..67f9f6a3 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 a551a8e3..d25684c7 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 fe48b8af..ce35dc5f 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 5589a4fd..91b5a8ae 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 4b95d5b0..a3310060 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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 6515cece..ba21b7f6 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 23:10:47 for FastLED by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Wed Nov 11 2015 15:10: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>