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>2016-02-14 00:29:33 +0300
committerDaniel Garcia <danielgarcia@gmail.com>2016-02-14 00:29:33 +0300
commit0dec6b9f27a20c7d720e634492d466d6cdb8063a (patch)
treee38108cb50f68119dc7a4c885a0caa5f2ae05ad2
parent369c06a8ece1fa07c97162cd0ca47c49c5233f8f (diff)
Updating docs
-rw-r--r--docs/3.1/_fast_l_e_d_8cpp_source.html384
-rw-r--r--docs/3.1/_fast_l_e_d_8h.html4
-rw-r--r--docs/3.1/_fast_l_e_d_8h.js1
-rw-r--r--docs/3.1/_fast_l_e_d_8h_source.html669
-rw-r--r--docs/3.1/_p_o_r_t_i_n_g_8md_source.html2
-rw-r--r--docs/3.1/_r_e_a_d_m_e_8md_source.html161
-rw-r--r--docs/3.1/annotated.html164
-rw-r--r--docs/3.1/annotated.js6
-rw-r--r--docs/3.1/bitswap_8h.html2
-rw-r--r--docs/3.1/bitswap_8h_source.html515
-rw-r--r--docs/3.1/chipsets_8h.html6
-rw-r--r--docs/3.1/chipsets_8h_source.html1006
-rw-r--r--docs/3.1/class_a_p_a102_controller-members.html64
-rw-r--r--docs/3.1/class_a_p_a102_controller.html216
-rw-r--r--docs/3.1/class_a_p_a102_controller.js5
-rw-r--r--docs/3.1/class_a_p_a102_controller__coll__graph.map5
-rw-r--r--docs/3.1/class_a_p_a102_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_a_p_a102_controller__coll__graph.pngbin13661 -> 17310 bytes
-rw-r--r--docs/3.1/class_a_p_a102_controller__inherit__graph.map3
-rw-r--r--docs/3.1/class_a_p_a102_controller__inherit__graph.md52
-rw-r--r--docs/3.1/class_a_p_a102_controller__inherit__graph.pngbin6805 -> 10472 bytes
-rw-r--r--docs/3.1/class_a_p_a104.html4
-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.html4
-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.html4
-rw-r--r--docs/3.1/class_c_fast_l_e_d-members.html2
-rw-r--r--docs/3.1/class_c_fast_l_e_d.html44
-rw-r--r--docs/3.1/class_c_h_s_v_palette16-members.html2
-rw-r--r--docs/3.1/class_c_h_s_v_palette16.html4
-rw-r--r--docs/3.1/class_c_h_s_v_palette256-members.html2
-rw-r--r--docs/3.1/class_c_h_s_v_palette256.html4
-rw-r--r--docs/3.1/class_c_h_s_v_palette32-members.html146
-rw-r--r--docs/3.1/class_c_h_s_v_palette32.html203
-rw-r--r--docs/3.1/class_c_h_s_v_palette32.js21
-rw-r--r--docs/3.1/class_c_h_s_v_palette32__coll__graph.map3
-rw-r--r--docs/3.1/class_c_h_s_v_palette32__coll__graph.md51
-rw-r--r--docs/3.1/class_c_h_s_v_palette32__coll__graph.pngbin0 -> 4361 bytes
-rw-r--r--docs/3.1/class_c_l_e_d_controller-members.html8
-rw-r--r--docs/3.1/class_c_l_e_d_controller.html24
-rw-r--r--docs/3.1/class_c_l_e_d_controller.js4
-rw-r--r--docs/3.1/class_c_l_e_d_controller__inherit__graph.map26
-rw-r--r--docs/3.1/class_c_l_e_d_controller__inherit__graph.md52
-rw-r--r--docs/3.1/class_c_l_e_d_controller__inherit__graph.pngbin64633 -> 77358 bytes
-rw-r--r--docs/3.1/class_c_min_wait-members.html2
-rw-r--r--docs/3.1/class_c_min_wait.html4
-rw-r--r--docs/3.1/class_c_pixel_l_e_d_controller-members.html165
-rw-r--r--docs/3.1/class_c_pixel_l_e_d_controller.html411
-rw-r--r--docs/3.1/class_c_pixel_l_e_d_controller.js7
-rw-r--r--docs/3.1/class_c_pixel_l_e_d_controller__coll__graph.map4
-rw-r--r--docs/3.1/class_c_pixel_l_e_d_controller__coll__graph.md51
-rw-r--r--docs/3.1/class_c_pixel_l_e_d_controller__coll__graph.pngbin0 -> 13379 bytes
-rw-r--r--docs/3.1/class_c_pixel_l_e_d_controller__inherit__graph.map3
-rw-r--r--docs/3.1/class_c_pixel_l_e_d_controller__inherit__graph.md51
-rw-r--r--docs/3.1/class_c_pixel_l_e_d_controller__inherit__graph.pngbin0 -> 6581 bytes
-rw-r--r--docs/3.1/class_c_pixel_view-members.html109
-rw-r--r--docs/3.1/class_c_pixel_view.html52
-rw-r--r--docs/3.1/class_c_pixel_view.js1
-rw-r--r--docs/3.1/class_c_pixel_view_1_1pixelset__iterator__base-members.html2
-rw-r--r--docs/3.1/class_c_pixel_view_1_1pixelset__iterator__base.html4
-rw-r--r--docs/3.1/class_c_r_g_b_array-members.html109
-rw-r--r--docs/3.1/class_c_r_g_b_array.html6
-rw-r--r--docs/3.1/class_c_r_g_b_palette16-members.html10
-rw-r--r--docs/3.1/class_c_r_g_b_palette16.html16
-rw-r--r--docs/3.1/class_c_r_g_b_palette16.js4
-rw-r--r--docs/3.1/class_c_r_g_b_palette256-members.html10
-rw-r--r--docs/3.1/class_c_r_g_b_palette256.html16
-rw-r--r--docs/3.1/class_c_r_g_b_palette256.js4
-rw-r--r--docs/3.1/class_c_r_g_b_palette32-members.html163
-rw-r--r--docs/3.1/class_c_r_g_b_palette32.html254
-rw-r--r--docs/3.1/class_c_r_g_b_palette32.js38
-rw-r--r--docs/3.1/class_c_r_g_b_palette32__coll__graph.map3
-rw-r--r--docs/3.1/class_c_r_g_b_palette32__coll__graph.md51
-rw-r--r--docs/3.1/class_c_r_g_b_palette32__coll__graph.pngbin0 -> 4463 bytes
-rw-r--r--docs/3.1/class_d_a_t_a___n_o_p-members.html2
-rw-r--r--docs/3.1/class_d_a_t_a___n_o_p.html4
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l-members.html71
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l.html45
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.map7
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.md52
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.pngbin15731 -> 19380 bytes
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l__inherit__graph.map5
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l__inherit__graph.md52
-rw-r--r--docs/3.1/class_d_m_x_s_e_r_i_a_l__inherit__graph.pngbin9909 -> 12510 bytes
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e-members.html71
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e.html45
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.map7
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.md52
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.pngbin17099 -> 20755 bytes
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e__inherit__graph.map5
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e__inherit__graph.md52
-rw-r--r--docs/3.1/class_d_m_x_s_i_m_p_l_e__inherit__graph.pngbin11346 -> 13766 bytes
-rw-r--r--docs/3.1/class_d_m_x_serial_controller-members.html71
-rw-r--r--docs/3.1/class_d_m_x_serial_controller.html162
-rw-r--r--docs/3.1/class_d_m_x_serial_controller.js5
-rw-r--r--docs/3.1/class_d_m_x_serial_controller__coll__graph.map5
-rw-r--r--docs/3.1/class_d_m_x_serial_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_d_m_x_serial_controller__coll__graph.pngbin14023 -> 18094 bytes
-rw-r--r--docs/3.1/class_d_m_x_serial_controller__inherit__graph.map5
-rw-r--r--docs/3.1/class_d_m_x_serial_controller__inherit__graph.md52
-rw-r--r--docs/3.1/class_d_m_x_serial_controller__inherit__graph.pngbin9956 -> 12601 bytes
-rw-r--r--docs/3.1/class_d_m_x_simple_controller-members.html71
-rw-r--r--docs/3.1/class_d_m_x_simple_controller.html162
-rw-r--r--docs/3.1/class_d_m_x_simple_controller.js5
-rw-r--r--docs/3.1/class_d_m_x_simple_controller__coll__graph.map5
-rw-r--r--docs/3.1/class_d_m_x_simple_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_d_m_x_simple_controller__coll__graph.pngbin15044 -> 17012 bytes
-rw-r--r--docs/3.1/class_d_m_x_simple_controller__inherit__graph.map5
-rw-r--r--docs/3.1/class_d_m_x_simple_controller__inherit__graph.md52
-rw-r--r--docs/3.1/class_d_m_x_simple_controller__inherit__graph.pngbin11383 -> 13922 bytes
-rw-r--r--docs/3.1/class_fast_pin-members.html2
-rw-r--r--docs/3.1/class_fast_pin.html4
-rw-r--r--docs/3.1/class_fast_pin_b_b-members.html2
-rw-r--r--docs/3.1/class_fast_pin_b_b.html4
-rw-r--r--docs/3.1/class_g_w6205.html4
-rw-r--r--docs/3.1/class_g_w6205__400.html4
-rw-r--r--docs/3.1/class_g_w6205_controller400_khz.html4
-rw-r--r--docs/3.1/class_g_w6205_controller800_khz.html4
-rw-r--r--docs/3.1/class_input_pin-members.html2
-rw-r--r--docs/3.1/class_input_pin.html4
-rw-r--r--docs/3.1/class_l_p_d1886.html4
-rw-r--r--docs/3.1/class_l_p_d1886_controller1250_khz.html4
-rw-r--r--docs/3.1/class_l_p_d8806_controller-members.html73
-rw-r--r--docs/3.1/class_l_p_d8806_controller.html160
-rw-r--r--docs/3.1/class_l_p_d8806_controller.js5
-rw-r--r--docs/3.1/class_l_p_d8806_controller__coll__graph.map5
-rw-r--r--docs/3.1/class_l_p_d8806_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_l_p_d8806_controller__coll__graph.pngbin13977 -> 17615 bytes
-rw-r--r--docs/3.1/class_l_p_d8806_controller__inherit__graph.map3
-rw-r--r--docs/3.1/class_l_p_d8806_controller__inherit__graph.md52
-rw-r--r--docs/3.1/class_l_p_d8806_controller__inherit__graph.pngbin7137 -> 10742 bytes
-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.html2
-rw-r--r--docs/3.1/class_n_o_p_s_p_i_output.html6
-rw-r--r--docs/3.1/class_output_pin-members.html2
-rw-r--r--docs/3.1/class_output_pin.html4
-rw-r--r--docs/3.1/class_p9813_controller-members.html66
-rw-r--r--docs/3.1/class_p9813_controller.html216
-rw-r--r--docs/3.1/class_p9813_controller.js5
-rw-r--r--docs/3.1/class_p9813_controller__coll__graph.map5
-rw-r--r--docs/3.1/class_p9813_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_p9813_controller__coll__graph.pngbin13881 -> 17502 bytes
-rw-r--r--docs/3.1/class_p9813_controller__inherit__graph.map3
-rw-r--r--docs/3.1/class_p9813_controller__inherit__graph.md52
-rw-r--r--docs/3.1/class_p9813_controller__inherit__graph.pngbin7030 -> 10574 bytes
-rw-r--r--docs/3.1/class_p_i_x_i_e-members.html73
-rw-r--r--docs/3.1/class_p_i_x_i_e.html47
-rw-r--r--docs/3.1/class_p_i_x_i_e__coll__graph.map7
-rw-r--r--docs/3.1/class_p_i_x_i_e__coll__graph.md52
-rw-r--r--docs/3.1/class_p_i_x_i_e__coll__graph.pngbin17880 -> 21914 bytes
-rw-r--r--docs/3.1/class_p_i_x_i_e__inherit__graph.map5
-rw-r--r--docs/3.1/class_p_i_x_i_e__inherit__graph.md52
-rw-r--r--docs/3.1/class_p_i_x_i_e__inherit__graph.pngbin9886 -> 13781 bytes
-rw-r--r--docs/3.1/class_p_l9823.html4
-rw-r--r--docs/3.1/class_p_l9823_controller.html4
-rw-r--r--docs/3.1/class_pin-members.html2
-rw-r--r--docs/3.1/class_pin.html4
-rw-r--r--docs/3.1/class_pixie_controller-members.html73
-rw-r--r--docs/3.1/class_pixie_controller.html241
-rw-r--r--docs/3.1/class_pixie_controller.js6
-rw-r--r--docs/3.1/class_pixie_controller__coll__graph.map5
-rw-r--r--docs/3.1/class_pixie_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_pixie_controller__coll__graph.pngbin13938 -> 15985 bytes
-rw-r--r--docs/3.1/class_pixie_controller__inherit__graph.map5
-rw-r--r--docs/3.1/class_pixie_controller__inherit__graph.md52
-rw-r--r--docs/3.1/class_pixie_controller__inherit__graph.pngbin9906 -> 13808 bytes
-rw-r--r--docs/3.1/class_r_e_f_hardware_s_p_i_output-members.html2
-rw-r--r--docs/3.1/class_r_e_f_hardware_s_p_i_output.html4
-rw-r--r--docs/3.1/class_s_k6812.html2
-rw-r--r--docs/3.1/class_s_k6812_controller.html4
-rw-r--r--docs/3.1/class_s_k6822.html153
-rw-r--r--docs/3.1/class_s_k6822__coll__graph.map3
-rw-r--r--docs/3.1/class_s_k6822__coll__graph.md51
-rw-r--r--docs/3.1/class_s_k6822__coll__graph.pngbin0 -> 26061 bytes
-rw-r--r--docs/3.1/class_s_k6822__inherit__graph.map3
-rw-r--r--docs/3.1/class_s_k6822__inherit__graph.md51
-rw-r--r--docs/3.1/class_s_k6822__inherit__graph.pngbin0 -> 26061 bytes
-rw-r--r--docs/3.1/class_s_k6822_controller.html153
-rw-r--r--docs/3.1/class_s_k6822_controller__coll__graph.map2
-rw-r--r--docs/3.1/class_s_k6822_controller__coll__graph.md51
-rw-r--r--docs/3.1/class_s_k6822_controller__coll__graph.pngbin0 -> 19560 bytes
-rw-r--r--docs/3.1/class_s_k6822_controller__inherit__graph.map3
-rw-r--r--docs/3.1/class_s_k6822_controller__inherit__graph.md51
-rw-r--r--docs/3.1/class_s_k6822_controller__inherit__graph.pngbin0 -> 26098 bytes
-rw-r--r--docs/3.1/class_s_m16716_controller-members.html71
-rw-r--r--docs/3.1/class_s_m16716_controller.html156
-rw-r--r--docs/3.1/class_s_m16716_controller.js5
-rw-r--r--docs/3.1/class_s_m16716_controller__coll__graph.map5
-rw-r--r--docs/3.1/class_s_m16716_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_s_m16716_controller__coll__graph.pngbin13950 -> 17590 bytes
-rw-r--r--docs/3.1/class_s_m16716_controller__inherit__graph.map3
-rw-r--r--docs/3.1/class_s_m16716_controller__inherit__graph.md52
-rw-r--r--docs/3.1/class_s_m16716_controller__inherit__graph.pngbin7105 -> 10715 bytes
-rw-r--r--docs/3.1/class_s_p_i_output-members.html2
-rw-r--r--docs/3.1/class_s_p_i_output.html4
-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.html4
-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.html4
-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.html4
-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.html4
-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.html4
-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.html4
-rw-r--r--docs/3.1/class_selectable-members.html2
-rw-r--r--docs/3.1/class_selectable.html4
-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.html4
-rw-r--r--docs/3.1/class_t_m1803.html2
-rw-r--r--docs/3.1/class_t_m1803_controller400_khz.html4
-rw-r--r--docs/3.1/class_t_m1804.html2
-rw-r--r--docs/3.1/class_t_m1809.html2
-rw-r--r--docs/3.1/class_t_m1809_controller800_khz.html4
-rw-r--r--docs/3.1/class_t_m1812.html2
-rw-r--r--docs/3.1/class_t_m1829.html2
-rw-r--r--docs/3.1/class_t_m1829_controller1600_khz.html4
-rw-r--r--docs/3.1/class_t_m1829_controller800_khz.html4
-rw-r--r--docs/3.1/class_u_c_s1903.html2
-rw-r--r--docs/3.1/class_u_c_s1903_b.html2
-rw-r--r--docs/3.1/class_u_c_s1903_b_controller800_khz.html4
-rw-r--r--docs/3.1/class_u_c_s1903_controller400_khz.html4
-rw-r--r--docs/3.1/class_u_c_s1904.html2
-rw-r--r--docs/3.1/class_u_c_s1904_controller800_khz.html4
-rw-r--r--docs/3.1/class_u_c_s2903.html2
-rw-r--r--docs/3.1/class_u_c_s2903_controller.html6
-rw-r--r--docs/3.1/class_w_s2801_controller-members.html64
-rw-r--r--docs/3.1/class_w_s2801_controller.html216
-rw-r--r--docs/3.1/class_w_s2801_controller.js5
-rw-r--r--docs/3.1/class_w_s2801_controller__coll__graph.map5
-rw-r--r--docs/3.1/class_w_s2801_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_w_s2801_controller__coll__graph.pngbin14209 -> 17863 bytes
-rw-r--r--docs/3.1/class_w_s2801_controller__inherit__graph.map5
-rw-r--r--docs/3.1/class_w_s2801_controller__inherit__graph.md52
-rw-r--r--docs/3.1/class_w_s2801_controller__inherit__graph.pngbin13226 -> 16913 bytes
-rw-r--r--docs/3.1/class_w_s2803_controller-members.html64
-rw-r--r--docs/3.1/class_w_s2803_controller.html45
-rw-r--r--docs/3.1/class_w_s2803_controller__coll__graph.map7
-rw-r--r--docs/3.1/class_w_s2803_controller__coll__graph.md52
-rw-r--r--docs/3.1/class_w_s2803_controller__coll__graph.pngbin22746 -> 23793 bytes
-rw-r--r--docs/3.1/class_w_s2803_controller__inherit__graph.map5
-rw-r--r--docs/3.1/class_w_s2803_controller__inherit__graph.md52
-rw-r--r--docs/3.1/class_w_s2803_controller__inherit__graph.pngbin13248 -> 16939 bytes
-rw-r--r--docs/3.1/class_w_s2811.html4
-rw-r--r--docs/3.1/class_w_s2811__400.html4
-rw-r--r--docs/3.1/class_w_s2811_controller400_khz.html4
-rw-r--r--docs/3.1/class_w_s2811_controller800_khz.html4
-rw-r--r--docs/3.1/class_w_s2812.html2
-rw-r--r--docs/3.1/class_w_s2812_b.html2
-rw-r--r--docs/3.1/class_w_s2812_controller800_khz.html4
-rw-r--r--docs/3.1/classes.html87
-rw-r--r--docs/3.1/classq-members.html2
-rw-r--r--docs/3.1/classq.html4
-rw-r--r--docs/3.1/color_8h.html2
-rw-r--r--docs/3.1/color_8h_source.html115
-rw-r--r--docs/3.1/colorpalettes_8cpp_source.html2
-rw-r--r--docs/3.1/colorpalettes_8h.html2
-rw-r--r--docs/3.1/colorpalettes_8h_source.html58
-rw-r--r--docs/3.1/colorutils_8cpp_source.html999
-rw-r--r--docs/3.1/colorutils_8h.html33
-rw-r--r--docs/3.1/colorutils_8h.js11
-rw-r--r--docs/3.1/colorutils_8h_source.html2800
-rw-r--r--docs/3.1/controller_8h.html7
-rw-r--r--docs/3.1/controller_8h.js2
-rw-r--r--docs/3.1/controller_8h_source.html936
-rw-r--r--docs/3.1/cpp__compat_8h_source.html21
-rw-r--r--docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html2
-rw-r--r--docs/3.1/dmx_8h_source.html183
-rw-r--r--docs/3.1/fastled__config_8h.html2
-rw-r--r--docs/3.1/fastled__config_8h_source.html47
-rw-r--r--docs/3.1/fastled__delay_8h.html8
-rw-r--r--docs/3.1/fastled__delay_8h.js3
-rw-r--r--docs/3.1/fastled__delay_8h_source.html234
-rw-r--r--docs/3.1/fastled__progmem_8h.html2
-rw-r--r--docs/3.1/fastled__progmem_8h_source.html115
-rw-r--r--docs/3.1/fastpin_8h.html2
-rw-r--r--docs/3.1/fastpin_8h_source.html425
-rw-r--r--docs/3.1/fastspi_8h_source.html209
-rw-r--r--docs/3.1/fastspi__bitbang_8h_source.html699
-rw-r--r--docs/3.1/fastspi__dma_8h_source.html2
-rw-r--r--docs/3.1/fastspi__nop_8h_source.html110
-rw-r--r--docs/3.1/fastspi__ref_8h_source.html171
-rw-r--r--docs/3.1/fastspi__types_8h_source.html65
-rw-r--r--docs/3.1/files.html2
-rw-r--r--docs/3.1/functions.html68
-rw-r--r--docs/3.1/functions_enum.html2
-rw-r--r--docs/3.1/functions_func.html68
-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.html6
-rw-r--r--docs/3.1/group___colorpalletes.html4
-rw-r--r--docs/3.1/group___colorutils.html35
-rw-r--r--docs/3.1/group___colorutils.js65
-rw-r--r--docs/3.1/group___dimming.html2
-rw-r--r--docs/3.1/group___math.html80
-rw-r--r--docs/3.1/group___math.js2
-rw-r--r--docs/3.1/group___noise.html10
-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.html4
-rw-r--r--docs/3.1/group__chipsets.js37
-rw-r--r--docs/3.1/group__lib8tion.html47
-rw-r--r--docs/3.1/hierarchy.html216
-rw-r--r--docs/3.1/hierarchy.js42
-rw-r--r--docs/3.1/hsv2rgb_8cpp_source.html493
-rw-r--r--docs/3.1/hsv2rgb_8h_source.html175
-rw-r--r--docs/3.1/index.html2
-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 -> 2152 bytes
-rw-r--r--docs/3.1/inherit_graph_11.map3
-rw-r--r--docs/3.1/inherit_graph_11.md52
-rw-r--r--docs/3.1/inherit_graph_11.pngbin4064 -> 2280 bytes
-rw-r--r--docs/3.1/inherit_graph_12.map3
-rw-r--r--docs/3.1/inherit_graph_12.md52
-rw-r--r--docs/3.1/inherit_graph_12.pngbin2766 -> 4064 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.pngbin4952 -> 2766 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.pngbin1112 -> 4952 bytes
-rw-r--r--docs/3.1/inherit_graph_15.map2
-rw-r--r--docs/3.1/inherit_graph_15.md52
-rw-r--r--docs/3.1/inherit_graph_15.pngbin2032 -> 1112 bytes
-rw-r--r--docs/3.1/inherit_graph_16.map2
-rw-r--r--docs/3.1/inherit_graph_16.md52
-rw-r--r--docs/3.1/inherit_graph_16.pngbin2240 -> 2032 bytes
-rw-r--r--docs/3.1/inherit_graph_17.map2
-rw-r--r--docs/3.1/inherit_graph_17.md52
-rw-r--r--docs/3.1/inherit_graph_17.pngbin1321 -> 2240 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.pngbin2327 -> 2077 bytes
-rw-r--r--docs/3.1/inherit_graph_19.map3
-rw-r--r--docs/3.1/inherit_graph_19.md52
-rw-r--r--docs/3.1/inherit_graph_19.pngbin2402 -> 1321 bytes
-rw-r--r--docs/3.1/inherit_graph_20.map38
-rw-r--r--docs/3.1/inherit_graph_20.md52
-rw-r--r--docs/3.1/inherit_graph_20.pngbin223043 -> 2327 bytes
-rw-r--r--docs/3.1/inherit_graph_21.map3
-rw-r--r--docs/3.1/inherit_graph_21.md52
-rw-r--r--docs/3.1/inherit_graph_21.pngbin2189 -> 2402 bytes
-rw-r--r--docs/3.1/inherit_graph_22.map40
-rw-r--r--docs/3.1/inherit_graph_22.md52
-rw-r--r--docs/3.1/inherit_graph_22.pngbin1344 -> 203108 bytes
-rw-r--r--docs/3.1/inherit_graph_23.map2
-rw-r--r--docs/3.1/inherit_graph_23.md52
-rw-r--r--docs/3.1/inherit_graph_23.pngbin4886 -> 2189 bytes
-rw-r--r--docs/3.1/inherit_graph_24.map2
-rw-r--r--docs/3.1/inherit_graph_24.md52
-rw-r--r--docs/3.1/inherit_graph_24.pngbin4513 -> 1344 bytes
-rw-r--r--docs/3.1/inherit_graph_25.map2
-rw-r--r--docs/3.1/inherit_graph_25.md52
-rw-r--r--docs/3.1/inherit_graph_25.pngbin3456 -> 4513 bytes
-rw-r--r--docs/3.1/inherit_graph_26.map2
-rw-r--r--docs/3.1/inherit_graph_26.md52
-rw-r--r--docs/3.1/inherit_graph_26.pngbin1099 -> 4731 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.pngbin5714 -> 1099 bytes
-rw-r--r--docs/3.1/inherit_graph_28.map5
-rw-r--r--docs/3.1/inherit_graph_28.md52
-rw-r--r--docs/3.1/inherit_graph_28.pngbin5086 -> 5714 bytes
-rw-r--r--docs/3.1/inherit_graph_29.map8
-rw-r--r--docs/3.1/inherit_graph_29.md52
-rw-r--r--docs/3.1/inherit_graph_29.pngbin23961 -> 5086 bytes
-rw-r--r--docs/3.1/inherit_graph_30.map8
-rw-r--r--docs/3.1/inherit_graph_30.md52
-rw-r--r--docs/3.1/inherit_graph_30.pngbin26334 -> 23961 bytes
-rw-r--r--docs/3.1/inherit_graph_31.map5
-rw-r--r--docs/3.1/inherit_graph_31.md52
-rw-r--r--docs/3.1/inherit_graph_31.pngbin6339 -> 26334 bytes
-rw-r--r--docs/3.1/inherit_graph_32.map2
-rw-r--r--docs/3.1/inherit_graph_32.md52
-rw-r--r--docs/3.1/inherit_graph_32.pngbin6168 -> 6339 bytes
-rw-r--r--docs/3.1/inherit_graph_33.map2
-rw-r--r--docs/3.1/inherit_graph_33.md52
-rw-r--r--docs/3.1/inherit_graph_33.pngbin857 -> 6168 bytes
-rw-r--r--docs/3.1/inherit_graph_34.map2
-rw-r--r--docs/3.1/inherit_graph_34.md52
-rw-r--r--docs/3.1/inherit_graph_34.pngbin1762 -> 857 bytes
-rw-r--r--docs/3.1/inherit_graph_35.map2
-rw-r--r--docs/3.1/inherit_graph_35.md52
-rw-r--r--docs/3.1/inherit_graph_35.pngbin3149 -> 1762 bytes
-rw-r--r--docs/3.1/inherit_graph_36.map3
-rw-r--r--docs/3.1/inherit_graph_36.md51
-rw-r--r--docs/3.1/inherit_graph_36.pngbin0 -> 3149 bytes
-rw-r--r--docs/3.1/inherit_graph_7.map14
-rw-r--r--docs/3.1/inherit_graph_7.md52
-rw-r--r--docs/3.1/inherit_graph_7.pngbin64633 -> 2039 bytes
-rw-r--r--docs/3.1/inherit_graph_8.map16
-rw-r--r--docs/3.1/inherit_graph_8.md52
-rw-r--r--docs/3.1/inherit_graph_8.pngbin2059 -> 77105 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.pngbin2152 -> 2059 bytes
-rw-r--r--docs/3.1/inherits.html78
-rw-r--r--docs/3.1/led__sysdefs_8h_source.html77
-rw-r--r--docs/3.1/lib8tion_8cpp_source.html8
-rw-r--r--docs/3.1/lib8tion_8h_source.html1927
-rw-r--r--docs/3.1/math8_8h_source.html372
-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.html4
-rw-r--r--docs/3.1/md_release_notes.html10
-rw-r--r--docs/3.1/modules.html2
-rw-r--r--docs/3.1/navtreedata.js10
-rw-r--r--docs/3.1/navtreeindex0.js308
-rw-r--r--docs/3.1/navtreeindex1.js478
-rw-r--r--docs/3.1/navtreeindex2.js278
-rw-r--r--docs/3.1/navtreeindex3.js114
-rw-r--r--docs/3.1/navtreeindex4.js196
-rw-r--r--docs/3.1/noise_8cpp_source.html1459
-rw-r--r--docs/3.1/noise_8h.html8
-rw-r--r--docs/3.1/noise_8h.js2
-rw-r--r--docs/3.1/noise_8h_source.html105
-rw-r--r--docs/3.1/pages.html4
-rw-r--r--docs/3.1/pixelset_8h_source.html541
-rw-r--r--docs/3.1/pixeltypes_8h_source.html1681
-rw-r--r--docs/3.1/platforms_8h_source.html51
-rw-r--r--docs/3.1/power__mgt_8cpp_source.html20
-rw-r--r--docs/3.1/power__mgt_8h_source.html87
-rw-r--r--docs/3.1/random8_8h_source.html2
-rw-r--r--docs/3.1/release__notes_8md_source.html281
-rw-r--r--docs/3.1/scale8_8h_source.html226
-rw-r--r--docs/3.1/search/all_0.js2
-rw-r--r--docs/3.1/search/all_1.js2
-rw-r--r--docs/3.1/search/all_12.js6
-rw-r--r--docs/3.1/search/all_3.js6
-rw-r--r--docs/3.1/search/all_4.js3
-rw-r--r--docs/3.1/search/all_5.js1
-rw-r--r--docs/3.1/search/all_6.js2
-rw-r--r--docs/3.1/search/all_9.js1
-rw-r--r--docs/3.1/search/all_c.js3
-rw-r--r--docs/3.1/search/all_f.js2
-rw-r--r--docs/3.1/search/classes_10.js19
-rw-r--r--docs/3.1/search/classes_11.js18
-rw-r--r--docs/3.1/search/classes_2.js6
-rw-r--r--docs/3.1/search/classes_9.js3
-rw-r--r--docs/3.1/search/classes_a.js3
-rw-r--r--docs/3.1/search/classes_b.js9
-rw-r--r--docs/3.1/search/classes_c.js9
-rw-r--r--docs/3.1/search/classes_d.js2
-rw-r--r--docs/3.1/search/classes_e.js17
-rw-r--r--docs/3.1/search/classes_f.js25
-rw-r--r--docs/3.1/search/functions_0.js2
-rw-r--r--docs/3.1/search/functions_1.js2
-rw-r--r--docs/3.1/search/functions_10.js37
-rw-r--r--docs/3.1/search/functions_11.js31
-rw-r--r--docs/3.1/search/functions_12.js9
-rw-r--r--docs/3.1/search/functions_3.js2
-rw-r--r--docs/3.1/search/functions_4.js3
-rw-r--r--docs/3.1/search/functions_5.js3
-rw-r--r--docs/3.1/search/functions_9.js1
-rw-r--r--docs/3.1/search/functions_e.js6
-rw-r--r--docs/3.1/search/functions_f.js12
-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.html4
-rw-r--r--docs/3.1/struct_c_r_g_b-members.html2
-rw-r--r--docs/3.1/struct_c_r_g_b.html4
-rw-r--r--docs/3.1/struct_pixel_controller-members.html89
-rw-r--r--docs/3.1/struct_pixel_controller.html350
-rw-r--r--docs/3.1/struct_pixel_controller.js83
-rw-r--r--docs/3.1/struct_pixel_controller__coll__graph.map4
-rw-r--r--docs/3.1/struct_pixel_controller__coll__graph.md52
-rw-r--r--docs/3.1/struct_pixel_controller__coll__graph.pngbin5645 -> 7641 bytes
-rw-r--r--docs/3.1/structsub4-members.html2
-rw-r--r--docs/3.1/structsub4.html4
-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.html4
-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.html4
-rw-r--r--docs/3.1/unionbitswap__type-members.html2
-rw-r--r--docs/3.1/unionbitswap__type.html4
-rw-r--r--docs/3.1/unionjust8bits-members.html2
-rw-r--r--docs/3.1/unionjust8bits.html4
-rw-r--r--docs/3.1/uniont_bytes_for_long-members.html2
-rw-r--r--docs/3.1/uniont_bytes_for_long.html2
-rw-r--r--docs/3.1/wiring_8cpp_source.html4
487 files changed, 13892 insertions, 12373 deletions
diff --git a/docs/3.1/_fast_l_e_d_8cpp_source.html b/docs/3.1/_fast_l_e_d_8cpp_source.html
index da7f8254..e05b6480 100644
--- a/docs/3.1/_fast_l_e_d_8cpp_source.html
+++ b/docs/3.1/_fast_l_e_d_8cpp_source.html
@@ -197,210 +197,222 @@ $(document).ready(function(){initNavTree('_fast_l_e_d_8cpp_source.html','');});
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">while</span>(m_nMinMicros &amp;&amp; ((micros()-lastshow) &lt; m_nMinMicros));</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; lastshow = micros();</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; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *pCur = <a class="code" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">CLEDController::head</a>();</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">while</span>(pCur) {</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; uint8_t d = pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>();</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span>(m_nFPS &lt; 100) { pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(0); }</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">showColor</a>(color, scale);</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(d);</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; pCur = pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>();</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; <a class="code" href="class_c_fast_l_e_d.html#a61d27e179c9b68bde89d220aebc0de32">countFPS</a>();</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"><a class="line" href="class_c_fast_l_e_d.html#a042989511cbc42390620bedc196ea956"> 100</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a042989511cbc42390620bedc196ea956">CFastLED::clear</a>(<span class="keywordtype">boolean</span> writeData) {</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span>(writeData) {</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="class_c_fast_l_e_d.html#a7315b060d295bad5fbd32e50eaaf02b0">showColor</a>(<a class="code" href="struct_c_r_g_b.html">CRGB</a>(0,0,0), 0);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="class_c_fast_l_e_d.html#ac4f613f1b3e618528dca3189df88ce80">clearData</a>();</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ac4f613f1b3e618528dca3189df88ce80"> 107</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#ac4f613f1b3e618528dca3189df88ce80">CFastLED::clearData</a>() {</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *pCur = <a class="code" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">CLEDController::head</a>();</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">while</span>(pCur) {</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a>();</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; pCur = pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>();</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a6819ff831058a710d4582dfc09817202"> 115</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a6819ff831058a710d4582dfc09817202">CFastLED::delay</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> ms) {</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> start = millis();</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">while</span>((millis()-start) &lt; ms) {</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#ifndef FASTLED_ACCURATE_CLOCK</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// make sure to allow at least one ms to pass to ensure the clock moves</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// forward</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="class_c_fast_l_e_d.html#a6819ff831058a710d4582dfc09817202">::delay</a>(1);</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; <a class="code" href="class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de">show</a>();</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;}</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a28c2dfb0ec592db03f3063ade135f19f"> 127</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a28c2dfb0ec592db03f3063ade135f19f">CFastLED::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="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *pCur = <a class="code" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">CLEDController::head</a>();</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">while</span>(pCur) {</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(temp);</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; pCur = pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>();</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">// If we have a function for computing power, use it!</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(m_pPowerFunc) {</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; scale = (*m_pPowerFunc)(scale, m_nPowerData);</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;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *pCur = <a class="code" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">CLEDController::head</a>();</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">while</span>(pCur) {</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; uint8_t d = pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>();</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span>(m_nFPS &lt; 100) { pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(0); }</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">showColor</a>(color, scale);</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(d);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; pCur = pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>();</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; <a class="code" href="class_c_fast_l_e_d.html#a61d27e179c9b68bde89d220aebc0de32">countFPS</a>();</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a042989511cbc42390620bedc196ea956"> 105</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a042989511cbc42390620bedc196ea956">CFastLED::clear</a>(<span class="keywordtype">boolean</span> writeData) {</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">if</span>(writeData) {</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="class_c_fast_l_e_d.html#a7315b060d295bad5fbd32e50eaaf02b0">showColor</a>(<a class="code" href="struct_c_r_g_b.html">CRGB</a>(0,0,0), 0);</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; <a class="code" href="class_c_fast_l_e_d.html#ac4f613f1b3e618528dca3189df88ce80">clearData</a>();</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;}</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ac4f613f1b3e618528dca3189df88ce80"> 112</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#ac4f613f1b3e618528dca3189df88ce80">CFastLED::clearData</a>() {</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *pCur = <a class="code" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">CLEDController::head</a>();</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">while</span>(pCur) {</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a>();</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; pCur = pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>();</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;}</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a6819ff831058a710d4582dfc09817202"> 120</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a6819ff831058a710d4582dfc09817202">CFastLED::delay</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> ms) {</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> start = millis();</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="preprocessor">#ifndef FASTLED_ACCURATE_CLOCK</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// make sure to allow at least one ms to pass to ensure the clock moves</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// forward</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="class_c_fast_l_e_d.html#a6819ff831058a710d4582dfc09817202">::delay</a>(1);</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de">show</a>();</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor">#if defined(ARDUINO) &amp;&amp; (ARDUINO &gt; 150)</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; yield();</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;}</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ad266c3e649cc12a6dc49a1e229acc282"> 135</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#ad266c3e649cc12a6dc49a1e229acc282">CFastLED::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="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *pCur = <a class="code" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">CLEDController::head</a>();</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">while</span>(pCur) {</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(correction);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; pCur = pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>();</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a7ae5d3864df01101d82d242c123ffb36"> 143</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a7ae5d3864df01101d82d242c123ffb36">CFastLED::setDither</a>(uint8_t ditherMode) {</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *pCur = <a class="code" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">CLEDController::head</a>();</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">while</span>(pCur) {</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(ditherMode);</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; pCur = pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>();</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;}</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment">// template&lt;int m, int n&gt; void transpose8(unsigned char A[8], unsigned char B[8]) {</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment">// uint32_t x, y, t;</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment">// // Load the array and pack it into x and y.</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment">// y = *(unsigned int*)(A);</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment">// x = *(unsigned int*)(A+4);</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment">// // x = (A[0]&lt;&lt;24) | (A[m]&lt;&lt;16) | (A[2*m]&lt;&lt;8) | A[3*m];</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment">// // y = (A[4*m]&lt;&lt;24) | (A[5*m]&lt;&lt;16) | (A[6*m]&lt;&lt;8) | A[7*m];</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="comment">// // pre-transform x</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="comment">// t = (x ^ (x &gt;&gt; 7)) &amp; 0x00AA00AA; x = x ^ t ^ (t &lt;&lt; 7);</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">// t = (x ^ (x &gt;&gt;14)) &amp; 0x0000CCCC; x = x ^ t ^ (t &lt;&lt;14);</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="comment">//</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// // pre-transform y</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">// t = (y ^ (y &gt;&gt; 7)) &amp; 0x00AA00AA; y = y ^ t ^ (t &lt;&lt; 7);</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">// t = (y ^ (y &gt;&gt;14)) &amp; 0x0000CCCC; y = y ^ t ^ (t &lt;&lt;14);</span></div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">//</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">// // final transform</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// t = (x &amp; 0xF0F0F0F0) | ((y &gt;&gt; 4) &amp; 0x0F0F0F0F);</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">// y = ((x &lt;&lt; 4) &amp; 0xF0F0F0F0) | (y &amp; 0x0F0F0F0F);</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">// x = t;</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">// B[7*n] = y; y &gt;&gt;= 8;</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment">// B[6*n] = y; y &gt;&gt;= 8;</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment">// B[5*n] = y; y &gt;&gt;= 8;</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment">// B[4*n] = y;</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment">// B[3*n] = x; x &gt;&gt;= 8;</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment">// B[2*n] = x; x &gt;&gt;= 8;</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment">// B[n] = x; x &gt;&gt;= 8;</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment">// B[0] = x;</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment">// // B[0]=x&gt;&gt;24; B[n]=x&gt;&gt;16; B[2*n]=x&gt;&gt;8; B[3*n]=x&gt;&gt;0;</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment">// // B[4*n]=y&gt;&gt;24; B[5*n]=y&gt;&gt;16; B[6*n]=y&gt;&gt;8; B[7*n]=y&gt;&gt;0;</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment">// }</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment">// void transposeLines(Lines &amp; out, Lines &amp; in) {</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment">// transpose8&lt;1,2&gt;(in.bytes, out.bytes);</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment">// transpose8&lt;1,2&gt;(in.bytes + 8, out.bytes + 1);</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment">// }</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">int</span> noise_min;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">int</span> noise_max;</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"><a class="line" href="class_c_fast_l_e_d.html#a61d27e179c9b68bde89d220aebc0de32"> 196</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a61d27e179c9b68bde89d220aebc0de32">CFastLED::countFPS</a>(<span class="keywordtype">int</span> nFrames) {</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">static</span> <span class="keywordtype">int</span> br = 0;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">static</span> uint32_t lastframe = 0; <span class="comment">// millis();</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">if</span>(br++ &gt;= nFrames) {</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; uint32_t now = millis();</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; now -= lastframe;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; m_nFPS = (br * 1000) / now;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; br = 0;</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; lastframe = millis();</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="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">while</span>((millis()-start) &lt; ms);</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"><a class="line" href="class_c_fast_l_e_d.html#a28c2dfb0ec592db03f3063ade135f19f"> 136</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a28c2dfb0ec592db03f3063ade135f19f">CFastLED::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="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *pCur = <a class="code" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">CLEDController::head</a>();</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">while</span>(pCur) {</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(temp);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; pCur = pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>();</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;}</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ad266c3e649cc12a6dc49a1e229acc282"> 144</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#ad266c3e649cc12a6dc49a1e229acc282">CFastLED::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="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *pCur = <a class="code" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">CLEDController::head</a>();</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">while</span>(pCur) {</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(correction);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; pCur = pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>();</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a7ae5d3864df01101d82d242c123ffb36"> 152</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a7ae5d3864df01101d82d242c123ffb36">CFastLED::setDither</a>(uint8_t ditherMode) {</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *pCur = <a class="code" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">CLEDController::head</a>();</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">while</span>(pCur) {</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(ditherMode);</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; pCur = pCur-&gt;<a class="code" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>();</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;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment">// template&lt;int m, int n&gt; void transpose8(unsigned char A[8], unsigned char B[8]) {</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment">// uint32_t x, y, t;</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment">// // Load the array and pack it into x and y.</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment">// y = *(unsigned int*)(A);</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment">// x = *(unsigned int*)(A+4);</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="comment">// // x = (A[0]&lt;&lt;24) | (A[m]&lt;&lt;16) | (A[2*m]&lt;&lt;8) | A[3*m];</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="comment">// // y = (A[4*m]&lt;&lt;24) | (A[5*m]&lt;&lt;16) | (A[6*m]&lt;&lt;8) | A[7*m];</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// // pre-transform x</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">// t = (x ^ (x &gt;&gt; 7)) &amp; 0x00AA00AA; x = x ^ t ^ (t &lt;&lt; 7);</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">// t = (x ^ (x &gt;&gt;14)) &amp; 0x0000CCCC; x = x ^ t ^ (t &lt;&lt;14);</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">// // pre-transform y</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">// t = (y ^ (y &gt;&gt; 7)) &amp; 0x00AA00AA; y = y ^ t ^ (t &lt;&lt; 7);</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">// t = (y ^ (y &gt;&gt;14)) &amp; 0x0000CCCC; y = y ^ t ^ (t &lt;&lt;14);</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">// // final transform</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// t = (x &amp; 0xF0F0F0F0) | ((y &gt;&gt; 4) &amp; 0x0F0F0F0F);</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">// y = ((x &lt;&lt; 4) &amp; 0xF0F0F0F0) | (y &amp; 0x0F0F0F0F);</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">// x = t;</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="comment">// B[7*n] = y; y &gt;&gt;= 8;</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment">// B[6*n] = y; y &gt;&gt;= 8;</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment">// B[5*n] = y; y &gt;&gt;= 8;</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment">// B[4*n] = y;</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment">// B[3*n] = x; x &gt;&gt;= 8;</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment">// B[2*n] = x; x &gt;&gt;= 8;</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment">// B[n] = x; x &gt;&gt;= 8;</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="comment">// B[0] = x;</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment">// // B[0]=x&gt;&gt;24; B[n]=x&gt;&gt;16; B[2*n]=x&gt;&gt;8; B[3*n]=x&gt;&gt;0;</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment">// // B[4*n]=y&gt;&gt;24; B[5*n]=y&gt;&gt;16; B[6*n]=y&gt;&gt;8; B[7*n]=y&gt;&gt;0;</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment">// }</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment">// void transposeLines(Lines &amp; out, Lines &amp; in) {</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment">// transpose8&lt;1,2&gt;(in.bytes, out.bytes);</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment">// transpose8&lt;1,2&gt;(in.bytes + 8, out.bytes + 1);</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="comment">// }</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">int</span> noise_min;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">int</span> noise_max;</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"><a class="line" href="class_c_fast_l_e_d.html#a61d27e179c9b68bde89d220aebc0de32"> 205</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a61d27e179c9b68bde89d220aebc0de32">CFastLED::countFPS</a>(<span class="keywordtype">int</span> nFrames) {</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keyword">static</span> <span class="keywordtype">int</span> br = 0;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">static</span> uint32_t lastframe = 0; <span class="comment">// millis();</span></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"><a class="line" href="class_c_fast_l_e_d.html#a1f39e8404db214bbd6a776f52a77d8b1"> 209</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a1f39e8404db214bbd6a776f52a77d8b1">CFastLED::setMaxRefreshRate</a>(uint16_t refresh, <span class="keywordtype">bool</span> constrain) {</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">if</span>(constrain) {</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="comment">// if we&#39;re constraining, the new value of m_nMinMicros _must_ be higher than previously (because we&#39;re only</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="comment">// allowed to slow things down if constraining)</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">if</span>(refresh &gt; 0) {</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; m_nMinMicros = ( (1000000/refresh) &gt; m_nMinMicros) ? (1000000/refresh) : m_nMinMicros;</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; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(refresh &gt; 0) {</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; m_nMinMicros = 1000000 / refresh;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; m_nMinMicros = 0;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;}</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">int</span> atexit(<span class="keywordtype">void</span> (* <span class="comment">/*func*/</span> )()) { <span class="keywordflow">return</span> 0; }</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;<span class="preprocessor">#ifdef NEED_CXX_BITS</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace____cxxabiv1.html">__cxxabiv1</a></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">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">void</span> __cxa_pure_virtual (<span class="keywordtype">void</span>) {}</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="comment">/* guard variables */</span></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="comment">/* The ABI requires a 64-bit type. */</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; __extension__ <span class="keyword">typedef</span> <span class="keywordtype">int</span> __guard <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((mode(__DI__)));</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span>(br++ &gt;= nFrames) {</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; uint32_t now = millis();</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; now -= lastframe;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; m_nFPS = (br * 1000) / now;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; br = 0;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; lastframe = millis();</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"><a class="line" href="class_c_fast_l_e_d.html#a1f39e8404db214bbd6a776f52a77d8b1"> 218</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_c_fast_l_e_d.html#a1f39e8404db214bbd6a776f52a77d8b1">CFastLED::setMaxRefreshRate</a>(uint16_t refresh, <span class="keywordtype">bool</span> constrain) {</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span>(constrain) {</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="comment">// if we&#39;re constraining, the new value of m_nMinMicros _must_ be higher than previously (because we&#39;re only</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="comment">// allowed to slow things down if constraining)</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span>(refresh &gt; 0) {</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; m_nMinMicros = ( (1000000/refresh) &gt; m_nMinMicros) ? (1000000/refresh) : m_nMinMicros;</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; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(refresh &gt; 0) {</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; m_nMinMicros = 1000000 / refresh;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_nMinMicros = 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;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">int</span> atexit(<span class="keywordtype">void</span> (* <span class="comment">/*func*/</span> )()) { <span class="keywordflow">return</span> 0; }</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="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">int</span> __cxa_guard_acquire (__guard *);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">void</span> __cxa_guard_release (__guard *);</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">void</span> __cxa_guard_abort (__guard *);</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">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">int</span> __cxa_guard_acquire (__guard *g)</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">return</span> !*(<span class="keywordtype">char</span> *)(g);</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor">#ifdef NEED_CXX_BITS</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace____cxxabiv1.html">__cxxabiv1</a></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"> #ifndef ESP8266</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">void</span> __cxa_pure_virtual (<span class="keywordtype">void</span>) {}</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor"> #endif</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; </div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">/* guard variables */</span></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="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">void</span> __cxa_guard_release (__guard *g)</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="keywordtype">char</span> *)g = 1;</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">void</span> __cxa_guard_abort (__guard *)</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; {</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;}</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="comment">/* The ABI requires a 64-bit type. */</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; __extension__ <span class="keyword">typedef</span> <span class="keywordtype">int</span> __guard <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((mode(__DI__)));</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">int</span> __cxa_guard_acquire (__guard *);</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">void</span> __cxa_guard_release (__guard *);</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">void</span> __cxa_guard_abort (__guard *);</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">int</span> __cxa_guard_acquire (__guard *g)</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="keywordflow">return</span> !*(<span class="keywordtype">char</span> *)(g);</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;FASTLED_NAMESPACE_END</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> <a href="controller_8h_source.html#l00091">controller.h:91</a></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> <a href="pixeltypes_8h_source.html#l00088">pixeltypes.h:88</a></div></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">void</span> __cxa_guard_release (__guard *g)</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; {</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; *(<span class="keywordtype">char</span> *)g = 1;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> <span class="keywordtype">void</span> __cxa_guard_abort (__guard *)</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;</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="preprocessor">#endif</span></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;FASTLED_NAMESPACE_END</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> <a href="controller_8h_source.html#l00088">controller.h:88</a></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> <a href="pixeltypes_8h_source.html#l00090">pixeltypes.h:90</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00073">FastLED.cpp:73</a></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> <a href="controller_8h_source.html#l00037">controller.h:37</a></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> <a href="controller_8h_source.html#l00120">controller.h:120</a></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> <a href="controller_8h_source.html#l00148">controller.h:148</a></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> <a href="controller_8h_source.html#l00113">controller.h:113</a></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> <a href="controller_8h_source.html#l00038">controller.h:38</a></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> <a href="controller_8h_source.html#l00110">controller.h:110</a></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> <a href="controller_8h_source.html#l00138">controller.h:138</a></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> <a href="controller_8h_source.html#l00103">controller.h:103</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00063">FastLED.cpp:63</a></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> <a href="_fast_l_e_d_8h_source.html#l00144">FastLED.h:144</a></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> <a href="controller_8h_source.html#l00141">controller.h:141</a></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> <a href="_fast_l_e_d_8h_source.html#l00145">FastLED.h:145</a></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> <a href="controller_8h_source.html#l00131">controller.h:131</a></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="namespace____cxxabiv1_html"><div class="ttname"><a href="namespace____cxxabiv1.html">__cxxabiv1</a></div><div class="ttdef"><b>Definition:</b> <a href="_fast_l_e_d_8cpp_source.html#l00226">FastLED.cpp:226</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00143">FastLED.cpp:143</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00127">FastLED.cpp:127</a></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> <a href="controller_8h_source.html#l00103">controller.h:103</a></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> <a href="_fast_l_e_d_8h_source.html#l00425">FastLED.h:425</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00135">FastLED.cpp:135</a></div></div>
+<div class="ttc" id="namespace____cxxabiv1_html"><div class="ttname"><a href="namespace____cxxabiv1.html">__cxxabiv1</a></div><div class="ttdef"><b>Definition:</b> <a href="_fast_l_e_d_8cpp_source.html#l00235">FastLED.cpp:235</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00152">FastLED.cpp:152</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00136">FastLED.cpp:136</a></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> <a href="controller_8h_source.html#l00100">controller.h:100</a></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> <a href="_fast_l_e_d_8h_source.html#l00426">FastLED.h:426</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00144">FastLED.cpp:144</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00085">FastLED.cpp:85</a></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> <a href="controller_8h_source.html#l00136">controller.h:136</a></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> <a href="controller_8h_source.html#l00126">controller.h:126</a></div></div>
<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </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> <a href="_fast_l_e_d_8cpp_source.html#l00030">FastLED.cpp:30</a></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_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> <a href="controller_8h_source.html#l00138">controller.h:138</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00196">FastLED.cpp:196</a></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> <a href="controller_8h_source.html#l00101">controller.h:101</a></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> <a href="fastled__delay_8h_source.html#l00085">fastled_delay.h:85</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00100">FastLED.cpp:100</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00107">FastLED.cpp:107</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00209">FastLED.cpp:209</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00115">FastLED.cpp:115</a></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> <a href="controller_8h_source.html#l00128">controller.h:128</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00205">FastLED.cpp:205</a></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> <a href="controller_8h_source.html#l00098">controller.h:98</a></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> <a href="fastled__delay_8h_source.html#l00092">fastled_delay.h:92</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00105">FastLED.cpp:105</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00112">FastLED.cpp:112</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00218">FastLED.cpp:218</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00120">FastLED.cpp:120</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>FastLED.cpp</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/_fast_l_e_d_8h.html b/docs/3.1/_fast_l_e_d_8h.html
index 4356d189..18b6304b 100644
--- a/docs/3.1/_fast_l_e_d_8h.html
+++ b/docs/3.1/_fast_l_e_d_8h.html
@@ -150,6 +150,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_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_s_k6822.html">SK6822&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>
@@ -233,7 +235,7 @@ Variables</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="_fast_l_e_d_8h.html">FastLED.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/_fast_l_e_d_8h.js b/docs/3.1/_fast_l_e_d_8h.js
index 330abf78..668165a7 100644
--- a/docs/3.1/_fast_l_e_d_8h.js
+++ b/docs/3.1/_fast_l_e_d_8h.js
@@ -14,6 +14,7 @@ var _fast_l_e_d_8h =
[ "WS2812", "class_w_s2812.html", null ],
[ "WS2812B", "class_w_s2812_b.html", null ],
[ "SK6812", "class_s_k6812.html", null ],
+ [ "SK6822", "class_s_k6822.html", null ],
[ "PL9823", "class_p_l9823.html", null ],
[ "WS2811", "class_w_s2811.html", null ],
[ "APA104", "class_a_p_a104.html", null ],
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 a6fd9e5f..3c2b8df1 100644
--- a/docs/3.1/_fast_l_e_d_8h_source.html
+++ b/docs/3.1/_fast_l_e_d_8h_source.html
@@ -199,380 +199,383 @@ $(document).ready(function(){initNavTree('_fast_l_e_d_8h_source.html','');});
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="class_w_s2812.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_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="l00092"></a><span class="lineno"><a class="line" href="class_w_s2812_b.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_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="l00093"></a><span class="lineno"><a class="line" href="class_s_k6812.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_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="l00094"></a><span class="lineno"><a class="line" href="class_p_l9823.html"> 94</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="l00095"></a><span class="lineno"><a class="line" href="class_w_s2811.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_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="l00096"></a><span class="lineno"><a class="line" href="class_a_p_a104.html"> 96</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="l00097"></a><span class="lineno"><a class="line" href="class_w_s2811__400.html"> 97</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="l00098"></a><span class="lineno"><a class="line" href="class_g_w6205.html"> 98</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="l00099"></a><span class="lineno"><a class="line" href="class_g_w6205__400.html"> 99</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="l00100"></a><span class="lineno"><a class="line" href="class_l_p_d1886.html"> 100</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="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#ifdef DmxSimple_h</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="class_d_m_x_s_i_m_p_l_e.html"> 102</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="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;<span class="preprocessor">#ifdef DmxSerial_h</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_d_m_x_s_e_r_i_a_l.html"> 105</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="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="class_s_k6822.html"> 94</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_k6822.html">SK6822</a> : <span class="keyword">public</span> <a class="code" href="class_s_k6822_controller.html">SK6822Controller</a>&lt;DATA_PIN, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="class_p_l9823.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_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="l00096"></a><span class="lineno"><a class="line" href="class_w_s2811.html"> 96</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="l00097"></a><span class="lineno"><a class="line" href="class_a_p_a104.html"> 97</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="l00098"></a><span class="lineno"><a class="line" href="class_w_s2811__400.html"> 98</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="l00099"></a><span class="lineno"><a class="line" href="class_g_w6205.html"> 99</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="l00100"></a><span class="lineno"><a class="line" href="class_g_w6205__400.html"> 100</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="l00101"></a><span class="lineno"><a class="line" href="class_l_p_d1886.html"> 101</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="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#ifdef DmxSimple_h</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="class_d_m_x_s_i_m_p_l_e.html"> 103</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="l00104"></a><span class="lineno"> 104</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#ifdef DmxSerial_h</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="class_d_m_x_s_e_r_i_a_l.html"> 106</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="l00107"></a><span class="lineno"> 107</span>&#160;<span class="preprocessor">#endif</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">enum</span> EBlockChipsets {</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#ifdef PORTA_FIRST_PIN</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; WS2811_PORTA,</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; WS2811_400_PORTA,</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 PORTB_FIRST_PIN</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; WS2811_PORTB,</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; WS2811_400_PORTB,</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;<span class="preprocessor">#ifdef PORTC_FIRST_PIN</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; WS2811_PORTC,</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; WS2811_400_PORTC,</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="preprocessor">#ifdef PORTD_FIRST_PIN</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; WS2811_PORTD,</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; WS2811_400_PORTD,</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#ifdef HAS_PORTDC</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; WS2811_PORTDC,</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; WS2811_400_PORTDC,</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;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#if defined(LIB8_ATTINY)</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#define NUM_CONTROLLERS 2</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor">#define NUM_CONTROLLERS 8</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#endif</span></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="keyword">typedef</span> uint8_t (*power_func)(uint8_t scale, uint32_t data);</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html"> 144</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="l00145"></a><span class="lineno"> 145</span>&#160; <span class="comment">// int m_nControllers;</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; uint8_t m_Scale; </div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; uint16_t m_nFPS; </div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; uint32_t m_nMinMicros; </div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; uint32_t m_nPowerData; </div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; power_func m_pPowerFunc; </div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="class_c_fast_l_e_d.html">CFastLED</a>();</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</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="keyword">enum</span> EBlockChipsets {</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#ifdef PORTA_FIRST_PIN</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; WS2811_PORTA,</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; WS2811_400_PORTA,</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 PORTB_FIRST_PIN</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; WS2811_PORTB,</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; WS2811_400_PORTB,</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 PORTC_FIRST_PIN</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; WS2811_PORTC,</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; WS2811_400_PORTC,</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;<span class="preprocessor">#ifdef PORTD_FIRST_PIN</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; WS2811_PORTD,</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; WS2811_400_PORTD,</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="preprocessor">#ifdef HAS_PORTDC</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; WS2811_PORTDC,</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; WS2811_400_PORTDC,</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="preprocessor">#endif</span></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="preprocessor">#if defined(LIB8_ATTINY)</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="preprocessor">#define NUM_CONTROLLERS 2</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="preprocessor">#define NUM_CONTROLLERS 8</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword">typedef</span> uint8_t (*power_func)(uint8_t scale, uint32_t data);</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html"> 145</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="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// int m_nControllers;</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; uint8_t m_Scale; </div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; uint16_t m_nFPS; </div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; uint32_t m_nMinMicros; </div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; uint32_t m_nPowerData; </div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; power_func m_pPowerFunc; </div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="class_c_fast_l_e_d.html">CFastLED</a>();</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</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="l00168"></a><span class="lineno"> 168</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; <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="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</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="l00192"></a><span class="lineno"> 192</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="l00193"></a><span class="lineno"> 193</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="l00194"></a><span class="lineno"> 194</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="l00195"></a><span class="lineno"> 195</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="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">case</span> DOTSTAR:</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</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="l00198"></a><span class="lineno"> 198</span>&#160; }</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</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="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</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="l00204"></a><span class="lineno"> 204</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="l00205"></a><span class="lineno"> 205</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="l00206"></a><span class="lineno"> 206</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="l00207"></a><span class="lineno"> 207</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="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">case</span> DOTSTAR:</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</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="l00210"></a><span class="lineno"> 210</span>&#160; }</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="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="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</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="l00216"></a><span class="lineno"> 216</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="l00217"></a><span class="lineno"> 217</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="l00218"></a><span class="lineno"> 218</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="l00219"></a><span class="lineno"> 219</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="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">case</span> DOTSTAR:</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</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="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;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor">#ifdef SPI_DATA</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</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="l00227"></a><span class="lineno"> 227</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="l00228"></a><span class="lineno"> 228</span>&#160; }</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; <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="l00231"></a><span class="lineno"> 231</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="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="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="l00235"></a><span class="lineno"> 235</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="l00236"></a><span class="lineno"> 236</span>&#160; }</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="preprocessor">#endif</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</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="l00169"></a><span class="lineno"> 169</span>&#160;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">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="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</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="l00193"></a><span class="lineno"> 193</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="l00194"></a><span class="lineno"> 194</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="l00195"></a><span class="lineno"> 195</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="l00196"></a><span class="lineno"> 196</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="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">case</span> DOTSTAR:</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</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="l00199"></a><span class="lineno"> 199</span>&#160; }</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</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="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</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="l00205"></a><span class="lineno"> 205</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="l00206"></a><span class="lineno"> 206</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="l00207"></a><span class="lineno"> 207</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="l00208"></a><span class="lineno"> 208</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="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">case</span> DOTSTAR:</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</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="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;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</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="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</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="l00217"></a><span class="lineno"> 217</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="l00218"></a><span class="lineno"> 218</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="l00219"></a><span class="lineno"> 219</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="l00220"></a><span class="lineno"> 220</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="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">case</span> DOTSTAR:</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</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="l00223"></a><span class="lineno"> 223</span>&#160; }</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor">#ifdef SPI_DATA</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</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="l00228"></a><span class="lineno"> 228</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="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="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="l00232"></a><span class="lineno"> 232</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="l00233"></a><span class="lineno"> 233</span>&#160; }</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="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="l00236"></a><span class="lineno"> 236</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="l00237"></a><span class="lineno"> 237</span>&#160; }</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor">#ifdef FASTLED_HAS_CLOCKLESS</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="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="l00261"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9"> 261</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="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">static</span> CHIPSET&lt;DATA_PIN, RGB_ORDER&gt; c;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</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="l00264"></a><span class="lineno"> 264</span>&#160; }</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">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="l00267"></a><span class="lineno"> 267</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="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keyword">static</span> CHIPSET&lt;DATA_PIN, RGB&gt; c;</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</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="l00270"></a><span class="lineno"> 270</span>&#160; }</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <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="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; <span class="keyword">static</span> CHIPSET&lt;DATA_PIN&gt; c;</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</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="l00276"></a><span class="lineno"> 276</span>&#160; }</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="preprocessor"> #ifdef FASTSPI_USE_DMX_SIMPLE</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</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="l00280"></a><span class="lineno"> 280</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="l00281"></a><span class="lineno"> 281</span>&#160; {</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</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="l00284"></a><span class="lineno"> 284</span>&#160; }</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="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</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; <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="l00309"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ac4dff92f45048399edb0812a02ab9d96"> 309</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="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">static</span> CHIPSET&lt;RGB_ORDER&gt; c;</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</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="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="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="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; <span class="keyword">static</span> CHIPSET&lt;RGB&gt; c;</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</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="l00318"></a><span class="lineno"> 318</span>&#160; }</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor">#ifdef USE_OCTOWS2811</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">template</span>&lt;OWS2811 CHIPSET, EOrder RGB_ORDER&gt;</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</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="l00323"></a><span class="lineno"> 323</span>&#160; {</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</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="l00326"></a><span class="lineno"> 326</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="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;</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keyword">template</span>&lt;OWS2811 CHIPSET&gt;</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</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="l00332"></a><span class="lineno"> 332</span>&#160; {</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">return</span> addLeds&lt;CHIPSET,GRB&gt;(data,nLedsOrOffset,nLedsIfOffset);</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="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor">#ifdef SmartMatrix_h</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">template</span>&lt;ESM CHIPSET&gt;</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</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="l00341"></a><span class="lineno"> 341</span>&#160; {</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</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="l00344"></a><span class="lineno"> 344</span>&#160; }</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="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">#ifdef FASTLED_HAS_CLOCKLESS</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</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="l00262"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9"> 262</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="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">static</span> CHIPSET&lt;DATA_PIN, RGB_ORDER&gt; c;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</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="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="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="l00268"></a><span class="lineno"> 268</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="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">static</span> CHIPSET&lt;DATA_PIN, RGB&gt; c;</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</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="l00271"></a><span class="lineno"> 271</span>&#160; }</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</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="l00274"></a><span class="lineno"> 274</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="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">static</span> CHIPSET&lt;DATA_PIN&gt; c;</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</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="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"> #ifdef FASTSPI_USE_DMX_SIMPLE</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</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="l00281"></a><span class="lineno"> 281</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="l00282"></a><span class="lineno"> 282</span>&#160; {</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</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="l00285"></a><span class="lineno"> 285</span>&#160; }</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;<span class="preprocessor"> #endif</span></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="preprocessor">#endif</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</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="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="l00310"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ac4dff92f45048399edb0812a02ab9d96"> 310</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="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">static</span> CHIPSET&lt;RGB_ORDER&gt; c;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</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="l00313"></a><span class="lineno"> 313</span>&#160; }</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="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="l00316"></a><span class="lineno"> 316</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="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">static</span> CHIPSET&lt;RGB&gt; c;</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</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="l00319"></a><span class="lineno"> 319</span>&#160; }</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 USE_OCTOWS2811</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keyword">template</span>&lt;OWS2811 CHIPSET, EOrder RGB_ORDER&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> 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="l00327"></a><span class="lineno"> 327</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="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="l00330"></a><span class="lineno"> 330</span>&#160;</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">template</span>&lt;OWS2811 CHIPSET&gt;</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</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="l00333"></a><span class="lineno"> 333</span>&#160; {</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">return</span> addLeds&lt;CHIPSET,GRB&gt;(data,nLedsOrOffset,nLedsIfOffset);</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="preprocessor">#endif</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;<span class="preprocessor">#ifdef SmartMatrix_h</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">template</span>&lt;ESM CHIPSET&gt;</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</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="l00342"></a><span class="lineno"> 342</span>&#160; {</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</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="l00345"></a><span class="lineno"> 345</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="preprocessor">#endif</span></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="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor">#ifdef FASTLED_HAS_BLOCKLESS</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</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="keyword">template</span>&lt;EBlockChipsets CHIPSET, <span class="keywordtype">int</span> NUM_LANES, EOrder RGB_ORDER&gt;</div>
-<div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9"> 371</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="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="preprocessor"> #ifdef PORTA_FIRST_PIN</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</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="l00375"></a><span class="lineno"> 375</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="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="preprocessor"> #ifdef PORTB_FIRST_PIN</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</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="l00379"></a><span class="lineno"> 379</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="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="preprocessor"> #ifdef PORTC_FIRST_PIN</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</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="l00383"></a><span class="lineno"> 383</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="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;<span class="preprocessor"> #ifdef PORTD_FIRST_PIN</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</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="l00387"></a><span class="lineno"> 387</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="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"> #ifdef HAS_PORTDC</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</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="l00391"></a><span class="lineno"> 391</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="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; }</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; }</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">template</span>&lt;EBlockChipsets CHIPSET, <span class="keywordtype">int</span> NUM_LANES&gt;</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</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="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">return</span> addLeds&lt;CHIPSET,NUM_LANES,GRB&gt;(data,nLedsOrOffset,nLedsIfOffset);</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; }</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div>
-<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a730ba7d967e882b4b893689cf333b2eb"> 405</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="l00406"></a><span class="lineno"> 406</span>&#160;</div>
-<div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ac2615781ec12e025fb17cc0e66281716"> 409</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="l00410"></a><span class="lineno"> 410</span>&#160;</div>
-<div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a996375a3f4a7b8c096f87d8a93c2b196"> 414</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="l00415"></a><span class="lineno"> 415</span>&#160;</div>
-<div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ab07d62cdec036af9ede70cbd06ece40f"> 418</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="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#a3adb23ec5f919524928d576002cb45de">show</a>(uint8_t scale);</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"><a class="line" href="class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de"> 425</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="l00426"></a><span class="lineno"> 426</span>&#160;</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</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="l00430"></a><span class="lineno"> 430</span>&#160;</div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</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="l00433"></a><span class="lineno"> 433</span>&#160;</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</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="l00438"></a><span class="lineno"> 438</span>&#160;</div>
-<div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a570df74cf09e6215c3647333d2b479a9"> 441</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="l00442"></a><span class="lineno"> 442</span>&#160;</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</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="l00447"></a><span class="lineno"> 447</span>&#160;</div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</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="l00452"></a><span class="lineno"> 452</span>&#160;</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</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="l00457"></a><span class="lineno"> 457</span>&#160;</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</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="l00462"></a><span class="lineno"> 462</span>&#160;</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</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="l00471"></a><span class="lineno"> 471</span>&#160;</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</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="l00477"></a><span class="lineno"> 477</span>&#160;</div>
-<div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#aa8c3ae3381e524ce30b181ffa23b83cd"> 480</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="l00481"></a><span class="lineno"> 481</span>&#160;</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</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="l00485"></a><span class="lineno"> 485</span>&#160;</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</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="l00489"></a><span class="lineno"> 489</span>&#160;</div>
-<div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0"> 492</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="l00493"></a><span class="lineno"> 493</span>&#160;</div>
-<div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ae3c0a81b88fb64a65725cb2fed67f766"> 496</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="l00497"></a><span class="lineno"> 497</span>&#160;};</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="preprocessor">#define FastSPI_LED FastLED</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor">#define FastSPI_LED2 FastLED</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;<span class="preprocessor">#ifndef LEDS</span></div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="preprocessor">#define LEDS FastLED</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="preprocessor">#endif</span></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="keyword">extern</span> <a class="code" href="class_c_fast_l_e_d.html">CFastLED</a> FastLED;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor">#ifdef FASTLED_HAS_BLOCKLESS</span></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"> 354</span>&#160;</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</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="l00372"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9"> 372</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="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">switch</span>(CHIPSET) {</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor"> #ifdef PORTA_FIRST_PIN</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</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="l00376"></a><span class="lineno"> 376</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="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 PORTB_FIRST_PIN</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</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="l00380"></a><span class="lineno"> 380</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="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 PORTC_FIRST_PIN</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</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="l00384"></a><span class="lineno"> 384</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="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;<span class="preprocessor"> #ifdef PORTD_FIRST_PIN</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</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="l00388"></a><span class="lineno"> 388</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="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"> #endif</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor"> #ifdef HAS_PORTDC</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</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;NUM_LANES,NS(320), NS(320), NS(640), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</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;NUM_LANES,NS(800), NS(800), NS(900), RGB_ORDER&gt;(), data, nLedsOrOffset, nLedsIfOffset);</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="preprocessor"> #endif</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;</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keyword">template</span>&lt;EBlockChipsets CHIPSET, <span class="keywordtype">int</span> NUM_LANES&gt;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</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="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">return</span> addLeds&lt;CHIPSET,NUM_LANES,GRB&gt;(data,nLedsOrOffset,nLedsIfOffset);</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; }</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div>
+<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a730ba7d967e882b4b893689cf333b2eb"> 406</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="l00407"></a><span class="lineno"> 407</span>&#160;</div>
+<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ac2615781ec12e025fb17cc0e66281716"> 410</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="l00411"></a><span class="lineno"> 411</span>&#160;</div>
+<div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a996375a3f4a7b8c096f87d8a93c2b196"> 415</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="l00416"></a><span class="lineno"> 416</span>&#160;</div>
+<div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ab07d62cdec036af9ede70cbd06ece40f"> 419</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="l00420"></a><span class="lineno"> 420</span>&#160;</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</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="l00424"></a><span class="lineno"> 424</span>&#160;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a3adb23ec5f919524928d576002cb45de"> 426</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="l00427"></a><span class="lineno"> 427</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#a042989511cbc42390620bedc196ea956">clear</a>(<span class="keywordtype">boolean</span> writeData = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</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="l00434"></a><span class="lineno"> 434</span>&#160;</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</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="l00439"></a><span class="lineno"> 439</span>&#160;</div>
+<div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a570df74cf09e6215c3647333d2b479a9"> 442</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="l00443"></a><span class="lineno"> 443</span>&#160;</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</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="l00449"></a><span class="lineno"> 449</span>&#160;</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</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="l00454"></a><span class="lineno"> 454</span>&#160;</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</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="l00459"></a><span class="lineno"> 459</span>&#160;</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#a7ae5d3864df01101d82d242c123ffb36">setDither</a>(uint8_t ditherMode = BINARY_DITHER);</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</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="l00473"></a><span class="lineno"> 473</span>&#160;</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</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="l00479"></a><span class="lineno"> 479</span>&#160;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#aa8c3ae3381e524ce30b181ffa23b83cd"> 482</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="l00483"></a><span class="lineno"> 483</span>&#160;</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</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="l00487"></a><span class="lineno"> 487</span>&#160;</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</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="l00491"></a><span class="lineno"> 491</span>&#160;</div>
+<div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0"> 494</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="l00495"></a><span class="lineno"> 495</span>&#160;</div>
+<div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="class_c_fast_l_e_d.html#ae3c0a81b88fb64a65725cb2fed67f766"> 498</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="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="preprocessor">#define FastSPI_LED FastLED</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="preprocessor">#define FastSPI_LED2 FastLED</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="preprocessor">#ifndef LEDS</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor">#define LEDS FastLED</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="preprocessor">#endif</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="comment">// Warnings for undefined things</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="preprocessor">#ifndef HAS_HARDWARE_PIN_SUPPORT</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</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="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor">#define NO_HARDWARE_PIN_SUPPORT</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;</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</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="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">// Warnings for undefined things</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="preprocessor">#ifndef HAS_HARDWARE_PIN_SUPPORT</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</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="l00512"></a><span class="lineno"> 512</span>&#160;<span class="preprocessor">#define NO_HARDWARE_PIN_SUPPORT</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;<span class="preprocessor">#endif</span></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;</div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="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> <a href="chipsets_8h_source.html#l00526">chipsets.h:526</a></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> <a href="_fast_l_e_d_8h_source.html#l00309">FastLED.h:309</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> <a href="chipsets_8h_source.html#l00337">chipsets.h:337</a></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> <a href="_fast_l_e_d_8h_source.html#l00310">FastLED.h:310</a></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> <a href="_fast_l_e_d_8h_source.html#l00091">FastLED.h:91</a></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> <a href="pixeltypes_8h_source.html#l00088">pixeltypes.h:88</a></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> <a href="pixeltypes_8h_source.html#l00090">pixeltypes.h:90</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00073">FastLED.cpp:73</a></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> <a href="_fast_l_e_d_8h_source.html#l00100">FastLED.h:100</a></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> <a href="chipsets_8h_source.html#l00532">chipsets.h:532</a></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> <a href="_fast_l_e_d_8h_source.html#l00098">FastLED.h:98</a></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> <a href="controller_8h_source.html#l00037">controller.h:37</a></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> <a href="_fast_l_e_d_8h_source.html#l00492">FastLED.h:492</a></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> <a href="_fast_l_e_d_8h_source.html#l00101">FastLED.h:101</a></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> <a href="chipsets_8h_source.html#l00343">chipsets.h:343</a></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> <a href="_fast_l_e_d_8h_source.html#l00099">FastLED.h:99</a></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> <a href="controller_8h_source.html#l00038">controller.h:38</a></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> <a href="_fast_l_e_d_8h_source.html#l00494">FastLED.h:494</a></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> <a href="_fast_l_e_d_8h_source.html#l00093">FastLED.h:93</a></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> <a href="chipsets_8h_source.html#l00517">chipsets.h:517</a></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> <a href="_fast_l_e_d_8h_source.html#l00409">FastLED.h:409</a></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> <a href="chipsets_8h_source.html#l00325">chipsets.h:325</a></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> <a href="_fast_l_e_d_8h_source.html#l00410">FastLED.h:410</a></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> <a href="chipsets_8h_source.html#l00098">chipsets.h:98</a></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> <a href="chipsets_8h_source.html#l00081">chipsets.h:81</a></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> <a href="chipsets_8h_source.html#l00529">chipsets.h:529</a></div></div>
-<div class="ttc" id="class_pixie_controller_html"><div class="ttname"><a href="class_pixie_controller.html">PixieController</a></div><div class="ttdoc">Adafruit Pixie controller class. </div><div class="ttdef"><b>Definition:</b> <a href="chipsets_8h_source.html#l00027">chipsets.h:27</a></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> <a href="chipsets_8h_source.html#l00550">chipsets.h:550</a></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> <a href="_fast_l_e_d_8h_source.html#l00414">FastLED.h:414</a></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> <a href="chipsets_8h_source.html#l00340">chipsets.h:340</a></div></div>
+<div class="ttc" id="class_pixie_controller_html"><div class="ttname"><a href="class_pixie_controller.html">PixieController</a></div><div class="ttdoc">Adafruit Pixie controller class. </div><div class="ttdef"><b>Definition:</b> <a href="chipsets_8h_source.html#l00028">chipsets.h:28</a></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> <a href="chipsets_8h_source.html#l00361">chipsets.h:361</a></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> <a href="_fast_l_e_d_8h_source.html#l00415">FastLED.h:415</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00063">FastLED.cpp:63</a></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> <a href="_fast_l_e_d_8h_source.html#l00144">FastLED.h:144</a></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> <a href="dmx_8h_source.html#l00014">dmx.h:14</a></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> <a href="_fast_l_e_d_8h_source.html#l00261">FastLED.h:261</a></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> <a href="chipsets_8h_source.html#l00514">chipsets.h:514</a></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> <a href="chipsets_8h_source.html#l00541">chipsets.h:541</a></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> <a href="_fast_l_e_d_8h_source.html#l00145">FastLED.h:145</a></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> <a href="dmx_8h_source.html#l00015">dmx.h:15</a></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> <a href="_fast_l_e_d_8h_source.html#l00262">FastLED.h:262</a></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> <a href="chipsets_8h_source.html#l00322">chipsets.h:322</a></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> <a href="chipsets_8h_source.html#l00352">chipsets.h:352</a></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> <a href="_fast_l_e_d_8h_source.html#l00087">FastLED.h:87</a></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> <a href="chipsets_8h_source.html#l00538">chipsets.h:538</a></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> <a href="chipsets_8h_source.html#l00349">chipsets.h:349</a></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> <a href="_fast_l_e_d_8h_source.html#l00084">FastLED.h:84</a></div></div>
<div class="ttc" id="class_u_c_s2903_html"><div class="ttname"><a href="class_u_c_s2903.html">UCS2903</a></div><div class="ttdef"><b>Definition:</b> <a href="_fast_l_e_d_8h_source.html#l00090">FastLED.h:90</a></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> <a href="chipsets_8h_source.html#l00172">chipsets.h:172</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00143">FastLED.cpp:143</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00127">FastLED.cpp:127</a></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> <a href="_fast_l_e_d_8h_source.html#l00480">FastLED.h:480</a></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> <a href="_fast_l_e_d_8h_source.html#l00418">FastLED.h:418</a></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> <a href="_fast_l_e_d_8h_source.html#l00102">FastLED.h:102</a></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> <a href="chipsets_8h_source.html#l00510">chipsets.h:510</a></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> <a href="chipsets_8h_source.html#l00122">chipsets.h:122</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00152">FastLED.cpp:152</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00136">FastLED.cpp:136</a></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> <a href="_fast_l_e_d_8h_source.html#l00482">FastLED.h:482</a></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> <a href="_fast_l_e_d_8h_source.html#l00419">FastLED.h:419</a></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> <a href="_fast_l_e_d_8h_source.html#l00103">FastLED.h:103</a></div></div>
+<div class="ttc" id="class_s_k6822_controller_html"><div class="ttname"><a href="class_s_k6822_controller.html">SK6822Controller</a></div><div class="ttdef"><b>Definition:</b> <a href="chipsets_8h_source.html#l00331">chipsets.h:331</a></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> <a href="chipsets_8h_source.html#l00318">chipsets.h:318</a></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> <a href="_fast_l_e_d_8h_source.html#l00083">FastLED.h:83</a></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> <a href="_fast_l_e_d_8h_source.html#l00496">FastLED.h:496</a></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> <a href="_fast_l_e_d_8h_source.html#l00498">FastLED.h:498</a></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> <a href="chipsets_8h_source.html#l00544">chipsets.h:544</a></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> <a href="chipsets_8h_source.html#l00355">chipsets.h:355</a></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> <a href="_fast_l_e_d_8h_source.html#l00082">FastLED.h:82</a></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> <a href="_fast_l_e_d_8h_source.html#l00081">FastLED.h:81</a></div></div>
<div class="ttc" id="class_p_i_x_i_e_html"><div class="ttname"><a href="class_p_i_x_i_e.html">PIXIE</a></div><div class="ttdef"><b>Definition:</b> <a href="_fast_l_e_d_8h_source.html#l00077">FastLED.h:77</a></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> <a href="_fast_l_e_d_8h_source.html#l00425">FastLED.h:425</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00135">FastLED.cpp:135</a></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> <a href="_fast_l_e_d_8h_source.html#l00426">FastLED.h:426</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00144">FastLED.cpp:144</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00085">FastLED.cpp:85</a></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> <a href="_fast_l_e_d_8h_source.html#l00092">FastLED.h:92</a></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> <a href="_fast_l_e_d_8h_source.html#l00089">FastLED.h:89</a></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> <a href="chipsets_8h_source.html#l00341">chipsets.h:341</a></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> <a href="chipsets_8h_source.html#l00523">chipsets.h:523</a></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> <a href="chipsets_8h_source.html#l00218">chipsets.h:218</a></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> <a href="chipsets_8h_source.html#l00334">chipsets.h:334</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00030">FastLED.cpp:30</a></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> <a href="_fast_l_e_d_8h_source.html#l00105">FastLED.h:105</a></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> <a href="dmx_8h_source.html#l00065">dmx.h:65</a></div></div>
-<div class="ttc" id="class_u_c_s2903_controller_html"><div class="ttname"><a href="class_u_c_s2903_controller.html">UCS2903Controller</a></div><div class="ttdef"><b>Definition:</b> <a href="chipsets_8h_source.html#l00535">chipsets.h:535</a></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> <a href="_fast_l_e_d_8h_source.html#l00405">FastLED.h:405</a></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> <a href="chipsets_8h_source.html#l00547">chipsets.h:547</a></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> <a href="_fast_l_e_d_8h_source.html#l00106">FastLED.h:106</a></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> <a href="dmx_8h_source.html#l00042">dmx.h:42</a></div></div>
+<div class="ttc" id="class_u_c_s2903_controller_html"><div class="ttname"><a href="class_u_c_s2903_controller.html">UCS2903Controller</a></div><div class="ttdef"><b>Definition:</b> <a href="chipsets_8h_source.html#l00346">chipsets.h:346</a></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> <a href="_fast_l_e_d_8h_source.html#l00406">FastLED.h:406</a></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> <a href="chipsets_8h_source.html#l00358">chipsets.h:358</a></div></div>
+<div class="ttc" id="class_s_k6822_html"><div class="ttname"><a href="class_s_k6822.html">SK6822</a></div><div class="ttdef"><b>Definition:</b> <a href="_fast_l_e_d_8h_source.html#l00094">FastLED.h:94</a></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> <a href="chipsets_8h_source.html#l00520">chipsets.h:520</a></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> <a href="_fast_l_e_d_8h_source.html#l00441">FastLED.h:441</a></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> <a href="chipsets_8h_source.html#l00328">chipsets.h:328</a></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> <a href="_fast_l_e_d_8h_source.html#l00442">FastLED.h:442</a></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> <a href="_fast_l_e_d_8h_source.html#l00085">FastLED.h:85</a></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> <a href="_fast_l_e_d_8h_source.html#l00088">FastLED.h:88</a></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> <a href="chipsets_8h_source.html#l00228">chipsets.h:228</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00196">FastLED.cpp:196</a></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> <a href="chipsets_8h_source.html#l00214">chipsets.h:214</a></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> <a href="chipsets_8h_source.html#l00158">chipsets.h:158</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00205">FastLED.cpp:205</a></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> <a href="chipsets_8h_source.html#l00144">chipsets.h:144</a></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> <a href="_fast_l_e_d_8h_source.html#l00063">FastLED.h:63</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00100">FastLED.cpp:100</a></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> <a href="_fast_l_e_d_8h_source.html#l00095">FastLED.h:95</a></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> <a href="_fast_l_e_d_8h_source.html#l00097">FastLED.h:97</a></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> <a href="_fast_l_e_d_8h_source.html#l00096">FastLED.h:96</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00107">FastLED.cpp:107</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00105">FastLED.cpp:105</a></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> <a href="_fast_l_e_d_8h_source.html#l00096">FastLED.h:96</a></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> <a href="_fast_l_e_d_8h_source.html#l00098">FastLED.h:98</a></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> <a href="_fast_l_e_d_8h_source.html#l00097">FastLED.h:97</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00112">FastLED.cpp:112</a></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_p_l9823_controller_html"><div class="ttname"><a href="class_p_l9823_controller.html">PL9823Controller</a></div><div class="ttdef"><b>Definition:</b> <a href="chipsets_8h_source.html#l00553">chipsets.h:553</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00209">FastLED.cpp:209</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00115">FastLED.cpp:115</a></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> <a href="_fast_l_e_d_8h_source.html#l00094">FastLED.h:94</a></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> <a href="chipsets_8h_source.html#l00431">chipsets.h:431</a></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> <a href="chipsets_8h_source.html#l00364">chipsets.h:364</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00218">FastLED.cpp:218</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00120">FastLED.cpp:120</a></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> <a href="_fast_l_e_d_8h_source.html#l00095">FastLED.h:95</a></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> <a href="chipsets_8h_source.html#l00268">chipsets.h:268</a></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> <a href="_fast_l_e_d_8h_source.html#l00086">FastLED.h:86</a></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> <a href="_fast_l_e_d_8h_source.html#l00099">FastLED.h:99</a></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> <a href="_fast_l_e_d_8h_source.html#l00100">FastLED.h:100</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="_fast_l_e_d_8h.html">FastLED.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/_p_o_r_t_i_n_g_8md_source.html b/docs/3.1/_p_o_r_t_i_n_g_8md_source.html
index 0568df32..eaefbd1e 100644
--- a/docs/3.1/_p_o_r_t_i_n_g_8md_source.html
+++ b/docs/3.1/_p_o_r_t_i_n_g_8md_source.html
@@ -144,7 +144,7 @@ $(document).ready(function(){initNavTree('_p_o_r_t_i_n_g_8md.html','');});
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>PORTING.md</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/_r_e_a_d_m_e_8md_source.html b/docs/3.1/_r_e_a_d_m_e_8md_source.html
index 03442563..5de7ae97 100644
--- a/docs/3.1/_r_e_a_d_m_e_8md_source.html
+++ b/docs/3.1/_r_e_a_d_m_e_8md_source.html
@@ -111,96 +111,97 @@ $(document).ready(function(){initNavTree('_r_e_a_d_m_e_8md.html','');});
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/FastLED/public)</div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;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 WS2812B. If you are using a linux system make sure you are using avr-gcc 4.8.x not avr-gcc 4.7.x.</div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;IMPORTANT NOTE: For AVR based systems, avr-gcc 4.8.x is supported and tested. This means Arduino 1.6.5 and later.</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;FastLED 3.1</div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;===========</div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;This is a library for easily &amp; efficiently controlling a wide variety of LED chipsets, like the ones</div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;sold by adafruit (Neopixel, DotStar, LPD8806), Sparkfun (WS2801), and aliexpress. In addition to writing to the</div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;leds, this library also includes a number of functions for high-performing 8bit math for manipulating</div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;your RGB values, as well as low level classes for abstracting out access to pins and SPI hardware, while</div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;still keeping things as fast as possible. Tested with Arduino up to 1.6.5 from arduino.cc.</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;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!</div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;We have multiple goals with this library:</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;* Quick start for new developers - hook up your leds and go, no need to think about specifics of the led chipsets being used</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;* Zero pain switching LED chipsets - you get some new leds that the library supports, just change the definition of LEDs you&#39;re using, et. voila! Your code is running with the new leds.</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;* High performance - with features like zero cost global brightness scaling, high performance 8-bit math for RGB manipulation, and some of the fastest bit-bang&#39;d SPI support around, FastLED wants to keep as many CPU cycles available for your led patterns as possible</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;## Getting help</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;If you need help with using the library, please consider going to the google+ community first, which is at http://fastled.io/+ - there are hundreds of people in that group and many times you will get a quicker answer to your question there, as you will be likely to run into other people who have had the same issue. If you run into bugs with the library (compilation failures, the library doing the wrong thing), or if you&#39;d like to request that we support a particular platform or LED chipset, then please open an issue at http://fastled.io/issues and we will try to figure out what is going wrong.</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;## Simple example</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;How quickly can you get up and running with the library? Here&#39;s a simple blink program:</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; #include &quot;FastLED.h&quot;</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; #define NUM_LEDS 60</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; CRGB leds[NUM_LEDS];</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; void setup() { FastLED.addLeds&lt;NEOPIXEL, 6&gt;(leds, NUM_LEDS); }</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; void loop() {</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; leds[0] = CRGB::White; FastLED.show(); delay(30);</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; leds[0] = CRGB::Black; FastLED.show(); delay(30);</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; }</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;## Supported LED chipsets</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;Here&#39;s a list of all the LED chipsets are supported. More details on the led chipsets are included *TODO: Link to wiki page*</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;* Adafruit&#39;s DotStars - AKA the APA102</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;* Adafruit&#39;s Neopixel - aka the WS2812B (also WS2811/WS2812, also supported in lo-speed mode) - a 3 wire addressable led chipset</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;* TM1809/4 - 3 wire chipset, cheaply available on aliexpress.com</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;* TM1803 - 3 wire chipset, sold by radio shack</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;* UCS1903 - another 3 wire led chipset, cheap</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;* GW6205 - another 3 wire led chipset</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;* LPD8806 - SPI based chpiset, very high speed</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;* WS2801 - SPI based chipset, cheap and widely available</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;* SM16716 - SPI based chipset</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;* APA102 - SPI based chipset</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;* P9813 - aka Cool Neon&#39;s Total Control Lighting</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;* DMX - send rgb data out over DMX using arduino DMX libraries</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;* SmartMatrix panels - needs the SmartMatrix library - https://github.com/pixelmatix/SmartMatrix</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;FastLED 3.1</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;===========</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;This is a library for easily &amp; efficiently controlling a wide variety of LED chipsets, like the ones</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;sold by adafruit (Neopixel, DotStar, LPD8806), Sparkfun (WS2801), and aliexpress. In addition to writing to the</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;leds, this library also includes a number of functions for high-performing 8bit math for manipulating</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;your RGB values, as well as low level classes for abstracting out access to pins and SPI hardware, while</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;still keeping things as fast as possible. Tested with Arduino up to 1.6.5 from arduino.cc.</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;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!</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;We have multiple goals with this library:</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;* Quick start for new developers - hook up your leds and go, no need to think about specifics of the led chipsets being used</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;* Zero pain switching LED chipsets - you get some new leds that the library supports, just change the definition of LEDs you&#39;re using, et. voila! Your code is running with the new leds.</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;* High performance - with features like zero cost global brightness scaling, high performance 8-bit math for RGB manipulation, and some of the fastest bit-bang&#39;d SPI support around, FastLED wants to keep as many CPU cycles available for your led patterns as possible</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;## Getting help</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;If you need help with using the library, please consider going to the google+ community first, which is at http://fastled.io/+ - there are hundreds of people in that group and many times you will get a quicker answer to your question there, as you will be likely to run into other people who have had the same issue. If you run into bugs with the library (compilation failures, the library doing the wrong thing), or if you&#39;d like to request that we support a particular platform or LED chipset, then please open an issue at http://fastled.io/issues and we will try to figure out what is going wrong.</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;## Simple example</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;How quickly can you get up and running with the library? Here&#39;s a simple blink program:</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; #include &quot;FastLED.h&quot;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; #define NUM_LEDS 60</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; CRGB leds[NUM_LEDS];</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; void setup() { FastLED.addLeds&lt;NEOPIXEL, 6&gt;(leds, NUM_LEDS); }</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; void loop() {</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; leds[0] = CRGB::White; FastLED.show(); delay(30);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; leds[0] = CRGB::Black; FastLED.show(); delay(30);</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;## Supported LED chipsets</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;Here&#39;s a list of all the LED chipsets are supported. More details on the led chipsets are included *TODO: Link to wiki page*</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;* Adafruit&#39;s DotStars - AKA the APA102</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;* Adafruit&#39;s Neopixel - aka the WS2812B (also WS2811/WS2812, also supported in lo-speed mode) - a 3 wire addressable led chipset</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;* TM1809/4 - 3 wire chipset, cheaply available on aliexpress.com</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;* TM1803 - 3 wire chipset, sold by radio shack</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;* UCS1903 - another 3 wire led chipset, cheap</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;* GW6205 - another 3 wire led chipset</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;* LPD8806 - SPI based chpiset, very high speed</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;* WS2801 - SPI based chipset, cheap and widely available</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;* SM16716 - SPI based chipset</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;* APA102 - SPI based chipset</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;* P9813 - aka Cool Neon&#39;s Total Control Lighting</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;* DMX - send rgb data out over DMX using arduino DMX libraries</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;* SmartMatrix panels - needs the SmartMatrix library - https://github.com/pixelmatix/SmartMatrix</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;LPD6803, HL1606, and &quot;595&quot;-style shift registers are no longer supported by the library. The older Version 1 of the library (&quot;FastSPI_LED&quot;) has support for these, but is missing many of the advanced features of current versions and is no longer being maintained.</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</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;LPD6803, HL1606, and &quot;595&quot;-style shift registers are no longer supported by the library. The older Version 1 of the library (&quot;FastSPI_LED&quot;) has support for these, but is missing many of the advanced features of current versions and is no longer being maintained.</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;## Supported platforms</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;Right now the library is supported on a variety of arduino compatable platforms. If it&#39;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&#39;t see what you&#39;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.</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;* Arduino &amp; compatibles - straight up arduino devices, uno, duo, leonardo, mega, nano, etc...</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;* Arduino Yún</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;* Adafruit Trinket &amp; Gemma - Trinket Pro may be supported, but haven&#39;t tested to confirm yet</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;* 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!)</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;* Arduino Due and the digistump DigiX</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;* RFDuino</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;* SparkCore</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;* Arduino Zero </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;What types of platforms are we thinking about supporting in the future? Here&#39;s a short list: ChipKit32, Maple, Beagleboard</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;## What about that name?</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;Wait, what happend to FastSPI_LED and FastSPI_LED2? The library was initially named FastSPI_LED because it was focused on very fast and efficient SPI access. However, since then, the library has expanded to support a number of LED chipsets that don&#39;t use SPI, as well as a number of math and utility functions for LED processing across the board. We decided that the name FastLED more accurately represents the totality of what the library provides, everything fast, for LEDs.</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;## For more information</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;Check out the official site http://fastled.io for links to documentation, issues, and news</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;## Supported platforms</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;Right now the library is supported on a variety of arduino compatable platforms. If it&#39;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&#39;t see what you&#39;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.</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;* Arduino &amp; compatibles - straight up arduino devices, uno, duo, leonardo, mega, nano, etc...</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;* Arduino Yún</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;* Adafruit Trinket &amp; Gemma - Trinket Pro may be supported, but haven&#39;t tested to confirm yet</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;* 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!)</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;* Arduino Due and the digistump DigiX</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;* RFDuino</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;* SparkCore</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;* Arduino Zero </div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;What types of platforms are we thinking about supporting in the future? Here&#39;s a short list: ChipKit32, Maple, Beagleboard</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;## What about that name?</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;Wait, what happend to FastSPI_LED and FastSPI_LED2? The library was initially named FastSPI_LED because it was focused on very fast and efficient SPI access. However, since then, the library has expanded to support a number of LED chipsets that don&#39;t use SPI, as well as a number of math and utility functions for LED processing across the board. We decided that the name FastLED more accurately represents the totality of what the library provides, everything fast, for LEDs.</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;## For more information</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;Check out the official site http://fastled.io for links to documentation, issues, and news</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;*TODO* - get candy</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;*TODO* - get candy</div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>README.md</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/annotated.html b/docs/3.1/annotated.html
index 6c33770f..914adb61 100644
--- a/docs/3.1/annotated.html
+++ b/docs/3.1/annotated.html
@@ -122,85 +122,89 @@ $(document).ready(function(){initNavTree('annotated.html','');});
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_h_s_v.html" target="_self">CHSV</a></td><td class="desc">Representation of an HSV pixel (hue, saturation, value (aka brightness)) </td></tr>
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_h_s_v_palette16.html" target="_self">CHSVPalette16</a></td><td class="desc"></td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_h_s_v_palette256.html" target="_self">CHSVPalette256</a></td><td class="desc"></td></tr>
-<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_l_e_d_controller.html" target="_self">CLEDController</a></td><td class="desc">Base definition for an LED controller </td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_min_wait.html" target="_self">CMinWait</a></td><td class="desc">Class to ensure that a minimum amount of time has kicked since the last time run - and delay if not enough time has passed yet this should make sure that chipsets that have </td></tr>
-<tr id="row_11_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_11_" class="arrow" onclick="toggleFolder('11_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_pixel_view.html" target="_self">CPixelView</a></td><td class="desc">Represents a set of <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> led objects </td></tr>
-<tr id="row_11_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_c_pixel_view_1_1pixelset__iterator__base.html" target="_self">pixelset_iterator_base</a></td><td class="desc"></td></tr>
-<tr id="row_12_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_r_g_b.html" target="_self">CRGB</a></td><td class="desc">Representation of an RGB pixel (Red, Green, Blue) </td></tr>
-<tr id="row_13_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_r_g_b_array.html" target="_self">CRGBArray</a></td><td class="desc"></td></tr>
-<tr id="row_14_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_r_g_b_palette16.html" target="_self">CRGBPalette16</a></td><td class="desc"></td></tr>
-<tr id="row_15_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_r_g_b_palette256.html" target="_self">CRGBPalette256</a></td><td class="desc"></td></tr>
-<tr id="row_16_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_a_t_a___n_o_p.html" target="_self">DATA_NOP</a></td><td class="desc">Some of the SPI controllers will need to perform a transform on each byte before doing anyting with it </td></tr>
-<tr id="row_17_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_m_x_s_e_r_i_a_l.html" target="_self">DMXSERIAL</a></td><td class="desc"></td></tr>
-<tr id="row_18_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_m_x_serial_controller.html" target="_self">DMXSerialController</a></td><td class="desc"></td></tr>
-<tr id="row_19_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_m_x_s_i_m_p_l_e.html" target="_self">DMXSIMPLE</a></td><td class="desc"></td></tr>
-<tr id="row_20_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_m_x_simple_controller.html" target="_self">DMXSimpleController</a></td><td class="desc"></td></tr>
-<tr id="row_21_" 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_fast_pin.html" target="_self">FastPin</a></td><td class="desc">The simplest level of <a class="el" href="class_pin.html">Pin</a> class </td></tr>
-<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="class_fast_pin_b_b.html" target="_self">FastPinBB</a></td><td class="desc"></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="class_g_w6205.html" target="_self">GW6205</a></td><td class="desc"></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="class_g_w6205__400.html" target="_self">GW6205_400</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_g_w6205_controller400_khz.html" target="_self">GW6205Controller400Khz</a></td><td class="desc"></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="class_g_w6205_controller800_khz.html" target="_self">GW6205Controller800Khz</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="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_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="class_input_pin.html" target="_self">InputPin</a></td><td class="desc"></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="unionjust8bits.html" target="_self">just8bits</a></td><td class="desc">Structure representing 8 bits of access </td></tr>
-<tr id="row_30_"><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_d1886.html" target="_self">LPD1886</a></td><td class="desc"></td></tr>
-<tr id="row_31_" 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_d1886_controller1250_khz.html" target="_self">LPD1886Controller1250Khz</a></td><td class="desc"></td></tr>
-<tr id="row_32_"><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_33_" 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_multi_pixel_controller.html" target="_self">MultiPixelController</a></td><td class="desc"></td></tr>
-<tr id="row_34_"><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_35_" 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</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_36_"><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_37_" 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_38_"><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_39_" 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_40_"><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_i_x_i_e.html" target="_self">PIXIE</a></td><td class="desc"></td></tr>
-<tr id="row_41_" 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_pixie_controller.html" target="_self">PixieController</a></td><td class="desc">Adafruit Pixie controller class </td></tr>
-<tr id="row_42_"><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_43_" 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_controller.html" target="_self">PL9823Controller</a></td><td class="desc"></td></tr>
-<tr id="row_44_"><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_45_" 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</a></td><td class="desc"></td></tr>
-<tr id="row_46_"><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_47_" 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.html" target="_self">SK6812</a></td><td class="desc"></td></tr>
-<tr id="row_48_"><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_49_" 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_m16716_controller.html" target="_self">SM16716Controller</a></td><td class="desc">SM16716 controller class </td></tr>
-<tr id="row_50_"><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_51_" 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.html" target="_self">SPIOutput</a></td><td class="desc"></td></tr>
-<tr id="row_52_"><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_53_" 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_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_54_"><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_55_" 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_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_56_"><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_57_" 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_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_58_"><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_59_" 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_60_"><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_61_" 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_controller400_khz.html" target="_self">TM1803Controller400Khz</a></td><td class="desc"></td></tr>
-<tr id="row_62_"><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_63_" 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.html" target="_self">TM1809</a></td><td class="desc"></td></tr>
-<tr id="row_64_"><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_65_" 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_m1812.html" target="_self">TM1812</a></td><td class="desc"></td></tr>
-<tr id="row_66_"><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_67_" 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_68_"><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_69_" 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_70_"><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_71_" 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_72_"><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_73_" 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_74_"><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_75_" 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_76_"><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_s2903.html" target="_self">UCS2903</a></td><td class="desc"></td></tr>
-<tr id="row_77_" 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_s2903_controller.html" target="_self">UCS2903Controller</a></td><td class="desc"></td></tr>
-<tr id="row_78_"><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_79_" 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_80_"><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_81_" 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_82_"><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_83_" 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_84_"><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_85_" 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_86_"><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_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_h_s_v_palette32.html" target="_self">CHSVPalette32</a></td><td class="desc"></td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_l_e_d_controller.html" target="_self">CLEDController</a></td><td class="desc">Base definition for an LED controller </td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_min_wait.html" target="_self">CMinWait</a></td><td class="desc">Class to ensure that a minimum amount of time has kicked since the last time run - and delay if not enough time has passed yet this should make sure that chipsets that have </td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_pixel_l_e_d_controller.html" target="_self">CPixelLEDController</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_13_" class="arrow" onclick="toggleFolder('13_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_pixel_view.html" target="_self">CPixelView</a></td><td class="desc">Represents a set of <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> led objects </td></tr>
+<tr id="row_13_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_c_pixel_view_1_1pixelset__iterator__base.html" target="_self">pixelset_iterator_base</a></td><td class="desc"></td></tr>
+<tr id="row_14_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_r_g_b.html" target="_self">CRGB</a></td><td class="desc">Representation of an RGB pixel (Red, Green, Blue) </td></tr>
+<tr id="row_15_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_r_g_b_array.html" target="_self">CRGBArray</a></td><td class="desc"></td></tr>
+<tr id="row_16_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_r_g_b_palette16.html" target="_self">CRGBPalette16</a></td><td class="desc"></td></tr>
+<tr id="row_17_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_r_g_b_palette256.html" target="_self">CRGBPalette256</a></td><td class="desc"></td></tr>
+<tr id="row_18_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_r_g_b_palette32.html" target="_self">CRGBPalette32</a></td><td class="desc"></td></tr>
+<tr id="row_19_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_a_t_a___n_o_p.html" target="_self">DATA_NOP</a></td><td class="desc">Some of the SPI controllers will need to perform a transform on each byte before doing anyting with it </td></tr>
+<tr id="row_20_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_m_x_s_e_r_i_a_l.html" target="_self">DMXSERIAL</a></td><td class="desc"></td></tr>
+<tr id="row_21_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_m_x_serial_controller.html" target="_self">DMXSerialController</a></td><td class="desc"></td></tr>
+<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="class_d_m_x_s_i_m_p_l_e.html" target="_self">DMXSIMPLE</a></td><td class="desc"></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="class_d_m_x_simple_controller.html" target="_self">DMXSimpleController</a></td><td class="desc"></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="class_fast_pin.html" target="_self">FastPin</a></td><td class="desc">The simplest level of <a class="el" href="class_pin.html">Pin</a> class </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_fast_pin_b_b.html" target="_self">FastPinBB</a></td><td class="desc"></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="class_g_w6205.html" target="_self">GW6205</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="class_g_w6205__400.html" target="_self">GW6205_400</a></td><td class="desc"></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="class_g_w6205_controller400_khz.html" target="_self">GW6205Controller400Khz</a></td><td class="desc"></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_g_w6205_controller800_khz.html" target="_self">GW6205Controller800Khz</a></td><td class="desc"></td></tr>
+<tr id="row_30_"><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_31_" 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_input_pin.html" target="_self">InputPin</a></td><td class="desc"></td></tr>
+<tr id="row_32_"><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_33_" 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_d1886.html" target="_self">LPD1886</a></td><td class="desc"></td></tr>
+<tr id="row_34_"><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_d1886_controller1250_khz.html" target="_self">LPD1886Controller1250Khz</a></td><td class="desc"></td></tr>
+<tr id="row_35_" 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_36_"><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_37_" 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</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_38_"><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_39_" 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_40_"><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_41_" 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"></td></tr>
+<tr id="row_42_"><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_i_x_i_e.html" target="_self">PIXIE</a></td><td class="desc"></td></tr>
+<tr id="row_43_" 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_pixie_controller.html" target="_self">PixieController</a></td><td class="desc">Adafruit Pixie controller class </td></tr>
+<tr id="row_44_"><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_45_" 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_controller.html" target="_self">PL9823Controller</a></td><td class="desc"></td></tr>
+<tr id="row_46_"><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_47_" 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</a></td><td class="desc"></td></tr>
+<tr id="row_48_"><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_49_" 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.html" target="_self">SK6812</a></td><td class="desc"></td></tr>
+<tr id="row_50_"><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_51_" 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_k6822.html" target="_self">SK6822</a></td><td class="desc"></td></tr>
+<tr id="row_52_"><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_k6822_controller.html" target="_self">SK6822Controller</a></td><td class="desc"></td></tr>
+<tr id="row_53_" 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_m16716_controller.html" target="_self">SM16716Controller</a></td><td class="desc">SM16716 controller class </td></tr>
+<tr id="row_54_"><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_55_" 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.html" target="_self">SPIOutput</a></td><td class="desc"></td></tr>
+<tr id="row_56_"><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_57_" 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_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_58_"><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_59_" 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_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_60_"><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_61_" 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_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_62_"><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_63_" 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_64_"><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_65_" 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_controller400_khz.html" target="_self">TM1803Controller400Khz</a></td><td class="desc"></td></tr>
+<tr id="row_66_"><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_67_" 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.html" target="_self">TM1809</a></td><td class="desc"></td></tr>
+<tr id="row_68_"><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_69_" 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_m1812.html" target="_self">TM1812</a></td><td class="desc"></td></tr>
+<tr id="row_70_"><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_71_" 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_72_"><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_73_" 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_74_"><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_75_" 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_76_"><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_77_" 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_78_"><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_79_" 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_80_"><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_s2903.html" target="_self">UCS2903</a></td><td class="desc"></td></tr>
+<tr id="row_81_" 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_s2903_controller.html" target="_self">UCS2903Controller</a></td><td class="desc"></td></tr>
+<tr id="row_82_"><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_83_" 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_84_"><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_85_" 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_86_"><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_87_" 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_88_"><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_89_" 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_90_"><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 -->
@@ -208,7 +212,7 @@ $(document).ready(function(){initNavTree('annotated.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/annotated.js b/docs/3.1/annotated.js
index 3d94a89f..376d83a4 100644
--- a/docs/3.1/annotated.js
+++ b/docs/3.1/annotated.js
@@ -9,13 +9,16 @@ var annotated =
[ "CHSV", "struct_c_h_s_v.html", "struct_c_h_s_v" ],
[ "CHSVPalette16", "class_c_h_s_v_palette16.html", "class_c_h_s_v_palette16" ],
[ "CHSVPalette256", "class_c_h_s_v_palette256.html", "class_c_h_s_v_palette256" ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html", "class_c_h_s_v_palette32" ],
[ "CLEDController", "class_c_l_e_d_controller.html", "class_c_l_e_d_controller" ],
[ "CMinWait", "class_c_min_wait.html", "class_c_min_wait" ],
+ [ "CPixelLEDController", "class_c_pixel_l_e_d_controller.html", "class_c_pixel_l_e_d_controller" ],
[ "CPixelView", "class_c_pixel_view.html", "class_c_pixel_view" ],
[ "CRGB", "struct_c_r_g_b.html", "struct_c_r_g_b" ],
[ "CRGBArray", "class_c_r_g_b_array.html", "class_c_r_g_b_array" ],
[ "CRGBPalette16", "class_c_r_g_b_palette16.html", "class_c_r_g_b_palette16" ],
[ "CRGBPalette256", "class_c_r_g_b_palette256.html", "class_c_r_g_b_palette256" ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html", "class_c_r_g_b_palette32" ],
[ "DATA_NOP", "class_d_a_t_a___n_o_p.html", "class_d_a_t_a___n_o_p" ],
[ "DMXSERIAL", "class_d_m_x_s_e_r_i_a_l.html", null ],
[ "DMXSerialController", "class_d_m_x_serial_controller.html", "class_d_m_x_serial_controller" ],
@@ -33,7 +36,6 @@ var annotated =
[ "LPD1886", "class_l_p_d1886.html", null ],
[ "LPD1886Controller1250Khz", "class_l_p_d1886_controller1250_khz.html", null ],
[ "LPD8806Controller", "class_l_p_d8806_controller.html", "class_l_p_d8806_controller" ],
- [ "MultiPixelController", "struct_multi_pixel_controller.html", "struct_multi_pixel_controller" ],
[ "NEOPIXEL", "class_n_e_o_p_i_x_e_l.html", null ],
[ "NOPSPIOutput", "class_n_o_p_s_p_i_output.html", "class_n_o_p_s_p_i_output" ],
[ "OutputPin", "class_output_pin.html", "class_output_pin" ],
@@ -49,6 +51,8 @@ var annotated =
[ "Selectable", "class_selectable.html", "class_selectable" ],
[ "SK6812", "class_s_k6812.html", null ],
[ "SK6812Controller", "class_s_k6812_controller.html", null ],
+ [ "SK6822", "class_s_k6822.html", null ],
+ [ "SK6822Controller", "class_s_k6822_controller.html", null ],
[ "SM16716Controller", "class_s_m16716_controller.html", "class_s_m16716_controller" ],
[ "SoftwareSPIOutput", "class_software_s_p_i_output.html", null ],
[ "SPIOutput", "class_s_p_i_output.html", null ],
diff --git a/docs/3.1/bitswap_8h.html b/docs/3.1/bitswap_8h.html
index be7025d7..ba1af93e 100644
--- a/docs/3.1/bitswap_8h.html
+++ b/docs/3.1/bitswap_8h.html
@@ -147,7 +147,7 @@ Functions</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="bitswap_8h.html">bitswap.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/bitswap_8h_source.html b/docs/3.1/bitswap_8h_source.html
index 54c7d3d9..81ddcbfe 100644
--- a/docs/3.1/bitswap_8h_source.html
+++ b/docs/3.1/bitswap_8h_source.html
@@ -112,271 +112,274 @@ $(document).ready(function(){initNavTree('bitswap_8h_source.html','');});
<a href="bitswap_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_BITSWAP_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_BITSWAP_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;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#ifdef FASTLED_ARM</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">typedef</span> <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; uint8_t raw;</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; uint32_t a0:1;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; uint32_t a1:1;</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; uint32_t a2:1;</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; uint32_t a3:1;</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; uint32_t a4:1;</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; uint32_t a5:1;</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; uint32_t a6:1;</div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; uint32_t a7:1;</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;} <a class="code" href="unionjust8bits.html">just8bits</a>;</div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
-<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="structsub4.html"> 29</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; uint32_t a0:1;</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; uint32_t a1:1;</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; uint32_t a2:1;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; uint32_t a3:1;</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; uint32_t a4:1;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; uint32_t a5:1;</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; uint32_t a6:1;</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; uint32_t a7:1;</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; uint32_t b0:1;</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; uint32_t b1:1;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; uint32_t b2:1;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; uint32_t b3:1;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; uint32_t b4:1;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; uint32_t b5:1;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; uint32_t b6:1;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; uint32_t b7:1;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; uint32_t c0:1;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; uint32_t c1:1;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; uint32_t c2:1;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; uint32_t c3:1;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; uint32_t c4:1;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; uint32_t c5:1;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; uint32_t c6:1;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; uint32_t c7:1;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; uint32_t d0:1;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; uint32_t d1:1;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; uint32_t d2:1;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; uint32_t d3:1;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; uint32_t d4:1;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; uint32_t d5:1;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; uint32_t d6:1;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; uint32_t d7:1;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;} <a class="code" href="structsub4.html">sub4</a>;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="unionbitswap__type.html"> 65</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; uint32_t word[2];</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; uint8_t bytes[8];</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="structsub4.html">sub4</a> a;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="structsub4.html">sub4</a> b;</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;} <a class="code" href="unionbitswap__type.html">bitswap_type</a>;</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"> 75</span>&#160;<span class="preprocessor">#define SWAPSA(X,N) out. X ## 0 = in.a.a ## N; \</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor"> out. X ## 1 = in.a.b ## N; \</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor"> out. X ## 2 = in.a.c ## N; \</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor"> out. X ## 3 = in.a.d ## N;</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#define SWAPSB(X,N) out. X ## 0 = in.b.a ## N; \</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor"> out. X ## 1 = in.b.b ## N; \</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor"> out. X ## 2 = in.b.c ## N; \</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> out. X ## 3 = in.b.d ## N;</span></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="preprocessor">#define SWAPS(X,N) out. X ## 0 = in.a.a ## N; \</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"> out. X ## 1 = in.a.b ## N; \</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"> out. X ## 2 = in.a.c ## N; \</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"> out. X ## 3 = in.a.d ## N; \</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"> out. X ## 4 = in.b.a ## N; \</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"> out. X ## 5 = in.b.b ## N; \</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"> out. X ## 6 = in.b.c ## N; \</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor"> out. X ## 7 = in.b.d ## N;</span></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;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> swapbits8(<a class="code" href="unionbitswap__type.html">bitswap_type</a> in, <a class="code" href="unionbitswap__type.html">bitswap_type</a> &amp; out) {</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="comment">// SWAPS(a.a,7);</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// SWAPS(a.b,6);</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// SWAPS(a.c,5);</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// SWAPS(a.d,4);</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// SWAPS(b.a,3);</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// SWAPS(b.b,2);</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// SWAPS(b.c,1);</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">// SWAPS(b.d,0);</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="comment">// SWAPSA(a.a,7);</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// SWAPSA(a.b,6);</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// SWAPSA(a.c,5);</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// SWAPSA(a.d,4);</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">//</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// SWAPSB(a.a,7);</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// SWAPSB(a.b,6);</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// SWAPSB(a.c,5);</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// SWAPSB(a.d,4);</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">//</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// SWAPSA(b.a,3);</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">// SWAPSA(b.b,2);</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// SWAPSA(b.c,1);</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// SWAPSA(b.d,0);</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// //</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// SWAPSB(b.a,3);</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// SWAPSB(b.b,2);</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// SWAPSB(b.c,1);</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// SWAPSB(b.d,0);</span></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; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 8; i++) {</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="unionjust8bits.html">just8bits</a> work;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; work.a3 = in.word[0] &gt;&gt; 31;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; work.a2 = in.word[0] &gt;&gt; 23;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; work.a1 = in.word[0] &gt;&gt; 15;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; work.a0 = in.word[0] &gt;&gt; 7;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; in.word[0] &lt;&lt;= 1;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; work.a7 = in.word[1] &gt;&gt; 31;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; work.a6 = in.word[1] &gt;&gt; 23;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; work.a5 = in.word[1] &gt;&gt; 15;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; work.a4 = in.word[1] &gt;&gt; 7;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; in.word[1] &lt;&lt;= 1;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; out.bytes[i] = work.raw;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> slowswap(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *A, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *B) {</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> row = 0; row &lt; 7; row++) {</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; uint8_t x = A[row];</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; uint8_t bit = (1&lt;&lt;row);</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *p = B;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">for</span>(uint32_t mask = 1&lt;&lt;7 ; mask ; mask &gt;&gt;= 1) {</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">if</span>(x &amp; mask) {</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; *p++ |= bit;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; *p++ &amp;= ~bit;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">// B[7] |= (x &amp; 0x01) &lt;&lt; row; x &gt;&gt;= 1;</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="comment">// B[6] |= (x &amp; 0x01) &lt;&lt; row; x &gt;&gt;= 1;</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">// B[5] |= (x &amp; 0x01) &lt;&lt; row; x &gt;&gt;= 1;</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// B[4] |= (x &amp; 0x01) &lt;&lt; row; x &gt;&gt;= 1;</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="comment">// B[3] |= (x &amp; 0x01) &lt;&lt; row; x &gt;&gt;= 1;</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="comment">// B[2] |= (x &amp; 0x01) &lt;&lt; row; x &gt;&gt;= 1;</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">// B[1] |= (x &amp; 0x01) &lt;&lt; row; x &gt;&gt;= 1;</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="comment">// B[0] |= (x &amp; 0x01) &lt;&lt; row; x &gt;&gt;= 1;</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;}</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> transpose8x1(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *A, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *B) {</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; uint32_t x, y, t;</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; <span class="comment">// Load the array and pack it into x and y.</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; y = *(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*)(A);</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; x = *(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*)(A+4);</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">// pre-transform x</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; t = (x ^ (x &gt;&gt; 7)) &amp; 0x00AA00AA; x = x ^ t ^ (t &lt;&lt; 7);</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; t = (x ^ (x &gt;&gt;14)) &amp; 0x0000CCCC; x = x ^ t ^ (t &lt;&lt;14);</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">// pre-transform y</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; t = (y ^ (y &gt;&gt; 7)) &amp; 0x00AA00AA; y = y ^ t ^ (t &lt;&lt; 7);</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; t = (y ^ (y &gt;&gt;14)) &amp; 0x0000CCCC; y = y ^ t ^ (t &lt;&lt;14);</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">// final transform</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; t = (x &amp; 0xF0F0F0F0) | ((y &gt;&gt; 4) &amp; 0x0F0F0F0F);</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; y = ((x &lt;&lt; 4) &amp; 0xF0F0F0F0) | (y &amp; 0x0F0F0F0F);</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; x = t;</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; *((uint32_t*)B) = y;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; *((uint32_t*)(B+4)) = x;</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="l00196"></a><span class="lineno"> 196</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> transpose8x1_MSB(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *A, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *B) {</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; uint32_t x, y, t;</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="comment">// Load the array and pack it into x and y.</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; y = *(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*)(A);</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; x = *(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*)(A+4);</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">// pre-transform x</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; t = (x ^ (x &gt;&gt; 7)) &amp; 0x00AA00AA; x = x ^ t ^ (t &lt;&lt; 7);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; t = (x ^ (x &gt;&gt;14)) &amp; 0x0000CCCC; x = x ^ t ^ (t &lt;&lt;14);</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; <span class="comment">// pre-transform y</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; t = (y ^ (y &gt;&gt; 7)) &amp; 0x00AA00AA; y = y ^ t ^ (t &lt;&lt; 7);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; t = (y ^ (y &gt;&gt;14)) &amp; 0x0000CCCC; y = y ^ t ^ (t &lt;&lt;14);</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="comment">// final transform</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; t = (x &amp; 0xF0F0F0F0) | ((y &gt;&gt; 4) &amp; 0x0F0F0F0F);</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; y = ((x &lt;&lt; 4) &amp; 0xF0F0F0F0) | (y &amp; 0x0F0F0F0F);</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; x = t;</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; B[7] = y; y &gt;&gt;= 8;</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; B[6] = y; y &gt;&gt;= 8;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; B[5] = y; y &gt;&gt;= 8;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; B[4] = y;</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; B[3] = x; x &gt;&gt;= 8;</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; B[2] = x; x &gt;&gt;= 8;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; B[1] = x; x &gt;&gt;= 8;</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; B[0] = x; <span class="comment">/* */</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;}</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> m, <span class="keywordtype">int</span> n&gt;</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> transpose8(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *A, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *B) {</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; uint32_t x, y, t;</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; <span class="comment">// Load the array and pack it into x and y.</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span>(m == 1) {</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; y = *(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*)(A);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; x = *(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*)(A+4);</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; x = (A[0]&lt;&lt;24) | (A[m]&lt;&lt;16) | (A[2*m]&lt;&lt;8) | A[3*m];</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; y = (A[4*m]&lt;&lt;24) | (A[5*m]&lt;&lt;16) | (A[6*m]&lt;&lt;8) | A[7*m];</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">// pre-transform x</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; t = (x ^ (x &gt;&gt; 7)) &amp; 0x00AA00AA; x = x ^ t ^ (t &lt;&lt; 7);</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; t = (x ^ (x &gt;&gt;14)) &amp; 0x0000CCCC; x = x ^ t ^ (t &lt;&lt;14);</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="comment">// pre-transform y</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; t = (y ^ (y &gt;&gt; 7)) &amp; 0x00AA00AA; y = y ^ t ^ (t &lt;&lt; 7);</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; t = (y ^ (y &gt;&gt;14)) &amp; 0x0000CCCC; y = y ^ t ^ (t &lt;&lt;14);</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="comment">// final transform</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; t = (x &amp; 0xF0F0F0F0) | ((y &gt;&gt; 4) &amp; 0x0F0F0F0F);</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; y = ((x &lt;&lt; 4) &amp; 0xF0F0F0F0) | (y &amp; 0x0F0F0F0F);</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; x = t;</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; B[7*n] = y; y &gt;&gt;= 8;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; B[6*n] = y; y &gt;&gt;= 8;</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; B[5*n] = y; y &gt;&gt;= 8;</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; B[4*n] = y;</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; B[3*n] = x; x &gt;&gt;= 8;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; B[2*n] = x; x &gt;&gt;= 8;</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; B[n] = x; x &gt;&gt;= 8;</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; B[0] = x;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="comment">// B[0]=x&gt;&gt;24; B[n]=x&gt;&gt;16; B[2*n]=x&gt;&gt;8; B[3*n]=x&gt;&gt;0;</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="comment">// B[4*n]=y&gt;&gt;24; B[5*n]=y&gt;&gt;16; B[6*n]=y&gt;&gt;8; B[7*n]=y&gt;&gt;0;</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;}</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#ifdef FASTLED_ARM</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">typedef</span> <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; uint8_t raw;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; uint32_t a0:1;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; uint32_t a1:1;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; uint32_t a2:1;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; uint32_t a3:1;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; uint32_t a4:1;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; uint32_t a5:1;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; uint32_t a6:1;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; uint32_t a7:1;</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;} <a class="code" href="unionjust8bits.html">just8bits</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="structsub4.html"> 31</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; uint32_t a0:1;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; uint32_t a1:1;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; uint32_t a2:1;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; uint32_t a3:1;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; uint32_t a4:1;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; uint32_t a5:1;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; uint32_t a6:1;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; uint32_t a7:1;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; uint32_t b0:1;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; uint32_t b1:1;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; uint32_t b2:1;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; uint32_t b3:1;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; uint32_t b4:1;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; uint32_t b5:1;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; uint32_t b6:1;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; uint32_t b7:1;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; uint32_t c0:1;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; uint32_t c1:1;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; uint32_t c2:1;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; uint32_t c3:1;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; uint32_t c4:1;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; uint32_t c5:1;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; uint32_t c6:1;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; uint32_t c7:1;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; uint32_t d0:1;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; uint32_t d1:1;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; uint32_t d2:1;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; uint32_t d3:1;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; uint32_t d4:1;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; uint32_t d5:1;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; uint32_t d6:1;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; uint32_t d7:1;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <a class="code" href="structsub4.html">sub4</a>;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="unionbitswap__type.html"> 67</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; uint32_t word[2];</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; uint8_t bytes[8];</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="structsub4.html">sub4</a> a;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="structsub4.html">sub4</a> b;</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;} <a class="code" href="unionbitswap__type.html">bitswap_type</a>;</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;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#define SWAPSA(X,N) out. X ## 0 = in.a.a ## N; \</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor"> out. X ## 1 = in.a.b ## N; \</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor"> out. X ## 2 = in.a.c ## N; \</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"> out. X ## 3 = in.a.d ## N;</span></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;<span class="preprocessor">#define SWAPSB(X,N) out. X ## 0 = in.b.a ## N; \</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> out. X ## 1 = in.b.b ## N; \</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor"> out. X ## 2 = in.b.c ## N; \</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor"> out. X ## 3 = in.b.d ## N;</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#define SWAPS(X,N) out. X ## 0 = in.a.a ## N; \</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor"> out. X ## 1 = in.a.b ## N; \</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor"> out. X ## 2 = in.a.c ## N; \</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="preprocessor"> out. X ## 3 = in.a.d ## N; \</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor"> out. X ## 4 = in.b.a ## N; \</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor"> out. X ## 5 = in.b.b ## N; \</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"> out. X ## 6 = in.b.c ## N; \</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor"> out. X ## 7 = in.b.d ## N;</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;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> swapbits8(<a class="code" href="unionbitswap__type.html">bitswap_type</a> in, <a class="code" href="unionbitswap__type.html">bitswap_type</a> &amp; out) {</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="comment">// SWAPS(a.a,7);</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// SWAPS(a.b,6);</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// SWAPS(a.c,5);</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// SWAPS(a.d,4);</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// SWAPS(b.a,3);</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">// SWAPS(b.b,2);</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// SWAPS(b.c,1);</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// SWAPS(b.d,0);</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="comment">// SWAPSA(a.a,7);</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// SWAPSA(a.b,6);</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// SWAPSA(a.c,5);</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// SWAPSA(a.d,4);</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// SWAPSB(a.a,7);</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// SWAPSB(a.b,6);</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// SWAPSB(a.c,5);</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// SWAPSB(a.d,4);</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// SWAPSA(b.a,3);</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// SWAPSA(b.b,2);</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// SWAPSA(b.c,1);</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// SWAPSA(b.d,0);</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// //</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// SWAPSB(b.a,3);</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// SWAPSB(b.b,2);</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// SWAPSB(b.c,1);</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">// SWAPSB(b.d,0);</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 8; i++) {</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="unionjust8bits.html">just8bits</a> work;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; work.a3 = in.word[0] &gt;&gt; 31;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; work.a2 = in.word[0] &gt;&gt; 23;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; work.a1 = in.word[0] &gt;&gt; 15;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; work.a0 = in.word[0] &gt;&gt; 7;</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; in.word[0] &lt;&lt;= 1;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; work.a7 = in.word[1] &gt;&gt; 31;</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; work.a6 = in.word[1] &gt;&gt; 23;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; work.a5 = in.word[1] &gt;&gt; 15;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; work.a4 = in.word[1] &gt;&gt; 7;</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; in.word[1] &lt;&lt;= 1;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; out.bytes[i] = work.raw;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> slowswap(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *A, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *B) {</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> row = 0; row &lt; 7; row++) {</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; uint8_t x = A[row];</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; uint8_t bit = (1&lt;&lt;row);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *p = B;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">for</span>(uint32_t mask = 1&lt;&lt;7 ; mask ; mask &gt;&gt;= 1) {</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(x &amp; mask) {</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; *p++ |= bit;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; *p++ &amp;= ~bit;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">// B[7] |= (x &amp; 0x01) &lt;&lt; row; x &gt;&gt;= 1;</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// B[6] |= (x &amp; 0x01) &lt;&lt; row; x &gt;&gt;= 1;</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="comment">// B[5] |= (x &amp; 0x01) &lt;&lt; row; x &gt;&gt;= 1;</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="comment">// B[4] |= (x &amp; 0x01) &lt;&lt; row; x &gt;&gt;= 1;</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">// B[3] |= (x &amp; 0x01) &lt;&lt; row; x &gt;&gt;= 1;</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="comment">// B[2] |= (x &amp; 0x01) &lt;&lt; row; x &gt;&gt;= 1;</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// B[1] |= (x &amp; 0x01) &lt;&lt; row; x &gt;&gt;= 1;</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">// B[0] |= (x &amp; 0x01) &lt;&lt; row; x &gt;&gt;= 1;</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;}</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> transpose8x1(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *A, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *B) {</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; uint32_t x, y, t;</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="comment">// Load the array and pack it into x and y.</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; y = *(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*)(A);</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; x = *(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*)(A+4);</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="comment">// pre-transform x</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; t = (x ^ (x &gt;&gt; 7)) &amp; 0x00AA00AA; x = x ^ t ^ (t &lt;&lt; 7);</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; t = (x ^ (x &gt;&gt;14)) &amp; 0x0000CCCC; x = x ^ t ^ (t &lt;&lt;14);</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="comment">// pre-transform y</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; t = (y ^ (y &gt;&gt; 7)) &amp; 0x00AA00AA; y = y ^ t ^ (t &lt;&lt; 7);</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; t = (y ^ (y &gt;&gt;14)) &amp; 0x0000CCCC; y = y ^ t ^ (t &lt;&lt;14);</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">// final transform</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; t = (x &amp; 0xF0F0F0F0) | ((y &gt;&gt; 4) &amp; 0x0F0F0F0F);</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; y = ((x &lt;&lt; 4) &amp; 0xF0F0F0F0) | (y &amp; 0x0F0F0F0F);</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; x = t;</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; *((uint32_t*)B) = y;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; *((uint32_t*)(B+4)) = x;</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;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> transpose8x1_MSB(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *A, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *B) {</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; uint32_t x, y, t;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="comment">// Load the array and pack it into x and y.</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; y = *(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*)(A);</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; x = *(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*)(A+4);</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; <span class="comment">// pre-transform x</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; t = (x ^ (x &gt;&gt; 7)) &amp; 0x00AA00AA; x = x ^ t ^ (t &lt;&lt; 7);</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; t = (x ^ (x &gt;&gt;14)) &amp; 0x0000CCCC; x = x ^ t ^ (t &lt;&lt;14);</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="comment">// pre-transform y</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; t = (y ^ (y &gt;&gt; 7)) &amp; 0x00AA00AA; y = y ^ t ^ (t &lt;&lt; 7);</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; t = (y ^ (y &gt;&gt;14)) &amp; 0x0000CCCC; y = y ^ t ^ (t &lt;&lt;14);</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">// final transform</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; t = (x &amp; 0xF0F0F0F0) | ((y &gt;&gt; 4) &amp; 0x0F0F0F0F);</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; y = ((x &lt;&lt; 4) &amp; 0xF0F0F0F0) | (y &amp; 0x0F0F0F0F);</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; x = t;</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; B[7] = y; y &gt;&gt;= 8;</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; B[6] = y; y &gt;&gt;= 8;</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; B[5] = y; y &gt;&gt;= 8;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; B[4] = y;</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; B[3] = x; x &gt;&gt;= 8;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; B[2] = x; x &gt;&gt;= 8;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; B[1] = x; x &gt;&gt;= 8;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; B[0] = x; <span class="comment">/* */</span></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="l00230"></a><span class="lineno"> 230</span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> m, <span class="keywordtype">int</span> n&gt;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> transpose8(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *A, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *B) {</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; uint32_t x, y, t;</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// Load the array and pack it into x and y.</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">if</span>(m == 1) {</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; y = *(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*)(A);</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; x = *(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>*)(A+4);</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; x = (A[0]&lt;&lt;24) | (A[m]&lt;&lt;16) | (A[2*m]&lt;&lt;8) | A[3*m];</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; y = (A[4*m]&lt;&lt;24) | (A[5*m]&lt;&lt;16) | (A[6*m]&lt;&lt;8) | A[7*m];</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="comment">// pre-transform x</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; t = (x ^ (x &gt;&gt; 7)) &amp; 0x00AA00AA; x = x ^ t ^ (t &lt;&lt; 7);</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; t = (x ^ (x &gt;&gt;14)) &amp; 0x0000CCCC; x = x ^ t ^ (t &lt;&lt;14);</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">// pre-transform y</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; t = (y ^ (y &gt;&gt; 7)) &amp; 0x00AA00AA; y = y ^ t ^ (t &lt;&lt; 7);</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; t = (y ^ (y &gt;&gt;14)) &amp; 0x0000CCCC; y = y ^ t ^ (t &lt;&lt;14);</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="comment">// final transform</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; t = (x &amp; 0xF0F0F0F0) | ((y &gt;&gt; 4) &amp; 0x0F0F0F0F);</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; y = ((x &lt;&lt; 4) &amp; 0xF0F0F0F0) | (y &amp; 0x0F0F0F0F);</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; x = t;</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; B[7*n] = y; y &gt;&gt;= 8;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; B[6*n] = y; y &gt;&gt;= 8;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; B[5*n] = y; y &gt;&gt;= 8;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; B[4*n] = y;</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; B[3*n] = x; x &gt;&gt;= 8;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; B[2*n] = x; x &gt;&gt;= 8;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; B[n] = x; x &gt;&gt;= 8;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; B[0] = x;</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="comment">// B[0]=x&gt;&gt;24; B[n]=x&gt;&gt;16; B[2*n]=x&gt;&gt;8; B[3*n]=x&gt;&gt;0;</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="comment">// B[4*n]=y&gt;&gt;24; B[5*n]=y&gt;&gt;16; B[6*n]=y&gt;&gt;8; B[7*n]=y&gt;&gt;0;</span></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;FASTLED_NAMESPACE_END</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="l00270"></a><span class="lineno"> 270</span>&#160;</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="unionjust8bits_html"><div class="ttname"><a href="unionjust8bits.html">just8bits</a></div><div class="ttdoc">structure representing 8 bits of access </div><div class="ttdef"><b>Definition:</b> <a href="bitswap_8h_source.html#l00014">bitswap.h:14</a></div></div>
-<div class="ttc" id="structsub4_html"><div class="ttname"><a href="structsub4.html">sub4</a></div><div class="ttdoc">structure representing 32 bits of access </div><div class="ttdef"><b>Definition:</b> <a href="bitswap_8h_source.html#l00029">bitswap.h:29</a></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> <a href="fastled__delay_8h_source.html#l00085">fastled_delay.h:85</a></div></div>
-<div class="ttc" id="unionbitswap__type_html"><div class="ttname"><a href="unionbitswap__type.html">bitswap_type</a></div><div class="ttdoc">union containing a full 8 bytes to swap the bit orientation on </div><div class="ttdef"><b>Definition:</b> <a href="bitswap_8h_source.html#l00065">bitswap.h:65</a></div></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;FASTLED_NAMESPACE_END</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;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="unionjust8bits_html"><div class="ttname"><a href="unionjust8bits.html">just8bits</a></div><div class="ttdoc">structure representing 8 bits of access </div><div class="ttdef"><b>Definition:</b> <a href="bitswap_8h_source.html#l00016">bitswap.h:16</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
+<div class="ttc" id="structsub4_html"><div class="ttname"><a href="structsub4.html">sub4</a></div><div class="ttdoc">structure representing 32 bits of access </div><div class="ttdef"><b>Definition:</b> <a href="bitswap_8h_source.html#l00031">bitswap.h:31</a></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> <a href="fastled__delay_8h_source.html#l00092">fastled_delay.h:92</a></div></div>
+<div class="ttc" id="unionbitswap__type_html"><div class="ttname"><a href="unionbitswap__type.html">bitswap_type</a></div><div class="ttdoc">union containing a full 8 bytes to swap the bit orientation on </div><div class="ttdef"><b>Definition:</b> <a href="bitswap_8h_source.html#l00067">bitswap.h:67</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="bitswap_8h.html">bitswap.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:35 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/chipsets_8h.html b/docs/3.1/chipsets_8h.html
index a60a0514..b329185b 100644
--- a/docs/3.1/chipsets_8h.html
+++ b/docs/3.1/chipsets_8h.html
@@ -147,6 +147,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_k6822_controller.html">SK6822Controller&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>
@@ -197,6 +199,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_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_k6822_controller.html">SK6822Controller&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>
@@ -212,7 +216,7 @@ Classes</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="chipsets_8h.html">chipsets.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/chipsets_8h_source.html b/docs/3.1/chipsets_8h_source.html
index 89f7897b..23c5e8dc 100644
--- a/docs/3.1/chipsets_8h_source.html
+++ b/docs/3.1/chipsets_8h_source.html
@@ -112,631 +112,427 @@ $(document).ready(function(){initNavTree('chipsets_8h_source.html','');});
<a href="chipsets_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_CHIPSETS_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_CHIPSETS_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">#include &quot;pixeltypes.h&quot;</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
-<div class="line"><a name="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="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">#if defined(ARDUINO) //&amp;&amp; defined(SoftwareSerial_h)</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;pixeltypes.h&quot;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</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;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#if defined(ARDUINO) //&amp;&amp; defined(SoftwareSerial_h)</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#if defined(SoftwareSerial_h)</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;SoftwareSerial.h&quot;</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="preprocessor">#define HAS_PIXIE</span></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="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="l00027"></a><span class="lineno"><a class="line" href="class_pixie_controller.html"> 27</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_pixie_controller.html">PixieController</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="l00028"></a><span class="lineno"> 28</span>&#160; SoftwareSerial Serial;</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="class_c_min_wait.html">CMinWait&lt;2000&gt;</a> mWait;</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="class_pixie_controller.html">PixieController</a>() : Serial(-1, DATA_PIN) {}</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"><a class="line" href="class_pixie_controller.html#af56e4137870a8f2721f16afcc76db01c"> 33</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_pixie_controller.html#af56e4137870a8f2721f16afcc76db01c">clearLeds</a>(<span class="keywordtype">int</span> nLeds) { <a class="code" href="class_pixie_controller.html#a9da14e8683ef6588d795d33eaba6da3f">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="l00034"></a><span class="lineno"> 34</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="class_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118"> 36</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118">init</a>() {</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; Serial.begin(115200);</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; mWait.mark();</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="keywordtype">void</span> show(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> &amp; pixels) {</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; mWait.wait();</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">while</span>(pixels.has(1)) {</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; uint8_t r = pixels.loadAndScale0();</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; Serial.write(r);</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; uint8_t g = pixels.loadAndScale1();</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; Serial.write(g);</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; uint8_t b = pixels.loadAndScale2();</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; Serial.write(b);</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; pixels.advanceData();</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; pixels.stepDithering();</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; mWait.mark();</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"><a class="line" href="class_pixie_controller.html#a9da14e8683ef6588d795d33eaba6da3f"> 56</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_pixie_controller.html#a9da14e8683ef6588d795d33eaba6da3f">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="l00057"></a><span class="lineno"> 57</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="l00058"></a><span class="lineno"> 58</span>&#160; show(pixels);</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;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583"> 61</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583">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="l00062"></a><span class="lineno"> 62</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="l00063"></a><span class="lineno"> 63</span>&#160; show(pixels);</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583"> 67</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583">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="l00068"></a><span class="lineno"> 68</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="l00069"></a><span class="lineno"> 69</span>&#160; show(pixels);</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">#endif</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;};</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">// template&lt;SoftwareSerial &amp; STREAM, EOrder RGB_ORDER = RGB&gt;</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment">// class PixieController : public PixieBaseController&lt;STREAM, RGB_ORDER&gt; {</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">// public:</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment">// virtual void init() {</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">// STREAM.begin(115200);</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment">// }</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment">// };</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#if defined(SoftwareSerial_h)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;SoftwareSerial.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#define HAS_PIXIE</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</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, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="class_pixie_controller.html"> 28</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_pixie_controller.html">PixieController</a> : <span class="keyword">public</span> <a class="code" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController</a>&lt;RGB_ORDER&gt; {</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; SoftwareSerial Serial;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="class_c_min_wait.html">CMinWait&lt;2000&gt;</a> mWait;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="class_pixie_controller.html">PixieController</a>() : Serial(-1, DATA_PIN) {}</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="keyword">protected</span>:</div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118"> 35</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118">init</a>() {</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; Serial.begin(115200);</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; mWait.mark();</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> showPixels(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> &amp; pixels) {</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; mWait.wait();</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">while</span>(pixels.has(1)) {</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; uint8_t r = pixels.loadAndScale0();</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; Serial.write(r);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; uint8_t g = pixels.loadAndScale1();</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; Serial.write(g);</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; uint8_t b = pixels.loadAndScale2();</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; Serial.write(b);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; pixels.advanceData();</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; pixels.stepDithering();</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; mWait.mark();</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;};</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">// template&lt;SoftwareSerial &amp; STREAM, EOrder RGB_ORDER = RGB&gt;</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">// class PixieController : public PixieBaseController&lt;STREAM, RGB_ORDER&gt; {</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment">// public:</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment">// virtual void init() {</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment">// STREAM.begin(115200);</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">// }</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment">// };</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#endif</span></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="l00066"></a><span class="lineno"> 66</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">// LPD8806 controller class - takes data/clock/select pin values (N.B. should take an SPI definition?)</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(12) &gt;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html"> 81</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_l_p_d8806_controller.html">LPD8806Controller</a> : <span class="keyword">public</span> <a class="code" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController</a>&lt;RGB_ORDER&gt; {</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</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="l00083"></a><span class="lineno"> 83</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment">// LPD8806 controller class - takes data/clock/select pin values (N.B. should take an SPI definition?)</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(12) &gt;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html"> 98</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_l_p_d8806_controller.html">LPD8806Controller</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</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="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">class </span>LPD8806_ADJUST {</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// LPD8806 spec wants the high bit of every rgb data byte sent out to be set.</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t adjust(<span class="keyword">register</span> uint8_t data) { <span class="keywordflow">return</span> ((data&gt;&gt;1) | 0x80) + ((data &amp;&amp; (data&lt;254)) &amp; 0x01); }</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> postBlock(<span class="keywordtype">int</span> len) {</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; SPI::writeBytesValueRaw(0, ((len*3+63)&gt;&gt;6));</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">class </span>LPD8806_ADJUST {</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// LPD8806 spec wants the high bit of every rgb data byte sent out to be set.</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t adjust(<span class="keyword">register</span> uint8_t data) { <span class="keywordflow">return</span> ((data&gt;&gt;1) | 0x80) + ((data &amp;&amp; (data&lt;254)) &amp; 0x01); }</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> postBlock(<span class="keywordtype">int</span> len) {</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; SPI::writeBytesValueRaw(0, ((len*3+63)&gt;&gt;6));</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;</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;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; SPI mSPI;</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;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="class_l_p_d8806_controller.html">LPD8806Controller</a>() {}</div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608"> 98</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608">init</a>() {</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; mSPI.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;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> showPixels(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> &amp; pixels) {</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; mSPI.template writePixels&lt;0, LPD8806_ADJUST, RGB_ORDER&gt;(pixels);</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;</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;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; SPI mSPI;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">int</span> mClearedLeds;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">void</span> checkClear(<span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span>(nLeds &gt; mClearedLeds) {</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; clearLine(nLeds);</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; mClearedLeds = nLeds;</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;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">void</span> clearLine(<span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">int</span> n = ((nLeds*3 + 63) &gt;&gt; 6);</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; mSPI.writeBytesValue(0, n);</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="keyword">public</span>:</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="class_l_p_d8806_controller.html">LPD8806Controller</a>() {}</div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608"> 127</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608">init</a>() {</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; mSPI.init();</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; mClearedLeds = 0;</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
-<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e"> 132</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; mSPI.select();</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; mSPI.writeBytesValueRaw(0x80, nLeds * 3);</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; mSPI.writeBytesValueRaw(0, ((nLeds*3+63)&gt;&gt;6));</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; mSPI.release();</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259"> 142</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; mSPI.template writePixels&lt;0, LPD8806_ADJUST, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment">// WS2801 definition - takes data/clock/select pin values (N.B. should take an SPI definition?)</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(1)&gt;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html"> 122</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2801_controller.html">WS2801Controller</a> : <span class="keyword">public</span> <a class="code" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController</a>&lt;RGB_ORDER&gt; {</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</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="l00124"></a><span class="lineno"> 124</span>&#160; SPI mSPI;</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="class_c_min_wait.html">CMinWait&lt;1000&gt;</a> mWaitDelay;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="class_w_s2801_controller.html">WS2801Controller</a>() {}</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4"> 129</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4">init</a>() {</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; mSPI.init();</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; mWaitDelay.mark();</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="keyword">protected</span>:</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">virtual</span> <span class="keywordtype">void</span> showPixels(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> &amp; pixels) {</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; mWaitDelay.wait();</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; mSPI.template writePixels&lt;0, DATA_NOP, RGB_ORDER&gt;(pixels);</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; mWaitDelay.mark();</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;};</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(25)&gt;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="class_w_s2803_controller.html"> 144</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2803_controller.html">WS2803Controller</a> : <span class="keyword">public</span> <a class="code" href="class_w_s2801_controller.html">WS2801Controller</a>&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED&gt; {};</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5"> 146</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">// TODO rgb-ize scale</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; mSPI.template writePixels&lt;0, LPD8806_ADJUST, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> CARGB *data, <span class="keywordtype">int</span> nLeds, uint8_t scale) {</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; checkClear(nLeds);</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; mSPI.template writePixels&lt;0, LPD8806_ADJUST, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="preprocessor">#endif</span></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;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment">// WS2801 definition - takes data/clock/select pin values (N.B. should take an SPI definition?)</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(1)&gt;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html"> 172</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2801_controller.html">WS2801Controller</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</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="l00174"></a><span class="lineno"> 174</span>&#160; SPI mSPI;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="class_c_min_wait.html">CMinWait&lt;1000&gt;</a> mWaitDelay;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="class_w_s2801_controller.html">WS2801Controller</a>() {}</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"><a class="line" href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4"> 179</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4">init</a>() {</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; mSPI.init();</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; mWaitDelay.mark();</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"><a class="line" href="class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c"> 184</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; mWaitDelay.wait();</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; mSPI.writeBytesValue(0, nLeds*3);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; mWaitDelay.mark();</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;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="keyword">protected</span>:</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"><a class="line" href="class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501"> 192</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; mWaitDelay.wait();</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; mSPI.template writePixels&lt;0, DATA_NOP, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; mWaitDelay.mark();</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
-<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0"> 198</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; mWaitDelay.wait();</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; mSPI.template writePixels&lt;0, DATA_NOP, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; mWaitDelay.mark();</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0"> 205</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; mWaitDelay.wait();</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; mSPI.template writePixels&lt;0, DATA_NOP, RGB_ORDER&gt;(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a>(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>()));</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; mWaitDelay.mark();</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;};</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(25)&gt;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="class_w_s2803_controller.html"> 214</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_w_s2803_controller.html">WS2803Controller</a> : <span class="keyword">public</span> <a class="code" href="class_w_s2801_controller.html">WS2801Controller</a>&lt;DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED&gt; {};</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment">// APA102 definition - takes data/clock/select pin values (N.B. should take an SPI definition?)</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = BGR, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(24)&gt;</div>
-<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html"> 228</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_p_a102_controller.html">APA102Controller</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</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="l00230"></a><span class="lineno"> 230</span>&#160; SPI mSPI;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment">// APA102 definition - takes data/clock/select pin values (N.B. should take an SPI definition?)</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, u<span class="keywordtype">int</span>8_t CLOCK_PIN, EOrder RGB_ORDER = BGR, u<span class="keywordtype">int</span>8_t SPI_SPEED = DATA_RATE_MHZ(24)&gt;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html"> 158</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_p_a102_controller.html">APA102Controller</a> : <span class="keyword">public</span> <a class="code" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController</a>&lt;RGB_ORDER&gt; {</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</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> SPI;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; SPI mSPI;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">void</span> startBoundary() { mSPI.writeWord(0); mSPI.writeWord(0); }</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordtype">void</span> endBoundary(<span class="keywordtype">int</span> nLeds) { <span class="keywordtype">int</span> nBytes = (nLeds/32); <span class="keywordflow">do</span> { mSPI.writeByte(0xFF); mSPI.writeByte(0x00); mSPI.writeByte(0x00); mSPI.writeByte(0x00); } <span class="keywordflow">while</span>(nBytes--); }</div>
+<div class="line"><a name="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">inline</span> <span class="keywordtype">void</span> writeLed(uint8_t b0, uint8_t b1, uint8_t b2) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) {</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; mSPI.writeByte(0xFF); mSPI.writeByte(b0); mSPI.writeByte(b1); mSPI.writeByte(b2);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="class_a_p_a102_controller.html">APA102Controller</a>() {}</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"><a class="line" href="class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0"> 172</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0">init</a>() {</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; mSPI.init();</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;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> showPixels(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> &amp; pixels) {</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; mSPI.select();</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; startBoundary();</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">while</span>(pixels.has(1)) {</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#ifdef FASTLED_SPI_BYTE_ONLY</span></div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; mSPI.writeByte(0xFF);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; mSPI.writeByte(pixels.loadAndScale0());</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; mSPI.writeByte(pixels.loadAndScale1());</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; mSPI.writeByte(pixels.loadAndScale2());</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; uint16_t b = 0xFF00 | (uint16_t)pixels.loadAndScale0();</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; mSPI.writeWord(b);</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; uint16_t w = pixels.loadAndScale1() &lt;&lt; 8;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; w |= pixels.loadAndScale2();</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; mSPI.writeWord(w);</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor">#endif</span></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; pixels.advanceData();</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; endBoundary(pixels.size());</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"> 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="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</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="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</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="l00218"></a><span class="lineno"><a class="line" href="class_p9813_controller.html"> 218</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_pixel_l_e_d_controller.html">CPixelLEDController</a>&lt;RGB_ORDER&gt; {</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</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> SPI;</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; SPI mSPI;</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="keywordtype">void</span> writeBoundary() { mSPI.writeWord(0); mSPI.writeWord(0); }</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="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="l00225"></a><span class="lineno"> 225</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="l00226"></a><span class="lineno"> 226</span>&#160; mSPI.writeByte(top); mSPI.writeByte(b); mSPI.writeByte(g); mSPI.writeByte(r);</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;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="class_p9813_controller.html">P9813Controller</a>() {}</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; <span class="keywordtype">void</span> startBoundary() { mSPI.writeWord(0); mSPI.writeWord(0); }</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordtype">void</span> endBoundary(<span class="keywordtype">int</span> nLeds) { <span class="keywordtype">int</span> nBytes = (nLeds/32); <span class="keywordflow">do</span> { mSPI.writeByte(0xFF); mSPI.writeByte(0x00); mSPI.writeByte(0x00); mSPI.writeByte(0x00); } <span class="keywordflow">while</span>(nBytes--); }</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> writeLed(uint8_t b0, uint8_t b1, uint8_t b2) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) {</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; mSPI.writeByte(0xFF); mSPI.writeByte(b0); mSPI.writeByte(b1); mSPI.writeByte(b2);</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="class_a_p_a102_controller.html">APA102Controller</a>() {}</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"><a class="line" href="class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0"> 242</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0">init</a>() {</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; mSPI.init();</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="l00246"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb"> 246</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428">showColor</a>(<a class="code" href="struct_c_r_g_b.html">CRGB</a>(0,0,0), nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a>(0,0,0));</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div>
+<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a"> 232</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="l00233"></a><span class="lineno"> 233</span>&#160; mSPI.init();</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> showPixels(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> &amp; pixels) {</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; mSPI.select();</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; writeBoundary();</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">while</span>(pixels.has(1)) {</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; writeLed(pixels.loadAndScale0(), pixels.loadAndScale1(), pixels.loadAndScale2());</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; pixels.advanceData();</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; pixels.stepDithering();</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; writeBoundary();</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; mSPI.waitFully();</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="keyword">protected</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"><a class="line" href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428"> 252</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</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="l00250"></a><span class="lineno"> 250</span>&#160; mSPI.release();</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;</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; mSPI.select();</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; startBoundary();</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor">#ifdef FASTLED_SPI_BYTE_ONLY</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; mSPI.writeByte(0xFF);</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; mSPI.writeByte(pixels.loadAndScale0());</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; mSPI.writeByte(pixels.loadAndScale1());</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; mSPI.writeByte(pixels.loadAndScale2());</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; uint16_t b = 0xFF00 | (uint16_t)pixels.loadAndScale0();</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; mSPI.writeWord(b);</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; uint16_t w = pixels.loadAndScale1() &lt;&lt; 8;</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; w |= pixels.loadAndScale2();</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; mSPI.writeWord(w);</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; pixels.stepDithering();</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; endBoundary(nLeds);</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; mSPI.waitFully();</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; mSPI.release();</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"><a class="line" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332"> 279</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="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> pixels(data, nLeds, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>());</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</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="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</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="l00268"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html"> 268</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_pixel_l_e_d_controller.html">CPixelLEDController</a>&lt;RGB_ORDER&gt; {</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</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> SPI;</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; SPI mSPI;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordtype">void</span> writeHeader() {</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</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="l00274"></a><span class="lineno"> 274</span>&#160; mSPI.select();</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; mSPI.writeBytesValueRaw(0, 6);</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; mSPI.waitFully();</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; mSPI.release();</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; mSPI.select();</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; startBoundary();</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor">#ifdef FASTLED_SPI_BYTE_ONLY</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; mSPI.writeByte(0xFF);</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; mSPI.writeByte(pixels.loadAndScale0());</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; mSPI.writeByte(pixels.loadAndScale1());</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; mSPI.writeByte(pixels.loadAndScale2());</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; uint16_t b = 0xFF00 | (uint16_t)pixels.loadAndScale0();</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; mSPI.writeWord(b);</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; uint16_t w = pixels.loadAndScale1() &lt;&lt; 8;</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; w |= pixels.loadAndScale2();</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; mSPI.writeWord(w);</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; pixels.stepDithering();</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; pixels.advanceData();</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; endBoundary(nLeds);</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; mSPI.release();</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332"> 307</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="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> pixels(data, nLeds,, scale, <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>());</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; mSPI.select();</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; startBoundary();</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; mSPI.writeByte(0xFF);</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; uint8_t b = pixels.loadAndScale0(); mSPI.writeByte(b);</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; b = pixels.loadAndScale1(); mSPI.writeByte(b);</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; b = pixels.loadAndScale2(); mSPI.writeByte(b);</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; pixels.advanceData();</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; pixels.stepDithering();</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; endBoundary(nLeds);</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; mSPI.release();</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="l00328"></a><span class="lineno"> 328</span>&#160;</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</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="l00332"></a><span class="lineno"> 332</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</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="l00341"></a><span class="lineno"><a class="line" href="class_p9813_controller.html"> 341</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="l00342"></a><span class="lineno"> 342</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="l00343"></a><span class="lineno"> 343</span>&#160; SPI mSPI;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="class_s_m16716_controller.html">SM16716Controller</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"><a class="line" href="class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591"> 285</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="l00286"></a><span class="lineno"> 286</span>&#160; mSPI.init();</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; }</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="keyword">protected</span>:</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="keyword">virtual</span> <span class="keywordtype">void</span> showPixels(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> &amp; pixels) {</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</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="l00293"></a><span class="lineno"> 293</span>&#160; <span class="comment">// of each triplet of bytes for rgb data</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="comment">// writeHeader();</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; mSPI.template writePixels&lt;FLAG_START_BIT, DATA_NOP, RGB_ORDER&gt;( pixels );</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; writeHeader();</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;};</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</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="l00304"></a><span class="lineno"> 304</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor">#ifdef FASTLED_HAS_CLOCKLESS</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</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="l00313"></a><span class="lineno"> 313</span>&#160;<span class="comment">// need the more tightly defined timeframes.</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</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="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor">#define FMUL (F_CPU/8000000)</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="comment">// LPD1886</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</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="l00318"></a><span class="lineno"><a class="line" href="class_l_p_d1886_controller1250_khz.html"> 318</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="l00319"></a><span class="lineno"> 319</span>&#160;</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="comment">// WS2811@800khz 2 clocks, 5 clocks, 3 clocks</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</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="l00322"></a><span class="lineno"><a class="line" href="class_w_s2812_controller800_khz.html"> 322</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="l00323"></a><span class="lineno"> 323</span>&#160;</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</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="l00325"></a><span class="lineno"><a class="line" href="class_w_s2811_controller800_khz.html"> 325</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="l00326"></a><span class="lineno"> 326</span>&#160;</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</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="l00328"></a><span class="lineno"><a class="line" href="class_w_s2811_controller400_khz.html"> 328</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="l00329"></a><span class="lineno"> 329</span>&#160;</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</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="l00331"></a><span class="lineno"><a class="line" href="class_s_k6822_controller.html"> 331</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_s_k6822_controller.html">SK6822Controller</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="l00332"></a><span class="lineno"> 332</span>&#160;</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</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="l00334"></a><span class="lineno"><a class="line" href="class_s_k6812_controller.html"> 334</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="l00335"></a><span class="lineno"> 335</span>&#160;</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</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="l00337"></a><span class="lineno"><a class="line" href="class_u_c_s1903_controller400_khz.html"> 337</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="l00338"></a><span class="lineno"> 338</span>&#160;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</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="l00340"></a><span class="lineno"><a class="line" href="class_u_c_s1903_b_controller800_khz.html"> 340</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="l00341"></a><span class="lineno"> 341</span>&#160;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</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="l00343"></a><span class="lineno"><a class="line" href="class_u_c_s1904_controller800_khz.html"> 343</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="l00344"></a><span class="lineno"> 344</span>&#160;</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordtype">void</span> writeBoundary() { mSPI.writeWord(0); mSPI.writeWord(0); }</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">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="l00348"></a><span class="lineno"> 348</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="l00349"></a><span class="lineno"> 349</span>&#160; mSPI.writeByte(top); mSPI.writeByte(b); mSPI.writeByte(g); mSPI.writeByte(r);</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; }</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <a class="code" href="class_p9813_controller.html">P9813Controller</a>() {}</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"><a class="line" href="class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a"> 355</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="l00356"></a><span class="lineno"> 356</span>&#160; mSPI.init();</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div>
-<div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c"> 359</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="l00360"></a><span class="lineno"> 360</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="l00361"></a><span class="lineno"> 361</span>&#160; }</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</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="l00346"></a><span class="lineno"><a class="line" href="class_u_c_s2903_controller.html"> 346</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_c_s2903_controller.html">UCS2903Controller</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 2 * FMUL, 6 * FMUL, 2 * FMUL, RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; </div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="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="l00349"></a><span class="lineno"><a class="line" href="class_t_m1809_controller800_khz.html"> 349</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="l00350"></a><span class="lineno"> 350</span>&#160;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</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="l00352"></a><span class="lineno"><a class="line" href="class_t_m1803_controller400_khz.html"> 352</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="l00353"></a><span class="lineno"> 353</span>&#160;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</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="l00355"></a><span class="lineno"><a class="line" href="class_t_m1829_controller800_khz.html"> 355</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="l00356"></a><span class="lineno"> 356</span>&#160;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</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="l00358"></a><span class="lineno"><a class="line" href="class_g_w6205_controller400_khz.html"> 358</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="l00359"></a><span class="lineno"> 359</span>&#160;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</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="l00361"></a><span class="lineno"><a class="line" href="class_g_w6205_controller800_khz.html"> 361</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="l00362"></a><span class="lineno"> 362</span>&#160;</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="keyword">protected</span>:</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_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a"> 365</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="l00366"></a><span class="lineno"> 366</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="l00367"></a><span class="lineno"> 367</span>&#160;</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;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; writeBoundary();</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; writeLed(pixels.loadAndScale0(), pixels.loadAndScale1(), pixels.loadAndScale2());</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; pixels.stepDithering();</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; writeBoundary();</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; }</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81"> 381</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="l00382"></a><span class="lineno"> 382</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="l00383"></a><span class="lineno"> 383</span>&#160;</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;</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; writeBoundary();</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; writeLed(pixels.loadAndScale0(), pixels.loadAndScale1(), pixels.loadAndScale2());</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; pixels.advanceData();</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; pixels.stepDithering();</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; writeBoundary();</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; mSPI.waitFully();</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</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="l00364"></a><span class="lineno"><a class="line" href="class_p_l9823_controller.html"> 364</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="l00365"></a><span class="lineno"> 365</span>&#160;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="comment">// GW6205@400khz - 800ns, 800ns, 800ns</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</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="l00369"></a><span class="lineno"> 369</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="l00370"></a><span class="lineno"> 370</span>&#160;</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="comment">// GW6205@400khz - 400ns, 400ns, 400ns</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</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="l00373"></a><span class="lineno"> 373</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="l00374"></a><span class="lineno"> 374</span>&#160;</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="comment">// UCS1903 - 500ns, 1500ns, 500ns</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</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="l00377"></a><span class="lineno"> 377</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="l00378"></a><span class="lineno"> 378</span>&#160;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="comment">// UCS1903B - 400ns, 450ns, 450ns</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</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="l00381"></a><span class="lineno"> 381</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="l00382"></a><span class="lineno"> 382</span>&#160;</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="comment">// UCS1904 - 400ns, 400ns, 450ns</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</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="l00385"></a><span class="lineno"> 385</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="l00386"></a><span class="lineno"> 386</span>&#160;</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="comment">// UCS2903 - 250ns, 750ns, 250ns</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</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="l00389"></a><span class="lineno"> 389</span>&#160;<span class="keyword">class </span><a class="code" href="class_u_c_s2903_controller.html">UCS2903Controller</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(250), NS(750), NS(250), RGB_ORDER&gt; {};</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="comment">// TM1809 - 350ns, 350ns, 550ns</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</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="l00393"></a><span class="lineno"> 393</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="l00394"></a><span class="lineno"> 394</span>&#160;</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; mSPI.release();</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="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81"> 399</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="l00400"></a><span class="lineno"> 400</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="l00401"></a><span class="lineno"> 401</span>&#160;</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; mSPI.select();</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; writeBoundary();</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; nLeds; i++) {</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; writeLed(pixels.loadAndScale0(), pixels.loadAndScale1(), pixels.loadAndScale2());</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; pixels.advanceData();</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; pixels.stepDithering();</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; writeBoundary();</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; mSPI.waitFully();</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; mSPI.release();</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="preprocessor">#endif</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;};</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</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="l00422"></a><span class="lineno"> 422</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="comment"></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, 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="l00431"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html"> 431</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="l00432"></a><span class="lineno"> 432</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="l00433"></a><span class="lineno"> 433</span>&#160; SPI mSPI;</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="comment">// WS2811 - 320ns, 320ns, 640ns</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</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="l00397"></a><span class="lineno"> 397</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="l00398"></a><span class="lineno"> 398</span>&#160;</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="comment">// WS2812 - 250ns, 625ns, 375ns</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</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="l00401"></a><span class="lineno"> 401</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="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">// WS2811@400khz - 800ns, 800ns, 900ns</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</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="l00405"></a><span class="lineno"> 405</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="l00406"></a><span class="lineno"> 406</span>&#160;</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;<span class="comment">// 750NS, 750NS, 750NS</span></div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</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="l00409"></a><span class="lineno"> 409</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="l00410"></a><span class="lineno"> 410</span>&#160;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</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="l00413"></a><span class="lineno"> 413</span>&#160;</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</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="l00415"></a><span class="lineno"><a class="line" href="class_t_m1829_controller1600_khz.html"> 415</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="l00416"></a><span class="lineno"> 416</span>&#160;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</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="l00419"></a><span class="lineno"> 419</span>&#160;</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</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="l00421"></a><span class="lineno"> 421</span>&#160;<span class="keyword">class </span><a class="code" href="class_s_k6822_controller.html">SK6822Controller</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(375), NS(1000), NS(375), RGB_ORDER&gt; {};</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;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</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="l00425"></a><span class="lineno"> 425</span>&#160;</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"> 427</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="l00428"></a><span class="lineno"> 428</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;FASTLED_NAMESPACE_END</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordtype">void</span> writeHeader() {</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</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="l00437"></a><span class="lineno"> 437</span>&#160; mSPI.select();</div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; mSPI.writeBytesValueRaw(0, 6);</div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; mSPI.waitFully();</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; mSPI.release();</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;</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="class_s_m16716_controller.html">SM16716Controller</a>() {}</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"><a class="line" href="class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591"> 448</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="l00449"></a><span class="lineno"> 449</span>&#160; mSPI.init();</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;</div>
-<div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8"> 452</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="l00453"></a><span class="lineno"> 453</span>&#160; mSPI.select();</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">while</span>(nLeds--) {</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; mSPI.template writeBit&lt;0&gt;(1);</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; mSPI.writeByte(0);</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; mSPI.writeByte(0);</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; mSPI.writeByte(0);</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; mSPI.waitFully();</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; mSPI.release();</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; writeHeader();</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;</div>
-<div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677"> 467</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="l00468"></a><span class="lineno"> 468</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="l00469"></a><span class="lineno"> 469</span>&#160; writeHeader();</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;</div>
-<div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d"> 472</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="l00473"></a><span class="lineno"> 473</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="l00474"></a><span class="lineno"> 474</span>&#160; <span class="comment">// of each triplet of bytes for rgb data</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="comment">// writeHeader();</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</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="l00477"></a><span class="lineno"> 477</span>&#160; writeHeader();</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;</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</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="l00482"></a><span class="lineno"> 482</span>&#160; mSPI.writeBytesValue(0, 6);</div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; mSPI.template writeBit&lt;0&gt;(0);</div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="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="l00487"></a><span class="lineno"> 487</span>&#160; <span class="comment">// of each triplet of bytes for rgb data</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</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="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="l00491"></a><span class="lineno"> 491</span>&#160;};</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">// Clockless template instantiations - see clockless.h for how the timing values are used</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="preprocessor">#ifdef FASTLED_HAS_CLOCKLESS</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</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="l00505"></a><span class="lineno"> 505</span>&#160;<span class="comment">// need the more tightly defined timeframes.</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</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="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor">#define FMUL (F_CPU/8000000)</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="comment">// LPD1886</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"><a class="line" href="class_l_p_d1886_controller1250_khz.html"> 510</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="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">// WS2811@800khz 2 clocks, 5 clocks, 3 clocks</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"><a class="line" href="class_w_s2812_controller800_khz.html"> 514</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="l00515"></a><span class="lineno"> 515</span>&#160;</div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</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="l00517"></a><span class="lineno"><a class="line" href="class_w_s2811_controller800_khz.html"> 517</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="l00518"></a><span class="lineno"> 518</span>&#160;</div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00520"></a><span class="lineno"><a class="line" href="class_w_s2811_controller400_khz.html"> 520</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="l00521"></a><span class="lineno"> 521</span>&#160;</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</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="l00523"></a><span class="lineno"><a class="line" href="class_s_k6812_controller.html"> 523</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="l00524"></a><span class="lineno"> 524</span>&#160;</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00526"></a><span class="lineno"><a class="line" href="class_u_c_s1903_controller400_khz.html"> 526</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="l00527"></a><span class="lineno"> 527</span>&#160;</div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="class_u_c_s1903_b_controller800_khz.html"> 529</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="l00530"></a><span class="lineno"> 530</span>&#160;</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="class_u_c_s1904_controller800_khz.html"> 532</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="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"><a class="line" href="class_u_c_s2903_controller.html"> 535</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_u_c_s2903_controller.html">UCS2903Controller</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, 2 * FMUL, 6 * FMUL, 2 * FMUL, RGB_ORDER&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_m1809_controller800_khz.html"> 538</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="l00539"></a><span class="lineno"> 539</span>&#160;</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;</div>
-<div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="class_t_m1803_controller400_khz.html"> 541</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="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"><a class="line" href="class_t_m1829_controller800_khz.html"> 544</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="l00545"></a><span class="lineno"> 545</span>&#160;</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</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="l00547"></a><span class="lineno"><a class="line" href="class_g_w6205_controller400_khz.html"> 547</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="l00548"></a><span class="lineno"> 548</span>&#160;</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</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="l00550"></a><span class="lineno"><a class="line" href="class_g_w6205_controller800_khz.html"> 550</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="l00551"></a><span class="lineno"> 551</span>&#160;</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</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="l00553"></a><span class="lineno"><a class="line" href="class_p_l9823_controller.html"> 553</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="l00554"></a><span class="lineno"> 554</span>&#160;</div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="comment">// GW6205@400khz - 800ns, 800ns, 800ns</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</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="l00558"></a><span class="lineno"> 558</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="l00559"></a><span class="lineno"> 559</span>&#160;</div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;<span class="comment">// GW6205@400khz - 400ns, 400ns, 400ns</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</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="l00562"></a><span class="lineno"> 562</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="l00563"></a><span class="lineno"> 563</span>&#160;</div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="comment">// UCS1903 - 500ns, 1500ns, 500ns</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</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="l00566"></a><span class="lineno"> 566</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="l00567"></a><span class="lineno"> 567</span>&#160;</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="comment">// UCS1903B - 400ns, 450ns, 450ns</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</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="l00570"></a><span class="lineno"> 570</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="l00571"></a><span class="lineno"> 571</span>&#160;</div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="comment">// UCS1904 - 400ns, 400ns, 450ns</span></div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</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="l00574"></a><span class="lineno"> 574</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="l00575"></a><span class="lineno"> 575</span>&#160;</div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;<span class="comment">// UCS2903 - 250ns, 750ns, 250ns</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</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="l00578"></a><span class="lineno"> 578</span>&#160;<span class="keyword">class </span><a class="code" href="class_u_c_s2903_controller.html">UCS2903Controller</a> : <span class="keyword">public</span> ClocklessController&lt;DATA_PIN, NS(250), NS(750), NS(250), RGB_ORDER&gt; {};</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="comment">// TM1809 - 350ns, 350ns, 550ns</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</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="l00582"></a><span class="lineno"> 582</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="l00583"></a><span class="lineno"> 583</span>&#160;</div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;<span class="comment">// WS2811 - 320ns, 320ns, 640ns</span></div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</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="l00586"></a><span class="lineno"> 586</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="l00587"></a><span class="lineno"> 587</span>&#160;</div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="comment">// WS2812 - 250ns, 625ns, 375ns</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</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="l00590"></a><span class="lineno"> 590</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="l00591"></a><span class="lineno"> 591</span>&#160;</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;<span class="comment">// WS2811@400khz - 800ns, 800ns, 900ns</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</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="l00594"></a><span class="lineno"> 594</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="l00595"></a><span class="lineno"> 595</span>&#160;</div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="comment">// 750NS, 750NS, 750NS</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</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="l00598"></a><span class="lineno"> 598</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="l00599"></a><span class="lineno"> 599</span>&#160;</div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</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="l00601"></a><span class="lineno"> 601</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="l00602"></a><span class="lineno"> 602</span>&#160;</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</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="l00604"></a><span class="lineno"><a class="line" href="class_t_m1829_controller1600_khz.html"> 604</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="l00605"></a><span class="lineno"> 605</span>&#160;</div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</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="l00607"></a><span class="lineno"> 607</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="l00608"></a><span class="lineno"> 608</span>&#160;</div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</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="l00610"></a><span class="lineno"> 610</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="l00611"></a><span class="lineno"> 611</span>&#160;</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</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="l00613"></a><span class="lineno"> 613</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="l00614"></a><span class="lineno"> 614</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;</div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;FASTLED_NAMESPACE_END</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;</div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</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> <a href="chipsets_8h_source.html#l00526">chipsets.h:526</a></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> <a href="pixeltypes_8h_source.html#l00088">pixeltypes.h:88</a></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> <a href="chipsets_8h_source.html#l00532">chipsets.h:532</a></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> <a href="controller_8h_source.html#l00037">controller.h:37</a></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> <a href="chipsets_8h_source.html#l00179">chipsets.h:179</a></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> <a href="chipsets_8h_source.html#l00142">chipsets.h:142</a></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> <a href="chipsets_8h_source.html#l00517">chipsets.h:517</a></div></div>
-<div class="ttc" id="class_pixie_controller_html_a1ce5b1a38b79d2659d2610ec65f3d583"><div class="ttname"><a href="class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583">PixieController::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> <a href="chipsets_8h_source.html#l00061">chipsets.h:61</a></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> <a href="chipsets_8h_source.html#l00604">chipsets.h:604</a></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> <a href="chipsets_8h_source.html#l00132">chipsets.h:132</a></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> <a href="chipsets_8h_source.html#l00098">chipsets.h:98</a></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> <a href="chipsets_8h_source.html#l00279">chipsets.h:279</a></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> <a href="chipsets_8h_source.html#l00529">chipsets.h:529</a></div></div>
-<div class="ttc" id="class_pixie_controller_html"><div class="ttname"><a href="class_pixie_controller.html">PixieController</a></div><div class="ttdoc">Adafruit Pixie controller class. </div><div class="ttdef"><b>Definition:</b> <a href="chipsets_8h_source.html#l00027">chipsets.h:27</a></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> <a href="chipsets_8h_source.html#l00355">chipsets.h:355</a></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> <a href="chipsets_8h_source.html#l00448">chipsets.h:448</a></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> <a href="chipsets_8h_source.html#l00550">chipsets.h:550</a></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> <a href="chipsets_8h_source.html#l00242">chipsets.h:242</a></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> <a href="chipsets_8h_source.html#l00127">chipsets.h:127</a></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> <a href="chipsets_8h_source.html#l00365">chipsets.h:365</a></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> <a href="chipsets_8h_source.html#l00452">chipsets.h:452</a></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> <a href="controller_8h_source.html#l00187">controller.h:187</a></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> <a href="chipsets_8h_source.html#l00514">chipsets.h:514</a></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> <a href="chipsets_8h_source.html#l00541">chipsets.h:541</a></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> <a href="chipsets_8h_source.html#l00381">chipsets.h:381</a></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> <a href="chipsets_8h_source.html#l00538">chipsets.h:538</a></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> <a href="chipsets_8h_source.html#l00246">chipsets.h:246</a></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> <a href="chipsets_8h_source.html#l00172">chipsets.h:172</a></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> <a href="chipsets_8h_source.html#l00510">chipsets.h:510</a></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> <a href="chipsets_8h_source.html#l00184">chipsets.h:184</a></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> <a href="chipsets_8h_source.html#l00544">chipsets.h:544</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> <a href="chipsets_8h_source.html#l00337">chipsets.h:337</a></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> <a href="chipsets_8h_source.html#l00343">chipsets.h:343</a></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> <a href="chipsets_8h_source.html#l00129">chipsets.h:129</a></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> <a href="chipsets_8h_source.html#l00325">chipsets.h:325</a></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> <a href="chipsets_8h_source.html#l00415">chipsets.h:415</a></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> <a href="chipsets_8h_source.html#l00081">chipsets.h:81</a></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> <a href="chipsets_8h_source.html#l00340">chipsets.h:340</a></div></div>
+<div class="ttc" id="class_pixie_controller_html"><div class="ttname"><a href="class_pixie_controller.html">PixieController</a></div><div class="ttdoc">Adafruit Pixie controller class. </div><div class="ttdef"><b>Definition:</b> <a href="chipsets_8h_source.html#l00028">chipsets.h:28</a></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> <a href="chipsets_8h_source.html#l00232">chipsets.h:232</a></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> <a href="chipsets_8h_source.html#l00285">chipsets.h:285</a></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> <a href="chipsets_8h_source.html#l00361">chipsets.h:361</a></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> <a href="chipsets_8h_source.html#l00172">chipsets.h:172</a></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> <a href="chipsets_8h_source.html#l00098">chipsets.h:98</a></div></div>
+<div class="ttc" id="struct_pixel_controller_html"><div class="ttname"><a href="struct_pixel_controller.html">PixelController</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_8h_source.html#l00177">controller.h:177</a></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> <a href="chipsets_8h_source.html#l00322">chipsets.h:322</a></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> <a href="chipsets_8h_source.html#l00352">chipsets.h:352</a></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> <a href="chipsets_8h_source.html#l00349">chipsets.h:349</a></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> <a href="chipsets_8h_source.html#l00122">chipsets.h:122</a></div></div>
+<div class="ttc" id="class_c_pixel_l_e_d_controller_html"><div class="ttname"><a href="class_c_pixel_l_e_d_controller.html">CPixelLEDController</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_8h_source.html#l00374">controller.h:374</a></div></div>
+<div class="ttc" id="class_s_k6822_controller_html"><div class="ttname"><a href="class_s_k6822_controller.html">SK6822Controller</a></div><div class="ttdef"><b>Definition:</b> <a href="chipsets_8h_source.html#l00331">chipsets.h:331</a></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> <a href="chipsets_8h_source.html#l00318">chipsets.h:318</a></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> <a href="chipsets_8h_source.html#l00355">chipsets.h:355</a></div></div>
<div class="ttc" id="class_c_min_wait_html"><div class="ttname"><a href="class_c_min_wait.html">CMinWait&lt; 2000 &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> <a href="chipsets_8h_source.html#l00146">chipsets.h:146</a></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> <a href="chipsets_8h_source.html#l00192">chipsets.h:192</a></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> <a href="chipsets_8h_source.html#l00359">chipsets.h:359</a></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> <a href="chipsets_8h_source.html#l00341">chipsets.h:341</a></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> <a href="chipsets_8h_source.html#l00523">chipsets.h:523</a></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> <a href="chipsets_8h_source.html#l00472">chipsets.h:472</a></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> <a href="chipsets_8h_source.html#l00252">chipsets.h:252</a></div></div>
-<div class="ttc" id="class_u_c_s2903_controller_html"><div class="ttname"><a href="class_u_c_s2903_controller.html">UCS2903Controller</a></div><div class="ttdef"><b>Definition:</b> <a href="chipsets_8h_source.html#l00535">chipsets.h:535</a></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> <a href="chipsets_8h_source.html#l00547">chipsets.h:547</a></div></div>
-<div class="ttc" id="class_pixie_controller_html_a7a5495b64c479dbb5963f894e5a27118"><div class="ttname"><a href="class_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118">PixieController::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> <a href="chipsets_8h_source.html#l00036">chipsets.h:36</a></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> <a href="chipsets_8h_source.html#l00520">chipsets.h:520</a></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> <a href="controller_8h_source.html#l00138">controller.h:138</a></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> <a href="chipsets_8h_source.html#l00228">chipsets.h:228</a></div></div>
-<div class="ttc" id="class_pixie_controller_html_a9da14e8683ef6588d795d33eaba6da3f"><div class="ttname"><a href="class_pixie_controller.html#a9da14e8683ef6588d795d33eaba6da3f">PixieController::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> <a href="chipsets_8h_source.html#l00056">chipsets.h:56</a></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> <a href="chipsets_8h_source.html#l00214">chipsets.h:214</a></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> <a href="fastled__delay_8h_source.html#l00085">fastled_delay.h:85</a></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> <a href="chipsets_8h_source.html#l00553">chipsets.h:553</a></div></div>
-<div class="ttc" id="class_pixie_controller_html_af56e4137870a8f2721f16afcc76db01c"><div class="ttname"><a href="class_pixie_controller.html#af56e4137870a8f2721f16afcc76db01c">PixieController::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> <a href="chipsets_8h_source.html#l00033">chipsets.h:33</a></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> <a href="chipsets_8h_source.html#l00467">chipsets.h:467</a></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> <a href="chipsets_8h_source.html#l00431">chipsets.h:431</a></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> <a href="chipsets_8h_source.html#l00198">chipsets.h:198</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </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> <a href="chipsets_8h_source.html#l00218">chipsets.h:218</a></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> <a href="chipsets_8h_source.html#l00334">chipsets.h:334</a></div></div>
+<div class="ttc" id="class_u_c_s2903_controller_html"><div class="ttname"><a href="class_u_c_s2903_controller.html">UCS2903Controller</a></div><div class="ttdef"><b>Definition:</b> <a href="chipsets_8h_source.html#l00346">chipsets.h:346</a></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> <a href="chipsets_8h_source.html#l00358">chipsets.h:358</a></div></div>
+<div class="ttc" id="class_pixie_controller_html_a7a5495b64c479dbb5963f894e5a27118"><div class="ttname"><a href="class_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118">PixieController::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> <a href="chipsets_8h_source.html#l00035">chipsets.h:35</a></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> <a href="chipsets_8h_source.html#l00328">chipsets.h:328</a></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> <a href="chipsets_8h_source.html#l00158">chipsets.h:158</a></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> <a href="chipsets_8h_source.html#l00144">chipsets.h:144</a></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> <a href="fastled__delay_8h_source.html#l00092">fastled_delay.h:92</a></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> <a href="chipsets_8h_source.html#l00364">chipsets.h:364</a></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> <a href="chipsets_8h_source.html#l00268">chipsets.h:268</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="chipsets_8h.html">chipsets.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:35 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 b7a0dc33..e7616428 100644
--- a/docs/3.1/class_a_p_a102_controller-members.html
+++ b/docs/3.1/class_a_p_a102_controller-members.html
@@ -116,49 +116,49 @@ $(document).ready(function(){initNavTree('class_a_p_a102_controller.html','');})
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>APA102Controller</b>() (defined in <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"><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></td></tr>
<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 class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a>(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><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 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 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 bgcolor="#f0f0f0"><td class="entry"><b>CPixelLEDController</b>() (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &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#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_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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#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_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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 bgcolor="#f0f0f0" class="even"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER &gt; &amp;pixels) (defined in <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"><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>showPixels</b>(PixelController&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0 (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</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#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 -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_a_p_a102_controller.html b/docs/3.1/class_a_p_a102_controller.html
index 0ee1a491..c2fdf188 100644
--- a/docs/3.1/class_a_p_a102_controller.html
+++ b/docs/3.1/class_a_p_a102_controller.html
@@ -127,7 +127,7 @@ $(document).ready(function(){initNavTree('class_a_p_a102_controller.html','');})
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_a_p_a102_controller__inherit__graph.png" border="0" usemap="#_a_p_a102_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="_a_p_a102_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map" id="_a_p_a102_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,5,177,32"/></map>
+<area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="48,81,192,122"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,5,177,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;:</div>
@@ -136,7 +136,7 @@ $(document).ready(function(){initNavTree('class_a_p_a102_controller.html','');})
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_a_p_a102_controller__coll__graph.png" border="0" usemap="#_a_p_a102_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_a_p_a102_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" id="_a_p_a102_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/></map>
+<area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="48,219,192,261"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -145,15 +145,15 @@ Public Member Functions</h2></td></tr>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0">init</a> ()</td></tr>
<tr class="memdesc:a0e875981e076baf9cd1c5e7599b83cd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the LED controller <br /></td></tr>
<tr class="separator:a0e875981e076baf9cd1c5e7599b83cd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aadcdde1b8fc6c680504fe9455ceff0fb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aadcdde1b8fc6c680504fe9455ceff0fb"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb">clearLeds</a> (int nLeds)</td></tr>
-<tr class="memdesc:aadcdde1b8fc6c680504fe9455ceff0fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
-<tr class="separator:aadcdde1b8fc6c680504fe9455ceff0fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c560c6d171f117dfd19c0f2ec780a32"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a> ()</td></tr>
<tr class="memdesc:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">create an led controller object, add it to the chain of controllers <br /></td></tr>
<tr class="separator:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd0f6ce4701e76ebc4b916e0a04134f2"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a> (int nLeds)</td></tr>
+<tr class="memdesc:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
+<tr class="separator:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe990b9a65f5bff1f391cc5c28752abb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, uint8_t brightness)</td></tr>
<tr class="memdesc:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">show function w/integer brightness, will scale for color correction and temperature <br /></td></tr>
@@ -174,9 +174,6 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<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#a06cfb05ad6e0f7982328928051f3f565">next</a> ()</td></tr>
<tr class="memdesc:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the next controller in the chain after this one. will return NULL at the end of the chain <br /></td></tr>
<tr class="separator:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a55f6d5b215dc14f9473faea938b4c8"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t brightness)</td></tr>
-<tr class="separator:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b08378b29f92c5def65175ec5334037"></a>
<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds)</td></tr>
<tr class="memdesc:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the default array of leds to be used by this controller <br /></td></tr>
@@ -239,19 +236,19 @@ virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getMaxRef
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
-<tr class="memitem:a0aa9f2896fe8b23554623fd3de0d5428"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428">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:a0aa9f2896fe8b23554623fd3de0d5428"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#a0aa9f2896fe8b23554623fd3de0d5428">More...</a><br /></td></tr>
-<tr class="separator:a0aa9f2896fe8b23554623fd3de0d5428"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a245148d2621eb73999ab673852c49332"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:a245148d2621eb73999ab673852c49332"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a245148d2621eb73999ab673852c49332">More...</a><br /></td></tr>
-<tr class="separator:a245148d2621eb73999ab673852c49332"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a245148d2621eb73999ab673852c49332"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:a245148d2621eb73999ab673852c49332"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a245148d2621eb73999ab673852c49332">More...</a><br /></td></tr>
-<tr class="separator:a245148d2621eb73999ab673852c49332"><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>
-<tr class="separator:a3ae4f61fc85ef4609d65c14ca51434c4 inherit pro_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ec545837b1622df6c4805f853eae3c1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ec545837b1622df6c4805f853eae3c1"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt; &amp;pixels)</td></tr>
+<tr class="separator:a8ec545837b1622df6c4805f853eae3c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_c_pixel_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_c_pixel_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a></td></tr>
+<tr class="memitem:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ab7248c894ba95c3a71665f5bed2a17"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0</td></tr>
+<tr class="separator:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">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:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#af5569b9e92f75410e03c75bf5764e016">More...</a><br /></td></tr>
+<tr class="separator:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
+<tr class="memdesc:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a36cc2a15671bae0db53df1e26b4a813c">More...</a><br /></td></tr>
+<tr class="separator:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
@@ -305,177 +302,8 @@ class APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</h3>
</dd>
</dl>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00228">228</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-</div><h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="a245148d2621eb73999ab673852c49332"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = BGR, uint8_t SPI_SPEED = DATA_RATE_MHZ(24)&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_a_p_a102_controller.html">APA102Controller</a>&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;::show </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>write the passed in rgb data out to the leds managed by this controller </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the rgb data to write out to the strip </td></tr>
- <tr><td class="paramname">nLeds</td><td>the number of leds being written out </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling to apply to each led before writing it out </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00279">279</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a245148d2621eb73999ab673852c49332"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = BGR, uint8_t SPI_SPEED = DATA_RATE_MHZ(24)&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_a_p_a102_controller.html">APA102Controller</a>&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;::show </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>write the passed in rgb data out to the leds managed by this controller </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the rgb data to write out to the strip </td></tr>
- <tr><td class="paramname">nLeds</td><td>the number of leds being written out </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling to apply to each led before writing it out </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00307">307</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a0aa9f2896fe8b23554623fd3de0d5428"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = BGR, uint8_t SPI_SPEED = DATA_RATE_MHZ(24)&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_a_p_a102_controller.html">APA102Controller</a>&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;::showColor </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>set all the leds on the controller to a given color </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the crgb color to set the leds to </td></tr>
- <tr><td class="paramname">nLeds</td><td>the numner of leds to set to this color </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling value for outputting color </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00252">252</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00158">158</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+</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 -->
@@ -484,7 +312,7 @@ template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = BGR, uint8_t
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_a_p_a102_controller.html">APA102Controller</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_a_p_a102_controller.js b/docs/3.1/class_a_p_a102_controller.js
index ac2d99d2..921bd03c 100644
--- a/docs/3.1/class_a_p_a102_controller.js
+++ b/docs/3.1/class_a_p_a102_controller.js
@@ -1,9 +1,6 @@
var class_a_p_a102_controller =
[
[ "APA102Controller", "class_a_p_a102_controller.html#a42aad3d0528451c80d66ef1e1c1b692d", null ],
- [ "clearLeds", "class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb", null ],
[ "init", "class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0", null ],
- [ "show", "class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332", null ],
- [ "show", "class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332", null ],
- [ "showColor", "class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428", null ]
+ [ "showPixels", "class_a_p_a102_controller.html#a8ec545837b1622df6c4805f853eae3c1", null ]
]; \ No newline at end of file
diff --git a/docs/3.1/class_a_p_a102_controller__coll__graph.map b/docs/3.1/class_a_p_a102_controller__coll__graph.map
index 07a606fb..c7b1c59e 100644
--- a/docs/3.1/class_a_p_a102_controller__coll__graph.map
+++ b/docs/3.1/class_a_p_a102_controller__coll__graph.map
@@ -1,4 +1,5 @@
<map id="APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
-<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/>
-<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="48,219,192,261"/>
+<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/>
+<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/>
</map>
diff --git a/docs/3.1/class_a_p_a102_controller__coll__graph.md5 b/docs/3.1/class_a_p_a102_controller__coll__graph.md5
index 929fdd5a..1393d7e3 100644
--- a/docs/3.1/class_a_p_a102_controller__coll__graph.md5
+++ b/docs/3.1/class_a_p_a102_controller__coll__graph.md5
@@ -1 +1 @@
-3073f1e294e7db54c2482c856e7bf5bc \ No newline at end of file
+6a78f0104e110bac7140307014349a14 \ No newline at end of file
diff --git a/docs/3.1/class_a_p_a102_controller__coll__graph.png b/docs/3.1/class_a_p_a102_controller__coll__graph.png
index 25dac477..aa16f4ee 100644
--- a/docs/3.1/class_a_p_a102_controller__coll__graph.png
+++ b/docs/3.1/class_a_p_a102_controller__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_a_p_a102_controller__inherit__graph.map b/docs/3.1/class_a_p_a102_controller__inherit__graph.map
index c4f3c9ff..7d5d7a34 100644
--- a/docs/3.1/class_a_p_a102_controller__inherit__graph.map
+++ b/docs/3.1/class_a_p_a102_controller__inherit__graph.map
@@ -1,3 +1,4 @@
<map id="APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
-<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,5,177,32"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="48,81,192,122"/>
+<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,5,177,32"/>
</map>
diff --git a/docs/3.1/class_a_p_a102_controller__inherit__graph.md5 b/docs/3.1/class_a_p_a102_controller__inherit__graph.md5
index d499e869..a001dd18 100644
--- a/docs/3.1/class_a_p_a102_controller__inherit__graph.md5
+++ b/docs/3.1/class_a_p_a102_controller__inherit__graph.md5
@@ -1 +1 @@
-70dae9b7e7652a0751dd722a40fef857 \ No newline at end of file
+cb9c061cf9d81cce3dd219fb31f1cf45 \ No newline at end of file
diff --git a/docs/3.1/class_a_p_a102_controller__inherit__graph.png b/docs/3.1/class_a_p_a102_controller__inherit__graph.png
index b4f02608..f3b80fc6 100644
--- a/docs/3.1/class_a_p_a102_controller__inherit__graph.png
+++ b/docs/3.1/class_a_p_a102_controller__inherit__graph.png
Binary files differ
diff --git a/docs/3.1/class_a_p_a104.html b/docs/3.1/class_a_p_a104.html
index 0f361a15..482176a1 100644
--- a/docs/3.1/class_a_p_a104.html
+++ b/docs/3.1/class_a_p_a104.html
@@ -134,7 +134,7 @@ $(document).ready(function(){initNavTree('class_a_p_a104.html','');});
class APA104&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00096">96</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00097">97</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</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>
@@ -144,7 +144,7 @@ class APA104&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_a_p_a104.html">APA104</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 1eab68e6..0b25d5c4 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
@@ -131,7 +131,7 @@ $(document).ready(function(){initNavTree('class_a_v_r_software_s_p_i_output.html
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 6d74a603..c2afb913 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
@@ -161,7 +161,7 @@ static void&#160;</td><td class="memItemRight" valign="bottom"><b>writeByte</b>
class AVRSoftwareSPIOutput&lt; DATA_PIN, CLOCK_PIN, SPI_SPEED &gt;</h3>
-<p>Definition at line <a class="el" href="fastspi__bitbang_8h_source.html#l00017">17</a> of file <a class="el" href="fastspi__bitbang_8h_source.html">fastspi_bitbang.h</a>.</p>
+<p>Definition at line <a class="el" href="fastspi__bitbang_8h_source.html#l00019">19</a> of file <a class="el" href="fastspi__bitbang_8h_source.html">fastspi_bitbang.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="fastspi__bitbang_8h_source.html">fastspi_bitbang.h</a></li>
</ul>
@@ -171,7 +171,7 @@ class AVRSoftwareSPIOutput&lt; DATA_PIN, CLOCK_PIN, SPI_SPEED &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_a_v_r_software_s_p_i_output.html">AVRSoftwareSPIOutput</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 1eaa7d28..753a9b69 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
@@ -133,7 +133,7 @@ $(document).ready(function(){initNavTree('class_c_every_n_time_periods.html','')
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 3673ef7a..fcd6f584 100644
--- a/docs/3.1/class_c_every_n_time_periods.html
+++ b/docs/3.1/class_c_every_n_time_periods.html
@@ -166,7 +166,7 @@ timeType&#160;</td><td class="memItemRight" valign="bottom"><b>mPeriod</b></td><
class CEveryNTimePeriods&lt; timeType, timeGetter &gt;</h3>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l01032">1032</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l01042">1042</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="lib8tion_8h_source.html">lib8tion.h</a></li>
</ul>
@@ -176,7 +176,7 @@ class CEveryNTimePeriods&lt; timeType, timeGetter &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 7c4b6bbb..8072a18c 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
@@ -159,7 +159,7 @@ $(document).ready(function(){initNavTree('class_c_fast_l_e_d.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 b3bda134..60be491d 100644
--- a/docs/3.1/class_c_fast_l_e_d.html
+++ b/docs/3.1/class_c_fast_l_e_d.html
@@ -279,7 +279,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES&gt; </td></tr>
<div class="textblock"><p>High level controller interface for FastLED. </p>
<p>This class manages controllers, global settings and trackings such as brightness, and refresh rates, and provides access functions for driving led data to controllers via the show/showColor/clear methods. </p>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00144">144</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00145">145</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="afd7928d822589740af6e23b2d510cf3f"></a>
<div class="memitem">
@@ -403,7 +403,7 @@ template&lt;ESPIChipsets CHIPSET, uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RG
</dl>
<dl class="section return"><dt>Returns</dt><dd>a reference to the added controller </dd></dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00189">189</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00190">190</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</div>
</div>
@@ -467,7 +467,7 @@ template&lt;template&lt; uint8_t DATA_PIN, EOrder RGB_ORDER &gt; class CHIPSET,
</dl>
<dl class="section return"><dt>Returns</dt><dd>a reference to the added controller </dd></dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00261">261</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00262">262</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</div>
</div>
@@ -530,7 +530,7 @@ template&lt;template&lt; EOrder RGB_ORDER &gt; class CHIPSET, EOrder RGB_ORDER&g
</dl>
<dl class="section return"><dt>Returns</dt><dd>a reference to the added controller </dd></dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00309">309</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00310">310</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</div>
</div>
@@ -594,7 +594,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a reference to the added controller </dd></dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00371">371</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00372">372</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</div>
</div>
@@ -620,7 +620,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</dd>
</dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8cpp_source.html#l00100">100</a> of file <a class="el" href="_fast_l_e_d_8cpp_source.html">FastLED.cpp</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8cpp_source.html#l00105">105</a> of file <a class="el" href="_fast_l_e_d_8cpp_source.html">FastLED.cpp</a>.</p>
</div>
</div>
@@ -667,7 +667,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</dl>
</dd></dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8cpp_source.html#l00196">196</a> of file <a class="el" href="_fast_l_e_d_8cpp_source.html">FastLED.cpp</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8cpp_source.html#l00205">205</a> of file <a class="el" href="_fast_l_e_d_8cpp_source.html">FastLED.cpp</a>.</p>
</div>
</div>
@@ -686,14 +686,14 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</div><div class="memdoc">
<p>Delay for the given number of milliseconds. </p>
-<p>Provided to allow the library to be used on platforms that don't have a delay function (to allow code to be more portable) </p><dl class="params"><dt>Parameters</dt><dd>
+<p>Provided to allow the library to be used on platforms that don't have a delay function (to allow code to be more portable). Note: this will call show constantly to drive the dithering engine (and will call show at least once). </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ms</td><td>the number of milliseconds to pause for </td></tr>
</table>
</dd>
</dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8cpp_source.html#l00115">115</a> of file <a class="el" href="_fast_l_e_d_8cpp_source.html">FastLED.cpp</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8cpp_source.html#l00120">120</a> of file <a class="el" href="_fast_l_e_d_8cpp_source.html">FastLED.cpp</a>.</p>
</div>
</div>
@@ -721,7 +721,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
<p>Get the current global brightness setting. </p>
<dl class="section return"><dt>Returns</dt><dd>the current global brightness value </dd></dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00409">409</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00410">410</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</div>
</div>
@@ -749,7 +749,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
<p>Get the number of frames/second being written out. </p>
<dl class="section return"><dt>Returns</dt><dd>the most recently computed FPS value </dd></dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00480">480</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00482">482</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</div>
</div>
@@ -777,7 +777,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
<p>Get a pointer to led data for the first controller. </p>
<dl class="section return"><dt>Returns</dt><dd>pointer to the <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> buffer for the first controller </dd></dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00496">496</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00498">498</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</div>
</div>
@@ -832,7 +832,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</dd>
</dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00405">405</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00406">406</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</div>
</div>
@@ -858,7 +858,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</dd>
</dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8cpp_source.html#l00135">135</a> of file <a class="el" href="_fast_l_e_d_8cpp_source.html">FastLED.cpp</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8cpp_source.html#l00144">144</a> of file <a class="el" href="_fast_l_e_d_8cpp_source.html">FastLED.cpp</a>.</p>
</div>
</div>
@@ -884,7 +884,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</dd>
</dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8cpp_source.html#l00143">143</a> of file <a class="el" href="_fast_l_e_d_8cpp_source.html">FastLED.cpp</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8cpp_source.html#l00152">152</a> of file <a class="el" href="_fast_l_e_d_8cpp_source.html">FastLED.cpp</a>.</p>
</div>
</div>
@@ -918,7 +918,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</dd>
</dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00418">418</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00419">419</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</div>
</div>
@@ -963,7 +963,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</dd>
</dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00414">414</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00415">415</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</div>
</div>
@@ -1000,7 +1000,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</dd>
</dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8cpp_source.html#l00209">209</a> of file <a class="el" href="_fast_l_e_d_8cpp_source.html">FastLED.cpp</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8cpp_source.html#l00218">218</a> of file <a class="el" href="_fast_l_e_d_8cpp_source.html">FastLED.cpp</a>.</p>
</div>
</div>
@@ -1026,7 +1026,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</dd>
</dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8cpp_source.html#l00127">127</a> of file <a class="el" href="_fast_l_e_d_8cpp_source.html">FastLED.cpp</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8cpp_source.html#l00136">136</a> of file <a class="el" href="_fast_l_e_d_8cpp_source.html">FastLED.cpp</a>.</p>
</div>
</div>
@@ -1123,7 +1123,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
</dd>
</dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00441">441</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00442">442</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</div>
</div>
@@ -1151,7 +1151,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
<p>Get the number of leds in the first controller. </p>
<dl class="section return"><dt>Returns</dt><dd>the number of LEDs in the first controller </dd></dl>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00492">492</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00494">494</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</div>
</div>
@@ -1165,7 +1165,7 @@ template&lt;EBlockChipsets CHIPSET, int NUM_LANES, EOrder RGB_ORDER&gt; </div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_c_fast_l_e_d.html">CFastLED</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 2bc17883..842b5864 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
@@ -137,7 +137,7 @@ $(document).ready(function(){initNavTree('class_c_h_s_v_palette16.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 1bc1096e..5f65bc92 100644
--- a/docs/3.1/class_c_h_s_v_palette16.html
+++ b/docs/3.1/class_c_h_s_v_palette16.html
@@ -184,7 +184,7 @@ Public Attributes</h2></td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p>Definition at line <a class="el" href="colorutils_8h_source.html#l00424">424</a> of file <a class="el" href="colorutils_8h_source.html">colorutils.h</a>.</p>
+<p>Definition at line <a class="el" href="colorutils_8h_source.html#l00438">438</a> of file <a class="el" href="colorutils_8h_source.html">colorutils.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="colorutils_8h_source.html">colorutils.h</a></li>
</ul>
@@ -194,7 +194,7 @@ Public Attributes</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 67d0cf69..98e3cbea 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
@@ -139,7 +139,7 @@ $(document).ready(function(){initNavTree('class_c_h_s_v_palette256.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 2cea9ce4..c734843b 100644
--- a/docs/3.1/class_c_h_s_v_palette256.html
+++ b/docs/3.1/class_c_h_s_v_palette256.html
@@ -190,7 +190,7 @@ Public Attributes</h2></td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p>Definition at line <a class="el" href="colorutils_8h_source.html#l00528">528</a> of file <a class="el" href="colorutils_8h_source.html">colorutils.h</a>.</p>
+<p>Definition at line <a class="el" href="colorutils_8h_source.html#l00542">542</a> of file <a class="el" href="colorutils_8h_source.html">colorutils.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="colorutils_8h_source.html">colorutils.h</a></li>
</ul>
@@ -200,7 +200,7 @@ Public Attributes</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_c_h_s_v_palette32-members.html b/docs/3.1/class_c_h_s_v_palette32-members.html
new file mode 100644
index 00000000..77c3d959
--- /dev/null
+++ b/docs/3.1/class_c_h_s_v_palette32-members.html
@@ -0,0 +1,146 @@
+<!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="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</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>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('class_c_h_s_v_palette32.html','');});
+</script>
+<div id="doc-content">
+<!-- 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">CHSVPalette32 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>, including all inherited members.</p>
+<table class="directory">
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CHSVPalette32</b>() (defined in <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>CHSVPalette32</b>(const CHSV &amp;c00, const CHSV &amp;c01, const CHSV &amp;c02, const CHSV &amp;c03, const CHSV &amp;c04, const CHSV &amp;c05, const CHSV &amp;c06, const CHSV &amp;c07, const CHSV &amp;c08, const CHSV &amp;c09, const CHSV &amp;c10, const CHSV &amp;c11, const CHSV &amp;c12, const CHSV &amp;c13, const CHSV &amp;c14, const CHSV &amp;c15) (defined in <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CHSVPalette32</b>(const CHSVPalette32 &amp;rhs) (defined in <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>CHSVPalette32</b>(const TProgmemHSVPalette32 &amp;rhs) (defined in <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CHSVPalette32</b>(const CHSV &amp;c1) (defined in <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>CHSVPalette32</b>(const CHSV &amp;c1, const CHSV &amp;c2) (defined in <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CHSVPalette32</b>(const CHSV &amp;c1, const CHSV &amp;c2, const CHSV &amp;c3) (defined in <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>CHSVPalette32</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_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</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_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</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_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator!=</b>(const CHSVPalette32 rhs) (defined in <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const CHSVPalette32 &amp;rhs) (defined in <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const TProgmemHSVPalette32 &amp;rhs) (defined in <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator==</b>(const CHSVPalette32 rhs) (defined in <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</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_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</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_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</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_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator[]</b>(int x) const __attribute__((always_inline)) (defined in <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>)</td><td class="entry"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/3.1/class_c_h_s_v_palette32.html b/docs/3.1/class_c_h_s_v_palette32.html
new file mode 100644
index 00000000..b4d94ebb
--- /dev/null
+++ b/docs/3.1/class_c_h_s_v_palette32.html
@@ -0,0 +1,203 @@
+<!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: CHSVPalette32 Class 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="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</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>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('class_c_h_s_v_palette32.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="class_c_h_s_v_palette32-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">CHSVPalette32 Class Reference<div class="ingroups"><a class="el" href="group___colorutils.html">Color utility functions</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
+ <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Collaboration diagram for CHSVPalette32:</div>
+<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
+</div>
+<div id="dynsection-0-content" class="dyncontent" style="display:none;">
+<div class="center"><img src="class_c_h_s_v_palette32__coll__graph.png" border="0" usemap="#_c_h_s_v_palette32_coll__map" alt="Collaboration graph"/></div>
+<map name="_c_h_s_v_palette32_coll__map" id="_c_h_s_v_palette32_coll__map">
+<area shape="rect" id="node2" href="struct_c_h_s_v.html" title="Representation of an HSV pixel (hue, saturation, value (aka brightness)). " alt="" coords="33,5,92,32"/></map>
+<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a7c50a7c321a9faad6335600e6bd82ca5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7c50a7c321a9faad6335600e6bd82ca5"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CHSVPalette32</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c00, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c01, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c02, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c03, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c04, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c05, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c06, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c07, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c08, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c09, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c10, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c11, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c12, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c13, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c14, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c15)</td></tr>
+<tr class="separator:a7c50a7c321a9faad6335600e6bd82ca5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7bc32b739dea0f7dfbbe7706c24e13e4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7bc32b739dea0f7dfbbe7706c24e13e4"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CHSVPalette32</b> (const <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> &amp;rhs)</td></tr>
+<tr class="separator:a7bc32b739dea0f7dfbbe7706c24e13e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a59f7d285b6803e084c0d92f92839d562"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59f7d285b6803e084c0d92f92839d562"></a>
+<a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> &amp;rhs)</td></tr>
+<tr class="separator:a59f7d285b6803e084c0d92f92839d562"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a53a5e568393408408423a55b739d7b28"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a53a5e568393408408423a55b739d7b28"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CHSVPalette32</b> (const TProgmemHSVPalette32 &amp;rhs)</td></tr>
+<tr class="separator:a53a5e568393408408423a55b739d7b28"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a446e0d09273adfcd1a75bfb773c67f42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a446e0d09273adfcd1a75bfb773c67f42"></a>
+<a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const TProgmemHSVPalette32 &amp;rhs)</td></tr>
+<tr class="separator:a446e0d09273adfcd1a75bfb773c67f42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad7c3d89fbde710d5fb21c04969ee7e24"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad7c3d89fbde710d5fb21c04969ee7e24"></a>
+<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
+<tr class="separator:ad7c3d89fbde710d5fb21c04969ee7e24"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b4646fa3d2db98618c47b9bd0c48faf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2b4646fa3d2db98618c47b9bd0c48faf"></a>
+const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) const <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
+<tr class="separator:a2b4646fa3d2db98618c47b9bd0c48faf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a905b808c315fc0408f55d28ef3d4f328"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a905b808c315fc0408f55d28ef3d4f328"></a>
+<a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
+<tr class="separator:a905b808c315fc0408f55d28ef3d4f328"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09365a89bffeb4ab00c5cde45319dee6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a09365a89bffeb4ab00c5cde45319dee6"></a>
+const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) const <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
+<tr class="separator:a09365a89bffeb4ab00c5cde45319dee6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29b75de144e6a1c27402f68e516cea2e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a29b75de144e6a1c27402f68e516cea2e"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>operator CHSV *</b> ()</td></tr>
+<tr class="separator:a29b75de144e6a1c27402f68e516cea2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a95f25513af0f6878687713f4417be38d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a95f25513af0f6878687713f4417be38d"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator==</b> (const <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> rhs)</td></tr>
+<tr class="separator:a95f25513af0f6878687713f4417be38d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b7b783a6b1e121e267b32b0f15f3b6c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1b7b783a6b1e121e267b32b0f15f3b6c"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator!=</b> (const <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> rhs)</td></tr>
+<tr class="separator:a1b7b783a6b1e121e267b32b0f15f3b6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afef05a5d4701172ad4d3e6ad1c5fe94c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afef05a5d4701172ad4d3e6ad1c5fe94c"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CHSVPalette32</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c1)</td></tr>
+<tr class="separator:afef05a5d4701172ad4d3e6ad1c5fe94c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8191b89cecfbda5562cdfcf911fe234a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8191b89cecfbda5562cdfcf911fe234a"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CHSVPalette32</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c1, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c2)</td></tr>
+<tr class="separator:a8191b89cecfbda5562cdfcf911fe234a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf88a954775700c432a1e1fbfaa5dec7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abf88a954775700c432a1e1fbfaa5dec7"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CHSVPalette32</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c1, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c2, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c3)</td></tr>
+<tr class="separator:abf88a954775700c432a1e1fbfaa5dec7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca812404b1b407150305352722fd5769"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aca812404b1b407150305352722fd5769"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CHSVPalette32</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c1, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c2, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c3, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c4)</td></tr>
+<tr class="separator:aca812404b1b407150305352722fd5769"><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>
+<tr class="memitem:a193cf8f611b63e58a19623d5be1bc196"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a193cf8f611b63e58a19623d5be1bc196"></a>
+<a class="el" href="struct_c_h_s_v.html">CHSV</a>&#160;</td><td class="memItemRight" valign="bottom"><b>entries</b> [32]</td></tr>
+<tr class="separator:a193cf8f611b63e58a19623d5be1bc196"><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>Definition at line <a class="el" href="colorutils_8h_source.html#l00912">912</a> of file <a class="el" href="colorutils_8h_source.html">colorutils.h</a>.</p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="colorutils_8h_source.html">colorutils.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a></li>
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/3.1/class_c_h_s_v_palette32.js b/docs/3.1/class_c_h_s_v_palette32.js
new file mode 100644
index 00000000..acf676cb
--- /dev/null
+++ b/docs/3.1/class_c_h_s_v_palette32.js
@@ -0,0 +1,21 @@
+var class_c_h_s_v_palette32 =
+[
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html#ab6f8516fa7adacd1eefccb3a371edd9b", null ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html#a7c50a7c321a9faad6335600e6bd82ca5", null ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html#a7bc32b739dea0f7dfbbe7706c24e13e4", null ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html#a53a5e568393408408423a55b739d7b28", null ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html#afef05a5d4701172ad4d3e6ad1c5fe94c", null ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html#a8191b89cecfbda5562cdfcf911fe234a", null ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html#abf88a954775700c432a1e1fbfaa5dec7", null ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html#aca812404b1b407150305352722fd5769", null ],
+ [ "operator CHSV *", "class_c_h_s_v_palette32.html#a29b75de144e6a1c27402f68e516cea2e", null ],
+ [ "operator!=", "class_c_h_s_v_palette32.html#a1b7b783a6b1e121e267b32b0f15f3b6c", null ],
+ [ "operator=", "class_c_h_s_v_palette32.html#a59f7d285b6803e084c0d92f92839d562", null ],
+ [ "operator=", "class_c_h_s_v_palette32.html#a446e0d09273adfcd1a75bfb773c67f42", null ],
+ [ "operator==", "class_c_h_s_v_palette32.html#a95f25513af0f6878687713f4417be38d", null ],
+ [ "operator[]", "class_c_h_s_v_palette32.html#ad7c3d89fbde710d5fb21c04969ee7e24", null ],
+ [ "operator[]", "class_c_h_s_v_palette32.html#a2b4646fa3d2db98618c47b9bd0c48faf", null ],
+ [ "operator[]", "class_c_h_s_v_palette32.html#a905b808c315fc0408f55d28ef3d4f328", null ],
+ [ "operator[]", "class_c_h_s_v_palette32.html#a09365a89bffeb4ab00c5cde45319dee6", null ],
+ [ "entries", "class_c_h_s_v_palette32.html#a193cf8f611b63e58a19623d5be1bc196", null ]
+]; \ No newline at end of file
diff --git a/docs/3.1/class_c_h_s_v_palette32__coll__graph.map b/docs/3.1/class_c_h_s_v_palette32__coll__graph.map
new file mode 100644
index 00000000..bfd24159
--- /dev/null
+++ b/docs/3.1/class_c_h_s_v_palette32__coll__graph.map
@@ -0,0 +1,3 @@
+<map id="CHSVPalette32" name="CHSVPalette32">
+<area shape="rect" id="node2" href="$struct_c_h_s_v.html" title="Representation of an HSV pixel (hue, saturation, value (aka brightness)). " alt="" coords="33,5,92,32"/>
+</map>
diff --git a/docs/3.1/class_c_h_s_v_palette32__coll__graph.md5 b/docs/3.1/class_c_h_s_v_palette32__coll__graph.md5
new file mode 100644
index 00000000..827903b9
--- /dev/null
+++ b/docs/3.1/class_c_h_s_v_palette32__coll__graph.md5
@@ -0,0 +1 @@
+8a97cb92f2195fb3886eea496e451d00 \ No newline at end of file
diff --git a/docs/3.1/class_c_h_s_v_palette32__coll__graph.png b/docs/3.1/class_c_h_s_v_palette32__coll__graph.png
new file mode 100644
index 00000000..451df923
--- /dev/null
+++ b/docs/3.1/class_c_h_s_v_palette32__coll__graph.png
Binary files differ
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 23f51f17..7fe4b019 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
@@ -116,7 +116,7 @@ $(document).ready(function(){initNavTree('class_c_l_e_d_controller.html','');});
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CFastLED</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">friend</span></td></tr>
<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 class="even"><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a>(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><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 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>
@@ -144,9 +144,7 @@ $(document).ready(function(){initNavTree('class_c_l_e_d_controller.html','');});
<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 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><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>
@@ -157,7 +155,7 @@ $(document).ready(function(){initNavTree('class_c_l_e_d_controller.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 20c7081e..4496f506 100644
--- a/docs/3.1/class_c_l_e_d_controller.html
+++ b/docs/3.1/class_c_l_e_d_controller.html
@@ -131,7 +131,7 @@ $(document).ready(function(){initNavTree('class_c_l_e_d_controller.html','');});
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_c_l_e_d_controller__inherit__graph.png" border="0" usemap="#_c_l_e_d_controller_inherit__map" alt="Inheritance graph"/></div>
<map name="_c_l_e_d_controller_inherit__map" id="_c_l_e_d_controller_inherit__map">
-<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_pixie_controller.html" title="Adafruit Pixie controller class. " alt="" coords="209,378,365,419"/><area shape="rect" id="node11" href="class_s_m16716_controller.html" title="SM16716 controller class. " alt="" coords="185,444,388,500"/><area shape="rect" id="node12" href="class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="171,524,402,580"/><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="node10" href="class_p_i_x_i_e.html" title="PIXIE\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="482,378,651,419"/><area shape="rect" id="node13" href="class_w_s2803_controller.html" title="WS2803Controller\&lt; DATA\l_PIN, CLOCK_PIN, RGB_ORDER,\l SPI_SPEED \&gt;" alt="" coords="451,524,682,580"/></map>
+<area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER, LANES,\l MASK \&gt;" alt="" coords="171,184,344,240"/><area shape="rect" id="node3" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="185,265,329,306"/><area shape="rect" id="node4" href="class_a_p_a102_controller.html" title="APA102 controller class. " alt="" coords="393,5,623,61"/><area shape="rect" id="node5" href="class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="436,86,580,127"/><area shape="rect" id="node7" href="class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="407,151,609,193"/><area shape="rect" id="node9" href="class_l_p_d8806_controller.html" title="LPD8806 controller class. " alt="" coords="407,217,609,273"/><area shape="rect" id="node10" href="class_p9813_controller.html" title="P9813 controller class. " alt="" coords="423,297,593,353"/><area shape="rect" id="node11" href="class_pixie_controller.html" title="Adafruit Pixie controller class. " alt="" coords="430,378,586,419"/><area shape="rect" id="node13" href="class_s_m16716_controller.html" title="SM16716 controller class. " alt="" coords="407,444,609,500"/><area shape="rect" id="node14" href="class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="393,524,623,580"/><area shape="rect" id="node6" href="class_d_m_x_s_e_r_i_a_l.html" title="DMXSERIAL\&lt; RGB_ORDER \&gt;" alt="" coords="685,93,891,120"/><area shape="rect" id="node8" href="class_d_m_x_s_i_m_p_l_e.html" title="DMXSIMPLE\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="697,151,879,193"/><area shape="rect" id="node12" href="class_p_i_x_i_e.html" title="PIXIE\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="703,378,873,419"/><area shape="rect" id="node15" href="class_w_s2803_controller.html" title="WS2803Controller\&lt; DATA\l_PIN, CLOCK_PIN, RGB_ORDER,\l SPI_SPEED \&gt;" alt="" coords="673,524,903,580"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for CLEDController:</div>
@@ -153,10 +153,10 @@ Public Member Functions</h2></td></tr>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#af877a15a5ec452780fbd1d359b8a9913">init</a> ()=0</td></tr>
<tr class="memdesc:af877a15a5ec452780fbd1d359b8a9913"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the LED controller <br /></td></tr>
<tr class="separator:af877a15a5ec452780fbd1d359b8a9913"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:adfa6601c84fefd733904b32ac98b6dae"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adfa6601c84fefd733904b32ac98b6dae"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#adfa6601c84fefd733904b32ac98b6dae">clearLeds</a> (int nLeds)=0</td></tr>
-<tr class="memdesc:adfa6601c84fefd733904b32ac98b6dae"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
-<tr class="separator:adfa6601c84fefd733904b32ac98b6dae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd0f6ce4701e76ebc4b916e0a04134f2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd0f6ce4701e76ebc4b916e0a04134f2"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a> (int nLeds)</td></tr>
+<tr class="memdesc:abd0f6ce4701e76ebc4b916e0a04134f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
+<tr class="separator:abd0f6ce4701e76ebc4b916e0a04134f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe990b9a65f5bff1f391cc5c28752abb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe990b9a65f5bff1f391cc5c28752abb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, uint8_t brightness)</td></tr>
<tr class="memdesc:abe990b9a65f5bff1f391cc5c28752abb"><td class="mdescLeft">&#160;</td><td class="mdescRight">show function w/integer brightness, will scale for color correction and temperature <br /></td></tr>
@@ -177,9 +177,6 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<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#a06cfb05ad6e0f7982328928051f3f565">next</a> ()</td></tr>
<tr class="memdesc:a06cfb05ad6e0f7982328928051f3f565"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the next controller in the chain after this one. will return NULL at the end of the chain <br /></td></tr>
<tr class="separator:a06cfb05ad6e0f7982328928051f3f565"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a55f6d5b215dc14f9473faea938b4c8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a55f6d5b215dc14f9473faea938b4c8"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t brightness)</td></tr>
-<tr class="separator:a4a55f6d5b215dc14f9473faea938b4c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b08378b29f92c5def65175ec5334037"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b08378b29f92c5def65175ec5334037"></a>
<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds)</td></tr>
<tr class="memdesc:a5b08378b29f92c5def65175ec5334037"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the default array of leds to be used by this controller <br /></td></tr>
@@ -258,9 +255,6 @@ Protected Member Functions</h2></td></tr>
<tr class="memitem:add284627121ffab140e083e84fadc37f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)=0</td></tr>
<tr class="memdesc:add284627121ffab140e083e84fadc37f"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#add284627121ffab140e083e84fadc37f">More...</a><br /></td></tr>
<tr class="separator:add284627121ffab140e083e84fadc37f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3ae4f61fc85ef4609d65c14ca51434c4"><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>
-<tr class="separator:a3ae4f61fc85ef4609d65c14ca51434c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
@@ -302,7 +296,7 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>CFastLED</b></td></t
<div class="textblock"><p>Base definition for an LED controller. </p>
<p>Pretty much the methods that every LED controller object will make available. Note that the showARGB method is not impelemented for all controllers yet. Note also the methods for eventual checking of background writing of data (I'm looking at you, teensy 3.0 DMA controller!). If you want to pass LED controllers around to methods, make them references to this type, keeps your code saner. However, most people won't be seeing/using these objects directly at all </p>
-<p>Definition at line <a class="el" href="controller_8h_source.html#l00037">37</a> of file <a class="el" href="controller_8h_source.html">controller.h</a>.</p>
+<p>Definition at line <a class="el" href="controller_8h_source.html#l00038">38</a> of file <a class="el" href="controller_8h_source.html">controller.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="add284627121ffab140e083e84fadc37f"></a>
<div class="memitem">
@@ -352,7 +346,7 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>CFastLED</b></td></t
</dd>
</dl>
-<p>Implemented in <a class="el" href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, <a class="el" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, <a class="el" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, <a class="el" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, <a class="el" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, <a class="el" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, <a class="el" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, <a class="el" href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, <a class="el" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">DMXSerialController&lt; RGB_ORDER &gt;</a>, <a class="el" href="class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>, <a class="el" href="class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>, and <a class="el" href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a>.</p>
+<p>Implemented in <a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;</a>, and <a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">CPixelLEDController&lt; RGB_ORDER &gt;</a>.</p>
</div>
</div>
@@ -404,7 +398,7 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>CFastLED</b></td></t
</dd>
</dl>
-<p>Implemented in <a class="el" href="class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, <a class="el" href="class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, <a class="el" href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, <a class="el" href="class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, <a class="el" href="class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, <a class="el" href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b">DMXSerialController&lt; RGB_ORDER &gt;</a>, <a class="el" href="class_pixie_controller.html#a9da14e8683ef6588d795d33eaba6da3f">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>, and <a class="el" href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a>.</p>
+<p>Implemented in <a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;</a>, and <a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">CPixelLEDController&lt; RGB_ORDER &gt;</a>.</p>
</div>
</div>
@@ -418,7 +412,7 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>CFastLED</b></td></t
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_c_l_e_d_controller.js b/docs/3.1/class_c_l_e_d_controller.js
index fddf11ba..ef8cac9c 100644
--- a/docs/3.1/class_c_l_e_d_controller.js
+++ b/docs/3.1/class_c_l_e_d_controller.js
@@ -2,7 +2,7 @@ var class_c_l_e_d_controller =
[
[ "CLEDController", "class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32", null ],
[ "clearLedData", "class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52", null ],
- [ "clearLeds", "class_c_l_e_d_controller.html#adfa6601c84fefd733904b32ac98b6dae", null ],
+ [ "clearLeds", "class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2", null ],
[ "getAdjustment", "class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb", null ],
[ "getCorrection", "class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c", null ],
[ "getDither", "class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7", null ],
@@ -19,9 +19,7 @@ var class_c_l_e_d_controller =
[ "setTemperature", "class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883", null ],
[ "setTemperature", "class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4", null ],
[ "show", "class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f", null ],
- [ "show", "class_c_l_e_d_controller.html#a3ae4f61fc85ef4609d65c14ca51434c4", null ],
[ "show", "class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb", null ],
- [ "show", "class_c_l_e_d_controller.html#a4a55f6d5b215dc14f9473faea938b4c8", null ],
[ "showColor", "class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92", null ],
[ "showColor", "class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b", null ],
[ "showColor", "class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4", null ],
diff --git a/docs/3.1/class_c_l_e_d_controller__inherit__graph.map b/docs/3.1/class_c_l_e_d_controller__inherit__graph.map
index 57d5536c..e736fcdd 100644
--- a/docs/3.1/class_c_l_e_d_controller__inherit__graph.map
+++ b/docs/3.1/class_c_l_e_d_controller__inherit__graph.map
@@ -1,14 +1,16 @@
<map id="CLEDController" name="CLEDController">
-<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_pixie_controller.html" title="Adafruit Pixie controller class. " alt="" coords="209,378,365,419"/>
-<area shape="rect" id="node11" href="$class_s_m16716_controller.html" title="SM16716 controller class. " alt="" coords="185,444,388,500"/>
-<area shape="rect" id="node12" href="$class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="171,524,402,580"/>
-<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="node10" href="$class_p_i_x_i_e.html" title="PIXIE\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="482,378,651,419"/>
-<area shape="rect" id="node13" href="$class_w_s2803_controller.html" title="WS2803Controller\&lt; DATA\l_PIN, CLOCK_PIN, RGB_ORDER,\l SPI_SPEED \&gt;" alt="" coords="451,524,682,580"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER, LANES,\l MASK \&gt;" alt="" coords="171,184,344,240"/>
+<area shape="rect" id="node3" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="185,265,329,306"/>
+<area shape="rect" id="node4" href="$class_a_p_a102_controller.html" title="APA102 controller class. " alt="" coords="393,5,623,61"/>
+<area shape="rect" id="node5" href="$class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="436,86,580,127"/>
+<area shape="rect" id="node7" href="$class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="407,151,609,193"/>
+<area shape="rect" id="node9" href="$class_l_p_d8806_controller.html" title="LPD8806 controller class. " alt="" coords="407,217,609,273"/>
+<area shape="rect" id="node10" href="$class_p9813_controller.html" title="P9813 controller class. " alt="" coords="423,297,593,353"/>
+<area shape="rect" id="node11" href="$class_pixie_controller.html" title="Adafruit Pixie controller class. " alt="" coords="430,378,586,419"/>
+<area shape="rect" id="node13" href="$class_s_m16716_controller.html" title="SM16716 controller class. " alt="" coords="407,444,609,500"/>
+<area shape="rect" id="node14" href="$class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="393,524,623,580"/>
+<area shape="rect" id="node6" href="$class_d_m_x_s_e_r_i_a_l.html" title="DMXSERIAL\&lt; RGB_ORDER \&gt;" alt="" coords="685,93,891,120"/>
+<area shape="rect" id="node8" href="$class_d_m_x_s_i_m_p_l_e.html" title="DMXSIMPLE\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="697,151,879,193"/>
+<area shape="rect" id="node12" href="$class_p_i_x_i_e.html" title="PIXIE\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="703,378,873,419"/>
+<area shape="rect" id="node15" href="$class_w_s2803_controller.html" title="WS2803Controller\&lt; DATA\l_PIN, CLOCK_PIN, RGB_ORDER,\l SPI_SPEED \&gt;" alt="" coords="673,524,903,580"/>
</map>
diff --git a/docs/3.1/class_c_l_e_d_controller__inherit__graph.md5 b/docs/3.1/class_c_l_e_d_controller__inherit__graph.md5
index fca4b533..0ec73e09 100644
--- a/docs/3.1/class_c_l_e_d_controller__inherit__graph.md5
+++ b/docs/3.1/class_c_l_e_d_controller__inherit__graph.md5
@@ -1 +1 @@
-404538ef44d96680b9d3307faecd3c35 \ No newline at end of file
+a93601591dc2b0b3177718dc70588fbf \ No newline at end of file
diff --git a/docs/3.1/class_c_l_e_d_controller__inherit__graph.png b/docs/3.1/class_c_l_e_d_controller__inherit__graph.png
index c289e41e..f31bb10d 100644
--- a/docs/3.1/class_c_l_e_d_controller__inherit__graph.png
+++ b/docs/3.1/class_c_l_e_d_controller__inherit__graph.png
Binary files differ
diff --git a/docs/3.1/class_c_min_wait-members.html b/docs/3.1/class_c_min_wait-members.html
index 70337110..f3417f62 100644
--- a/docs/3.1/class_c_min_wait-members.html
+++ b/docs/3.1/class_c_min_wait-members.html
@@ -122,7 +122,7 @@ $(document).ready(function(){initNavTree('class_c_min_wait.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_c_min_wait.html b/docs/3.1/class_c_min_wait.html
index 01467cae..7c31d17f 100644
--- a/docs/3.1/class_c_min_wait.html
+++ b/docs/3.1/class_c_min_wait.html
@@ -135,7 +135,7 @@ class CMinWait&lt; WAIT &gt;</h3>
<p>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. </p>
-<p>Definition at line <a class="el" href="fastled__delay_8h_source.html#l00011">11</a> of file <a class="el" href="fastled__delay_8h_source.html">fastled_delay.h</a>.</p>
+<p>Definition at line <a class="el" href="fastled__delay_8h_source.html#l00013">13</a> of file <a class="el" href="fastled__delay_8h_source.html">fastled_delay.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="fastled__delay_8h_source.html">fastled_delay.h</a></li>
</ul>
@@ -145,7 +145,7 @@ class CMinWait&lt; WAIT &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_c_min_wait.html">CMinWait</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_c_pixel_l_e_d_controller-members.html b/docs/3.1/class_c_pixel_l_e_d_controller-members.html
new file mode 100644
index 00000000..576ca043
--- /dev/null
+++ b/docs/3.1/class_c_pixel_l_e_d_controller-members.html
@@ -0,0 +1,165 @@
+<!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="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</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>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('class_c_pixel_l_e_d_controller.html','');});
+</script>
+<div id="doc-content">
+<!-- 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">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt; Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;</a>, including all inherited members.</p>
+<table class="directory">
+ <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_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a>(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><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 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 bgcolor="#f0f0f0" class="even"><td class="entry"><b>CPixelLEDController</b>() (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &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#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_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &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><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &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 bgcolor="#f0f0f0"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER, LANES, MASK &gt; &amp;pixels)=0 (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;</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#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 -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/3.1/class_c_pixel_l_e_d_controller.html b/docs/3.1/class_c_pixel_l_e_d_controller.html
new file mode 100644
index 00000000..30e19935
--- /dev/null
+++ b/docs/3.1/class_c_pixel_l_e_d_controller.html
@@ -0,0 +1,411 @@
+<!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: CPixelLEDController&lt; RGB_ORDER, LANES, MASK &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="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</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>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('class_c_pixel_l_e_d_controller.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="class_c_pixel_l_e_d_controller-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt; Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+</div><!--header-->
+<div class="contents">
+<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
+ <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;:</div>
+<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
+</div>
+<div id="dynsection-0-content" class="dyncontent" style="display:none;">
+<div class="center"><img src="class_c_pixel_l_e_d_controller__inherit__graph.png" border="0" usemap="#_c_pixel_l_e_d_controller_3_01_r_g_b___o_r_d_e_r_00_01_l_a_n_e_s_00_01_m_a_s_k_01_4_inherit__map" alt="Inheritance graph"/></div>
+<map name="_c_pixel_l_e_d_controller_3_01_r_g_b___o_r_d_e_r_00_01_l_a_n_e_s_00_01_m_a_s_k_01_4_inherit__map" id="_c_pixel_l_e_d_controller_3_01_r_g_b___o_r_d_e_r_00_01_l_a_n_e_s_00_01_m_a_s_k_01_4_inherit__map">
+<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="34,5,149,32"/></map>
+<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
+<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
+ <img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;:</div>
+<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
+</div>
+<div id="dynsection-1-content" class="dyncontent" style="display:none;">
+<div class="center"><img src="class_c_pixel_l_e_d_controller__coll__graph.png" border="0" usemap="#_c_pixel_l_e_d_controller_3_01_r_g_b___o_r_d_e_r_00_01_l_a_n_e_s_00_01_m_a_s_k_01_4_coll__map" alt="Collaboration graph"/></div>
+<map name="_c_pixel_l_e_d_controller_3_01_r_g_b___o_r_d_e_r_00_01_l_a_n_e_s_00_01_m_a_s_k_01_4_coll__map" id="_c_pixel_l_e_d_controller_3_01_r_g_b___o_r_d_e_r_00_01_l_a_n_e_s_00_01_m_a_s_k_01_4_coll__map">
+<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="34,133,149,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="62,5,121,32"/></map>
+<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a1ab7248c894ba95c3a71665f5bed2a17"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ab7248c894ba95c3a71665f5bed2a17"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER, LANES, MASK &gt; &amp;pixels)=0</td></tr>
+<tr class="separator:a1ab7248c894ba95c3a71665f5bed2a17"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5569b9e92f75410e03c75bf5764e016"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">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:af5569b9e92f75410e03c75bf5764e016"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#af5569b9e92f75410e03c75bf5764e016">More...</a><br /></td></tr>
+<tr class="separator:af5569b9e92f75410e03c75bf5764e016"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36cc2a15671bae0db53df1e26b4a813c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
+<tr class="memdesc:a36cc2a15671bae0db53df1e26b4a813c"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a36cc2a15671bae0db53df1e26b4a813c">More...</a><br /></td></tr>
+<tr class="separator:a36cc2a15671bae0db53df1e26b4a813c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
+<tr class="memitem:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c560c6d171f117dfd19c0f2ec780a32"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a> ()</td></tr>
+<tr class="memdesc:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">create an led controller object, add it to the chain of controllers <br /></td></tr>
+<tr class="separator:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af877a15a5ec452780fbd1d359b8a9913 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af877a15a5ec452780fbd1d359b8a9913"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#af877a15a5ec452780fbd1d359b8a9913">init</a> ()=0</td></tr>
+<tr class="memdesc:af877a15a5ec452780fbd1d359b8a9913 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the LED controller <br /></td></tr>
+<tr class="separator:af877a15a5ec452780fbd1d359b8a9913 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd0f6ce4701e76ebc4b916e0a04134f2"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a> (int nLeds)</td></tr>
+<tr class="memdesc:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
+<tr class="separator:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe990b9a65f5bff1f391cc5c28752abb"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, uint8_t brightness)</td></tr>
+<tr class="memdesc:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">show function w/integer brightness, will scale for color correction and temperature <br /></td></tr>
+<tr class="separator:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a253069a734075b298da65d59d6efbb3b inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a253069a734075b298da65d59d6efbb3b"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">showColor</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;data, int nLeds, uint8_t brightness)</td></tr>
+<tr class="memdesc:a253069a734075b298da65d59d6efbb3b inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">show function w/integer brightness, will scale for color correction and temperature <br /></td></tr>
+<tr class="separator:a253069a734075b298da65d59d6efbb3b inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa4124b1cf5546ad028166e7884276076 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa4124b1cf5546ad028166e7884276076"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a> (uint8_t brightness=255)</td></tr>
+<tr class="memdesc:aa4124b1cf5546ad028166e7884276076 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">show function using the "attached to this controller" led data <br /></td></tr>
+<tr class="separator:aa4124b1cf5546ad028166e7884276076 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ccd149ab7282817041a1ae4e586a9d4 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ccd149ab7282817041a1ae4e586a9d4"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">showColor</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;data, uint8_t brightness=255)</td></tr>
+<tr class="memdesc:a4ccd149ab7282817041a1ae4e586a9d4 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">show the given color on the led strip <br /></td></tr>
+<tr class="separator:a4ccd149ab7282817041a1ae4e586a9d4 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a06cfb05ad6e0f7982328928051f3f565"></a>
+<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#a06cfb05ad6e0f7982328928051f3f565">next</a> ()</td></tr>
+<tr class="memdesc:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the next controller in the chain after this one. will return NULL at the end of the chain <br /></td></tr>
+<tr class="separator:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b08378b29f92c5def65175ec5334037"></a>
+<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds)</td></tr>
+<tr class="memdesc:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the default array of leds to be used by this controller <br /></td></tr>
+<tr class="separator:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b61c81e004c96ff670a2742057a5a52 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b61c81e004c96ff670a2742057a5a52"></a>
+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: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>
+<tr class="separator:a5e86c45c89ebfb7b21f9045790302399 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a278a429964bec69b3c91486665e61c0a inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a278a429964bec69b3c91486665e61c0a"></a>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a> (int x)</td></tr>
+<tr class="memdesc:a278a429964bec69b3c91486665e61c0a inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the n'th item in the controller. <br /></td></tr>
+<tr class="separator:a278a429964bec69b3c91486665e61c0a inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0703d15ea35deaf94eed59ae27bc3517 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0703d15ea35deaf94eed59ae27bc3517"></a>
+<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a> (uint8_t ditherMode=BINARY_DITHER)</td></tr>
+<tr class="memdesc:a0703d15ea35deaf94eed59ae27bc3517 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the dithering mode for this controller to use <br /></td></tr>
+<tr class="separator:a0703d15ea35deaf94eed59ae27bc3517 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a676f705adf93898739a405b85150a3e7 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a676f705adf93898739a405b85150a3e7"></a>
+uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a> ()</td></tr>
+<tr class="memdesc:a676f705adf93898739a405b85150a3e7 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the dithering option currently set for this controller <br /></td></tr>
+<tr class="separator:a676f705adf93898739a405b85150a3e7 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9620d0a629a6a3294c71f5f8dbfe91b8 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9620d0a629a6a3294c71f5f8dbfe91b8"></a>
+<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> correction)</td></tr>
+<tr class="memdesc:a9620d0a629a6a3294c71f5f8dbfe91b8 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">the the color corrction to use for this controller, expressed as an rgb object <br /></td></tr>
+<tr class="separator:a9620d0a629a6a3294c71f5f8dbfe91b8 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a74c43977660742e8185fd666e5d66bf9 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a74c43977660742e8185fd666e5d66bf9"></a>
+<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a> (<a class="el" href="group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8">LEDColorCorrection</a> correction)</td></tr>
+<tr class="memdesc:a74c43977660742e8185fd666e5d66bf9 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the color correction to use for this controller <br /></td></tr>
+<tr class="separator:a74c43977660742e8185fd666e5d66bf9 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a168c661bb9b4a5dfc797b69d3900b26c inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a168c661bb9b4a5dfc797b69d3900b26c"></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#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a> ()</td></tr>
+<tr class="memdesc:a168c661bb9b4a5dfc797b69d3900b26c inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the correction value used by this controller <br /></td></tr>
+<tr class="separator:a168c661bb9b4a5dfc797b69d3900b26c inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a69ac4a882bdc4a813ae957ddedb5a883 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69ac4a882bdc4a813ae957ddedb5a883"></a>
+<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> temperature)</td></tr>
+<tr class="memdesc:a69ac4a882bdc4a813ae957ddedb5a883 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the color temperature, aka white point, for this controller <br /></td></tr>
+<tr class="separator:a69ac4a882bdc4a813ae957ddedb5a883 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1e6d35be39f9f67aacdb4709ea914ab4 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1e6d35be39f9f67aacdb4709ea914ab4"></a>
+<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a> (<a class="el" href="group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9">ColorTemperature</a> temperature)</td></tr>
+<tr class="memdesc:a1e6d35be39f9f67aacdb4709ea914ab4 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the color temperature, aka white point, for this controller <br /></td></tr>
+<tr class="separator:a1e6d35be39f9f67aacdb4709ea914ab4 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc94e9d029d7e59f56a4ab845f3de32d inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afc94e9d029d7e59f56a4ab845f3de32d"></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#afc94e9d029d7e59f56a4ab845f3de32d">getTemperature</a> ()</td></tr>
+<tr class="memdesc:afc94e9d029d7e59f56a4ab845f3de32d inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the color temperature, aka whipe point, for this controller <br /></td></tr>
+<tr class="separator:afc94e9d029d7e59f56a4ab845f3de32d inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af6173cca91ee446766cc15102990d7bb inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af6173cca91ee446766cc15102990d7bb"></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#af6173cca91ee446766cc15102990d7bb">getAdjustment</a> (uint8_t scale)</td></tr>
+<tr class="memdesc:af6173cca91ee446766cc15102990d7bb inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the combined brightness/color adjustment for this controller. <br /></td></tr>
+<tr class="separator:af6173cca91ee446766cc15102990d7bb inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3beb4aff15617bc781c1e49178dd9975 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3beb4aff15617bc781c1e49178dd9975"></a>
+virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getMaxRefreshRate</b> () const </td></tr>
+<tr class="separator:a3beb4aff15617bc781c1e49178dd9975 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_static_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
+<tr class="memitem:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a75a5a6ea50899409d875d72393323ca0"></a>
+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>
+<tr class="separator:a4672f8f1e93d5df90685cb62c4ebbe0e inherit pro_attribs_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaad2e8eeedcb36298e0c45d11bcf14b5 inherit pro_attribs_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaad2e8eeedcb36298e0c45d11bcf14b5"></a>
+<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>m_pNext</b></td></tr>
+<tr class="separator:aaad2e8eeedcb36298e0c45d11bcf14b5 inherit pro_attribs_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4cd7290071572a9844b79b66239cc40b inherit pro_attribs_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4cd7290071572a9844b79b66239cc40b"></a>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_ColorCorrection</b></td></tr>
+<tr class="separator:a4cd7290071572a9844b79b66239cc40b inherit pro_attribs_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb7c56ce6c3f11f392613c3b9bf8c727 inherit pro_attribs_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adb7c56ce6c3f11f392613c3b9bf8c727"></a>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>m_ColorTemperature</b></td></tr>
+<tr class="separator:adb7c56ce6c3f11f392613c3b9bf8c727 inherit pro_attribs_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9af9dd5c08991667e4062396eec5bd8a inherit pro_attribs_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9af9dd5c08991667e4062396eec5bd8a"></a>
+EDitherMode&#160;</td><td class="memItemRight" valign="bottom"><b>m_DitherMode</b></td></tr>
+<tr class="separator:a9af9dd5c08991667e4062396eec5bd8a inherit pro_attribs_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab4d0f0ed5a214b675c9a03aecd7b0df8 inherit pro_attribs_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab4d0f0ed5a214b675c9a03aecd7b0df8"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>m_nLeds</b></td></tr>
+<tr class="separator:ab4d0f0ed5a214b675c9a03aecd7b0df8 inherit pro_attribs_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_static_attribs_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
+<tr class="memitem:afc138dfd8c32629cf4ecf0d430397e77 inherit pro_static_attribs_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afc138dfd8c32629cf4ecf0d430397e77"></a>
+static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>m_pHead</b> = NULL</td></tr>
+<tr class="separator:afc138dfd8c32629cf4ecf0d430397e77 inherit pro_static_attribs_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aba5aa24458cb37f0f5e6b18a74408a47 inherit pro_static_attribs_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aba5aa24458cb37f0f5e6b18a74408a47"></a>
+static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>m_pTail</b> = NULL</td></tr>
+<tr class="separator:aba5aa24458cb37f0f5e6b18a74408a47 inherit pro_static_attribs_class_c_l_e_d_controller"><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;EOrder RGB_ORDER, int LANES = 1, uint32_t MASK = 0xFFFFFFFF&gt;<br />
+class CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;</h3>
+
+
+<p>Definition at line <a class="el" href="controller_8h_source.html#l00374">374</a> of file <a class="el" href="controller_8h_source.html">controller.h</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a36cc2a15671bae0db53df1e26b4a813c"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;EOrder RGB_ORDER, int LANES = 1, uint32_t MASK = 0xFFFFFFFF&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController</a>&lt; RGB_ORDER, LANES, MASK &gt;::show </td>
+ <td>(</td>
+ <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
+ <td class="paramname"><em>data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>nLeds</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
+ <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>write the passed in rgb data out to the leds managed by this controller </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">data</td><td>the rgb data to write out to the strip </td></tr>
+ <tr><td class="paramname">nLeds</td><td>the number of leds being written out </td></tr>
+ <tr><td class="paramname">scale</td><td>the rgb scaling to apply to each led before writing it out </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Implements <a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">CLEDController</a>.</p>
+
+<p>Definition at line <a class="el" href="controller_8h_source.html#l00391">391</a> of file <a class="el" href="controller_8h_source.html">controller.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="af5569b9e92f75410e03c75bf5764e016"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;EOrder RGB_ORDER, int LANES = 1, uint32_t MASK = 0xFFFFFFFF&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">virtual void <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController</a>&lt; RGB_ORDER, LANES, MASK &gt;::showColor </td>
+ <td>(</td>
+ <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td>
+ <td class="paramname"><em>data</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>nLeds</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
+ <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>set all the leds on the controller to a given color </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">data</td><td>the crgb color to set the leds to </td></tr>
+ <tr><td class="paramname">nLeds</td><td>the numner of leds to set to this color </td></tr>
+ <tr><td class="paramname">scale</td><td>the rgb scaling value for outputting color </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Implements <a class="el" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">CLEDController</a>.</p>
+
+<p>Definition at line <a class="el" href="controller_8h_source.html#l00382">382</a> of file <a class="el" href="controller_8h_source.html">controller.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="controller_8h_source.html">controller.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController</a></li>
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/3.1/class_c_pixel_l_e_d_controller.js b/docs/3.1/class_c_pixel_l_e_d_controller.js
new file mode 100644
index 00000000..a7790f20
--- /dev/null
+++ b/docs/3.1/class_c_pixel_l_e_d_controller.js
@@ -0,0 +1,7 @@
+var class_c_pixel_l_e_d_controller =
+[
+ [ "CPixelLEDController", "class_c_pixel_l_e_d_controller.html#aa4ac3acb222dd0d31563b0ac32fa2f50", null ],
+ [ "show", "class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c", null ],
+ [ "showColor", "class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016", null ],
+ [ "showPixels", "class_c_pixel_l_e_d_controller.html#a1ab7248c894ba95c3a71665f5bed2a17", null ]
+]; \ No newline at end of file
diff --git a/docs/3.1/class_c_pixel_l_e_d_controller__coll__graph.map b/docs/3.1/class_c_pixel_l_e_d_controller__coll__graph.map
new file mode 100644
index 00000000..c0a5499d
--- /dev/null
+++ b/docs/3.1/class_c_pixel_l_e_d_controller__coll__graph.map
@@ -0,0 +1,4 @@
+<map id="CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;" name="CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;">
+<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="34,133,149,160"/>
+<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="62,5,121,32"/>
+</map>
diff --git a/docs/3.1/class_c_pixel_l_e_d_controller__coll__graph.md5 b/docs/3.1/class_c_pixel_l_e_d_controller__coll__graph.md5
new file mode 100644
index 00000000..fe718413
--- /dev/null
+++ b/docs/3.1/class_c_pixel_l_e_d_controller__coll__graph.md5
@@ -0,0 +1 @@
+67074fce05deb07b4bc87632a33f34a7 \ No newline at end of file
diff --git a/docs/3.1/class_c_pixel_l_e_d_controller__coll__graph.png b/docs/3.1/class_c_pixel_l_e_d_controller__coll__graph.png
new file mode 100644
index 00000000..a4273923
--- /dev/null
+++ b/docs/3.1/class_c_pixel_l_e_d_controller__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_c_pixel_l_e_d_controller__inherit__graph.map b/docs/3.1/class_c_pixel_l_e_d_controller__inherit__graph.map
new file mode 100644
index 00000000..40a41ce2
--- /dev/null
+++ b/docs/3.1/class_c_pixel_l_e_d_controller__inherit__graph.map
@@ -0,0 +1,3 @@
+<map id="CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;" name="CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;">
+<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="34,5,149,32"/>
+</map>
diff --git a/docs/3.1/class_c_pixel_l_e_d_controller__inherit__graph.md5 b/docs/3.1/class_c_pixel_l_e_d_controller__inherit__graph.md5
new file mode 100644
index 00000000..213bc62f
--- /dev/null
+++ b/docs/3.1/class_c_pixel_l_e_d_controller__inherit__graph.md5
@@ -0,0 +1 @@
+1185ddc49cdd52f886f51537ca75bc1f \ No newline at end of file
diff --git a/docs/3.1/class_c_pixel_l_e_d_controller__inherit__graph.png b/docs/3.1/class_c_pixel_l_e_d_controller__inherit__graph.png
new file mode 100644
index 00000000..a884f557
--- /dev/null
+++ b/docs/3.1/class_c_pixel_l_e_d_controller__inherit__graph.png
Binary files differ
diff --git a/docs/3.1/class_c_pixel_view-members.html b/docs/3.1/class_c_pixel_view-members.html
index 5962927d..4a59c0e8 100644
--- a/docs/3.1/class_c_pixel_view-members.html
+++ b/docs/3.1/class_c_pixel_view-members.html
@@ -125,65 +125,66 @@ $(document).ready(function(){initNavTree('class_c_pixel_view.html','');});
<tr class="even"><td class="entry"><a class="el" href="class_c_pixel_view.html#a051455d30c4390abd81bbb23182d22a8">CPixelView</a>(PIXEL_TYPE *_leds, int _len)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_c_pixel_view.html#ada24d4d93b849bc31aec124f682b836a">CPixelView</a>(PIXEL_TYPE *_leds, int _start, int _end)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>dir</b> (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>end</b>() (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>end</b>() const (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>end_pos</b> (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231">fadeLightBy</a>(uint8_t fadefactor)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a4861b6938f1cb9f8f885a9f3af13b8a9">fadeToBlackBy</a>(uint8_t fade)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_gradient</b>(const CHSV &amp;startcolor, const CHSV &amp;endcolor, TGradientDirectionCode directionCode=SHORTEST_HUES) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_gradient</b>(const CHSV &amp;c1, const CHSV &amp;c2, const CHSV &amp;c3, TGradientDirectionCode directionCode=SHORTEST_HUES) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_gradient</b>(const CHSV &amp;c1, const CHSV &amp;c2, const CHSV &amp;c3, const CHSV &amp;c4, TGradientDirectionCode directionCode=SHORTEST_HUES) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_gradient_RGB</b>(const PIXEL_TYPE &amp;startcolor, const PIXEL_TYPE &amp;endcolor, TGradientDirectionCode directionCode=SHORTEST_HUES) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_gradient_RGB</b>(const PIXEL_TYPE &amp;c1, const PIXEL_TYPE &amp;c2, const PIXEL_TYPE &amp;c3) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_gradient_RGB</b>(const PIXEL_TYPE &amp;c1, const PIXEL_TYPE &amp;c2, const PIXEL_TYPE &amp;c3, const PIXEL_TYPE &amp;c4) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_rainbow</b>(uint8_t initialhue, uint8_t deltahue=5) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_solid</b>(const PIXEL_TYPE &amp;color) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_solid</b>(const CHSV &amp;color) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>iterator</b> typedef (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>leds</b> (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>len</b> (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>napplyGamma_video</b>(float gamma) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>napplyGamma_video</b>(float gammaR, float gammaG, float gammaB) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>nblend</b>(const PIXEL_TYPE &amp;overlay, fract8 amountOfOverlay) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>nblend</b>(const CPixelView &amp;rhs, fract8 amountOfOverlay) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1">nscale8</a>(uint8_t scaledown)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#ad1b0bbeb416db7f4dd1139ea23491330">nscale8</a>(PIXEL_TYPE &amp;scaledown)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a195deb4034393308c9573454ac5e56ae">nscale8</a>(CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82">nscale8_video</a>(uint8_t scaledown)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a48b70c6f162cb898a38431bb63655f79">operator bool</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#af2f7d2d33f63d7aaf024458d0e710320">operator PIXEL_TYPE *</a>() const </td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a7ad3ae5a948047704c58458b13bdb53c">operator!=</a>(const CPixelView &amp;rhs) const </td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a18f14f953dce5153659f30a1fc47ab2d">operator%=</a>(uint8_t scaledown)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#aec83b9f23486e0efd0729e3e5be87f81">operator&amp;=</a>(const PIXEL_TYPE &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a0d3f84118cabfbd0e8b9e8556d6fdc37">operator&amp;=</a>(const CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a1778ed3e4aaa07e64577128429de4c10">operator&amp;=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#aa2b10d01a183235fcf62e50049c49dd4">operator()</a>(int start, int end)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a3043e411e2b48b294574e0fbe848991c">operator*=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#abfb38ddcb524aa8b7a385c590823aaf6">operator++</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a1425907efc3ca64130e90095f6a254b9">operator++</a>(int DUMMY_ARG)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a7830b1011e8f6f13298c3500eba2707a">operator+=</a>(CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#ad6e7a725732d4fff0dc4fa5c29015127">operator-</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#ab31623e9f9036c6571cee8054b696621">operator--</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#aef542dfd9d18f1c62bd8dadaa88a76ae">operator--</a>(int DUMMY_ARG)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a1200796b444865d101184f0c07e1915c">operator-=</a>(CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a1f1a98d480cc62635f24e62c68c14f65">operator/=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#aa35b7eb6c9b8d2510df02af26db03f29">operator=</a>(const PIXEL_TYPE &amp;color)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a3e7c2cf9a8dc476f9a92850d69b7c499">operator=</a>(const CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a13b5daab212774a2957473acea4e843b">operator==</a>(const CPixelView &amp;rhs) const </td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#af98febdccd4f7f18afbfbb0abfb4413d">operator&gt;&gt;=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#aba3ece62dbd9f340a0cd78a4c69ab116">operator[]</a>(int x) const </td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#ad737aca28b069acb1bb350e635be83f4">operator|=</a>(const PIXEL_TYPE &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a0acfbbdeb7c17986ddc806e9df64461c">operator|=</a>(const CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a2e5576eb742184423d130b4caebd830c">operator|=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a384417cfef1e38aa24fde4673fd8eaac">reversed</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e">size</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#afb57aeebbd762d7ead044a12fd51f639">subFromRGB</a>(uint8_t inc)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a1f32c60d83428f27d3ec899442b82410">dump</a>() const </td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>end</b>() (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>end</b>() const (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>end_pos</b> (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231">fadeLightBy</a>(uint8_t fadefactor)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a4861b6938f1cb9f8f885a9f3af13b8a9">fadeToBlackBy</a>(uint8_t fade)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_gradient</b>(const CHSV &amp;startcolor, const CHSV &amp;endcolor, TGradientDirectionCode directionCode=SHORTEST_HUES) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_gradient</b>(const CHSV &amp;c1, const CHSV &amp;c2, const CHSV &amp;c3, TGradientDirectionCode directionCode=SHORTEST_HUES) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_gradient</b>(const CHSV &amp;c1, const CHSV &amp;c2, const CHSV &amp;c3, const CHSV &amp;c4, TGradientDirectionCode directionCode=SHORTEST_HUES) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_gradient_RGB</b>(const PIXEL_TYPE &amp;startcolor, const PIXEL_TYPE &amp;endcolor, TGradientDirectionCode directionCode=SHORTEST_HUES) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_gradient_RGB</b>(const PIXEL_TYPE &amp;c1, const PIXEL_TYPE &amp;c2, const PIXEL_TYPE &amp;c3) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_gradient_RGB</b>(const PIXEL_TYPE &amp;c1, const PIXEL_TYPE &amp;c2, const PIXEL_TYPE &amp;c3, const PIXEL_TYPE &amp;c4) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_rainbow</b>(uint8_t initialhue, uint8_t deltahue=5) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_solid</b>(const PIXEL_TYPE &amp;color) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_solid</b>(const CHSV &amp;color) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>iterator</b> typedef (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>leds</b> (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>len</b> (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>napplyGamma_video</b>(float gamma) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>napplyGamma_video</b>(float gammaR, float gammaG, float gammaB) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>nblend</b>(const PIXEL_TYPE &amp;overlay, fract8 amountOfOverlay) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>nblend</b>(const CPixelView &amp;rhs, fract8 amountOfOverlay) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1">nscale8</a>(uint8_t scaledown)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#ad1b0bbeb416db7f4dd1139ea23491330">nscale8</a>(PIXEL_TYPE &amp;scaledown)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a195deb4034393308c9573454ac5e56ae">nscale8</a>(CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82">nscale8_video</a>(uint8_t scaledown)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a48b70c6f162cb898a38431bb63655f79">operator bool</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#af2f7d2d33f63d7aaf024458d0e710320">operator PIXEL_TYPE *</a>() const </td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a7ad3ae5a948047704c58458b13bdb53c">operator!=</a>(const CPixelView &amp;rhs) const </td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a18f14f953dce5153659f30a1fc47ab2d">operator%=</a>(uint8_t scaledown)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#aec83b9f23486e0efd0729e3e5be87f81">operator&amp;=</a>(const PIXEL_TYPE &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a0d3f84118cabfbd0e8b9e8556d6fdc37">operator&amp;=</a>(const CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a1778ed3e4aaa07e64577128429de4c10">operator&amp;=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#aa2b10d01a183235fcf62e50049c49dd4">operator()</a>(int start, int end)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a3043e411e2b48b294574e0fbe848991c">operator*=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#abfb38ddcb524aa8b7a385c590823aaf6">operator++</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a1425907efc3ca64130e90095f6a254b9">operator++</a>(int DUMMY_ARG)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a7830b1011e8f6f13298c3500eba2707a">operator+=</a>(CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#ad6e7a725732d4fff0dc4fa5c29015127">operator-</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#ab31623e9f9036c6571cee8054b696621">operator--</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#aef542dfd9d18f1c62bd8dadaa88a76ae">operator--</a>(int DUMMY_ARG)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a1200796b444865d101184f0c07e1915c">operator-=</a>(CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a1f1a98d480cc62635f24e62c68c14f65">operator/=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#aa35b7eb6c9b8d2510df02af26db03f29">operator=</a>(const PIXEL_TYPE &amp;color)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a3e7c2cf9a8dc476f9a92850d69b7c499">operator=</a>(const CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a13b5daab212774a2957473acea4e843b">operator==</a>(const CPixelView &amp;rhs) const </td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#af98febdccd4f7f18afbfbb0abfb4413d">operator&gt;&gt;=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#aba3ece62dbd9f340a0cd78a4c69ab116">operator[]</a>(int x) const </td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#ad737aca28b069acb1bb350e635be83f4">operator|=</a>(const PIXEL_TYPE &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a0acfbbdeb7c17986ddc806e9df64461c">operator|=</a>(const CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a2e5576eb742184423d130b4caebd830c">operator|=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#a384417cfef1e38aa24fde4673fd8eaac">reversed</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e">size</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &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_pixel_view.html#afb57aeebbd762d7ead044a12fd51f639">subFromRGB</a>(uint8_t inc)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_c_pixel_view.html b/docs/3.1/class_c_pixel_view.html
index a5fbf3a4..1f449deb 100644
--- a/docs/3.1/class_c_pixel_view.html
+++ b/docs/3.1/class_c_pixel_view.html
@@ -128,8 +128,6 @@ $(document).ready(function(){initNavTree('class_c_pixel_view.html','');});
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_c_pixel_view__coll__graph.png" border="0" usemap="#_c_pixel_view_3_01_p_i_x_e_l___t_y_p_e_01_4_coll__map" alt="Collaboration graph"/></div>
-<map name="_c_pixel_view_3_01_p_i_x_e_l___t_y_p_e_01_4_coll__map" id="_c_pixel_view_3_01_p_i_x_e_l___t_y_p_e_01_4_coll__map">
-</map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
@@ -189,6 +187,8 @@ PIXEL_TYPE &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el
<tr class="memitem:aa35b7eb6c9b8d2510df02af26db03f29"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_pixel_view.html">CPixelView</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_view.html#aa35b7eb6c9b8d2510df02af26db03f29">operator=</a> (const PIXEL_TYPE &amp;color)</td></tr>
<tr class="memdesc:aa35b7eb6c9b8d2510df02af26db03f29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign the passed in color to all elements in this set. <a href="#aa35b7eb6c9b8d2510df02af26db03f29">More...</a><br /></td></tr>
<tr class="separator:aa35b7eb6c9b8d2510df02af26db03f29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f32c60d83428f27d3ec899442b82410"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_view.html#a1f32c60d83428f27d3ec899442b82410">dump</a> () const </td></tr>
+<tr class="separator:a1f32c60d83428f27d3ec899442b82410"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e7c2cf9a8dc476f9a92850d69b7c499"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_pixel_view.html">CPixelView</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_view.html#a3e7c2cf9a8dc476f9a92850d69b7c499">operator=</a> (const <a class="el" href="class_c_pixel_view.html">CPixelView</a> &amp;rhs)</td></tr>
<tr class="memdesc:a3e7c2cf9a8dc476f9a92850d69b7c499"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the contents of the passed in set to our set. <a href="#a3e7c2cf9a8dc476f9a92850d69b7c499">More...</a><br /></td></tr>
<tr class="separator:a3e7c2cf9a8dc476f9a92850d69b7c499"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -376,7 +376,7 @@ class CPixelView&lt; PIXEL_TYPE &gt;</h3>
<p>Represents a set of <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> led objects. </p>
<p>Provides the [] array operator, and works like a normal array in that case. This should be kept in sync with the set of functions provided by <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> as well as functions in colorutils. Note that a pixel set is a window into another set of led data, it is not its own set of led data. </p>
-<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00008">8</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
+<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00010">10</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a051455d30c4390abd81bbb23182d22a8"></a>
<div class="memitem">
@@ -421,7 +421,7 @@ template&lt;class PIXEL_TYPE&gt; </div>
</dd>
</dl>
-<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00024">24</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
+<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00026">26</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
</div>
</div>
@@ -475,11 +475,39 @@ template&lt;class PIXEL_TYPE&gt; </div>
</dd>
</dl>
-<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00031">31</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
+<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00033">33</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a1f32c60d83428f27d3ec899442b82410"></a>
+<div class="memitem">
+<div class="memproto">
+<div class="memtemplate">
+template&lt;class PIXEL_TYPE&gt; </div>
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void <a class="el" href="class_c_pixel_view.html">CPixelView</a>&lt; PIXEL_TYPE &gt;::dump </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</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>Serial.print("len: "); Serial.print(len); Serial.print(", dir:"); Serial.print((int)dir); Serial.print(", range:"); Serial.print((uint32_t)leds); Serial.print("-"); Serial.print((uint32_t)end_pos); Serial.print(", diff:"); Serial.print((int32_t)(end_pos - leds)); Serial.println("");</p>
+
+<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00076">76</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="aa2b10d01a183235fcf62e50049c49dd4"></a>
<div class="memitem">
<div class="memproto">
@@ -523,7 +551,7 @@ template&lt;class PIXEL_TYPE&gt; </div>
</dd>
</dl>
-<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00054">54</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
+<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00056">56</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
</div>
</div>
@@ -558,7 +586,7 @@ template&lt;class PIXEL_TYPE&gt; </div>
</dd>
</dl>
-<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00061">61</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
+<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00063">63</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
</div>
</div>
@@ -594,7 +622,7 @@ template&lt;class PIXEL_TYPE&gt; </div>
</dd>
</dl>
-<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00068">68</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
+<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00070">70</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
</div>
</div>
@@ -625,7 +653,7 @@ template&lt;class PIXEL_TYPE&gt; </div>
<p>Copy the contents of the passed in set to our set. </p>
<p>Note if one set is smaller than the other, only the smallest number of items will be copied over. </p>
-<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00082">82</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
+<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00087">87</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
</div>
</div>
@@ -655,7 +683,7 @@ template&lt;class PIXEL_TYPE&gt; </div>
<p>Whether or not this set goes backwards. </p>
<dl class="section return"><dt>Returns</dt><dd>whether or not the set is backwards </dd></dl>
-<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00039">39</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
+<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00041">41</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
</div>
</div>
@@ -685,7 +713,7 @@ template&lt;class PIXEL_TYPE&gt; </div>
<p>Get the size of this set. </p>
<dl class="section return"><dt>Returns</dt><dd>the size of the set </dd></dl>
-<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00035">35</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
+<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00037">37</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
</div>
</div>
@@ -698,7 +726,7 @@ template&lt;class PIXEL_TYPE&gt; </div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_c_pixel_view.html">CPixelView</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_c_pixel_view.js b/docs/3.1/class_c_pixel_view.js
index 7bf6a31a..1608d817 100644
--- a/docs/3.1/class_c_pixel_view.js
+++ b/docs/3.1/class_c_pixel_view.js
@@ -12,6 +12,7 @@ var class_c_pixel_view =
[ "blur1d", "class_c_pixel_view.html#a9814a52e2de74315d073a7de9e20a0f7", null ],
[ "cbegin", "class_c_pixel_view.html#aa33cb777acc46071c85cbe42cbfc9270", null ],
[ "cend", "class_c_pixel_view.html#a9abaa0edf2f8ab01159dbe308e37bdec", null ],
+ [ "dump", "class_c_pixel_view.html#a1f32c60d83428f27d3ec899442b82410", null ],
[ "end", "class_c_pixel_view.html#a5492e41e8b06dc599ab81b465c4236ed", null ],
[ "end", "class_c_pixel_view.html#aca5b4326ae86d90d2e8248f855623e82", null ],
[ "fadeLightBy", "class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231", null ],
diff --git a/docs/3.1/class_c_pixel_view_1_1pixelset__iterator__base-members.html b/docs/3.1/class_c_pixel_view_1_1pixelset__iterator__base-members.html
index 9df5432f..bbcf23b1 100644
--- a/docs/3.1/class_c_pixel_view_1_1pixelset__iterator__base-members.html
+++ b/docs/3.1/class_c_pixel_view_1_1pixelset__iterator__base-members.html
@@ -125,7 +125,7 @@ $(document).ready(function(){initNavTree('class_c_pixel_view_1_1pixelset__iterat
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_c_pixel_view_1_1pixelset__iterator__base.html b/docs/3.1/class_c_pixel_view_1_1pixelset__iterator__base.html
index c3a2d21c..5bd4f791 100644
--- a/docs/3.1/class_c_pixel_view_1_1pixelset__iterator__base.html
+++ b/docs/3.1/class_c_pixel_view_1_1pixelset__iterator__base.html
@@ -146,7 +146,7 @@ template&lt;class T&gt;<br />
class CPixelView&lt; PIXEL_TYPE &gt;::pixelset_iterator_base&lt; T &gt;</h3>
-<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00253">253</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
+<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00258">258</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="pixelset_8h_source.html">pixelset.h</a></li>
</ul>
@@ -156,7 +156,7 @@ class CPixelView&lt; PIXEL_TYPE &gt;::pixelset_iterator_base&lt; T &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_c_pixel_view.html">CPixelView</a></li><li class="navelem"><a class="el" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_c_r_g_b_array-members.html b/docs/3.1/class_c_r_g_b_array-members.html
index 1e213819..0e47d220 100644
--- a/docs/3.1/class_c_r_g_b_array-members.html
+++ b/docs/3.1/class_c_r_g_b_array-members.html
@@ -126,65 +126,66 @@ $(document).ready(function(){initNavTree('class_c_r_g_b_array.html','');});
<tr><td class="entry"><a class="el" href="class_c_pixel_view.html#ada24d4d93b849bc31aec124f682b836a">CPixelView</a>(CRGB *_leds, int _start, int _end)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CRGBArray</b>() (defined in <a class="el" href="class_c_r_g_b_array.html">CRGBArray&lt; SIZE &gt;</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_array.html">CRGBArray&lt; SIZE &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>dir</b> (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>end</b>() (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>end</b>() const (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>end_pos</b> (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231">fadeLightBy</a>(uint8_t fadefactor)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a4861b6938f1cb9f8f885a9f3af13b8a9">fadeToBlackBy</a>(uint8_t fade)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_gradient</b>(const CHSV &amp;startcolor, const CHSV &amp;endcolor, TGradientDirectionCode directionCode=SHORTEST_HUES) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_gradient</b>(const CHSV &amp;c1, const CHSV &amp;c2, const CHSV &amp;c3, TGradientDirectionCode directionCode=SHORTEST_HUES) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_gradient</b>(const CHSV &amp;c1, const CHSV &amp;c2, const CHSV &amp;c3, const CHSV &amp;c4, TGradientDirectionCode directionCode=SHORTEST_HUES) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_gradient_RGB</b>(const CRGB &amp;startcolor, const CRGB &amp;endcolor, TGradientDirectionCode directionCode=SHORTEST_HUES) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_gradient_RGB</b>(const CRGB &amp;c1, const CRGB &amp;c2, const CRGB &amp;c3) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_gradient_RGB</b>(const CRGB &amp;c1, const CRGB &amp;c2, const CRGB &amp;c3, const CRGB &amp;c4) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_rainbow</b>(uint8_t initialhue, uint8_t deltahue=5) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_solid</b>(const CRGB &amp;color) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_solid</b>(const CHSV &amp;color) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>iterator</b> typedef (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>leds</b> (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>len</b> (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>napplyGamma_video</b>(float gamma) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>napplyGamma_video</b>(float gammaR, float gammaG, float gammaB) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>nblend</b>(const CRGB &amp;overlay, fract8 amountOfOverlay) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>nblend</b>(const CPixelView &amp;rhs, fract8 amountOfOverlay) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1">nscale8</a>(uint8_t scaledown)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#ad1b0bbeb416db7f4dd1139ea23491330">nscale8</a>(CRGB &amp;scaledown)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a195deb4034393308c9573454ac5e56ae">nscale8</a>(CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82">nscale8_video</a>(uint8_t scaledown)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a48b70c6f162cb898a38431bb63655f79">operator bool</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#af2f7d2d33f63d7aaf024458d0e710320">operator CRGB *</a>() const</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a7ad3ae5a948047704c58458b13bdb53c">operator!=</a>(const CPixelView &amp;rhs) const</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a18f14f953dce5153659f30a1fc47ab2d">operator%=</a>(uint8_t scaledown)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#aec83b9f23486e0efd0729e3e5be87f81">operator&amp;=</a>(const CRGB &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a0d3f84118cabfbd0e8b9e8556d6fdc37">operator&amp;=</a>(const CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a1778ed3e4aaa07e64577128429de4c10">operator&amp;=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#aa2b10d01a183235fcf62e50049c49dd4">operator()</a>(int start, int end)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a3043e411e2b48b294574e0fbe848991c">operator*=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#abfb38ddcb524aa8b7a385c590823aaf6">operator++</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a1425907efc3ca64130e90095f6a254b9">operator++</a>(int DUMMY_ARG)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a7830b1011e8f6f13298c3500eba2707a">operator+=</a>(CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#ad6e7a725732d4fff0dc4fa5c29015127">operator-</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#ab31623e9f9036c6571cee8054b696621">operator--</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#aef542dfd9d18f1c62bd8dadaa88a76ae">operator--</a>(int DUMMY_ARG)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a1200796b444865d101184f0c07e1915c">operator-=</a>(CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a1f1a98d480cc62635f24e62c68c14f65">operator/=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#aa35b7eb6c9b8d2510df02af26db03f29">operator=</a>(const CRGB &amp;color)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a3e7c2cf9a8dc476f9a92850d69b7c499">operator=</a>(const CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a13b5daab212774a2957473acea4e843b">operator==</a>(const CPixelView &amp;rhs) const</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#af98febdccd4f7f18afbfbb0abfb4413d">operator&gt;&gt;=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#aba3ece62dbd9f340a0cd78a4c69ab116">operator[]</a>(int x) const</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#ad737aca28b069acb1bb350e635be83f4">operator|=</a>(const CRGB &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a0acfbbdeb7c17986ddc806e9df64461c">operator|=</a>(const CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a2e5576eb742184423d130b4caebd830c">operator|=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a384417cfef1e38aa24fde4673fd8eaac">reversed</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e">size</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#afb57aeebbd762d7ead044a12fd51f639">subFromRGB</a>(uint8_t inc)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a1f32c60d83428f27d3ec899442b82410">dump</a>() const</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>end</b>() (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>end</b>() const (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>end_pos</b> (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231">fadeLightBy</a>(uint8_t fadefactor)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a4861b6938f1cb9f8f885a9f3af13b8a9">fadeToBlackBy</a>(uint8_t fade)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_gradient</b>(const CHSV &amp;startcolor, const CHSV &amp;endcolor, TGradientDirectionCode directionCode=SHORTEST_HUES) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_gradient</b>(const CHSV &amp;c1, const CHSV &amp;c2, const CHSV &amp;c3, TGradientDirectionCode directionCode=SHORTEST_HUES) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_gradient</b>(const CHSV &amp;c1, const CHSV &amp;c2, const CHSV &amp;c3, const CHSV &amp;c4, TGradientDirectionCode directionCode=SHORTEST_HUES) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_gradient_RGB</b>(const CRGB &amp;startcolor, const CRGB &amp;endcolor, TGradientDirectionCode directionCode=SHORTEST_HUES) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_gradient_RGB</b>(const CRGB &amp;c1, const CRGB &amp;c2, const CRGB &amp;c3) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_gradient_RGB</b>(const CRGB &amp;c1, const CRGB &amp;c2, const CRGB &amp;c3, const CRGB &amp;c4) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_rainbow</b>(uint8_t initialhue, uint8_t deltahue=5) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>fill_solid</b>(const CRGB &amp;color) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>fill_solid</b>(const CHSV &amp;color) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>iterator</b> typedef (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>leds</b> (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>len</b> (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>napplyGamma_video</b>(float gamma) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>napplyGamma_video</b>(float gammaR, float gammaG, float gammaB) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>nblend</b>(const CRGB &amp;overlay, fract8 amountOfOverlay) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>nblend</b>(const CPixelView &amp;rhs, fract8 amountOfOverlay) (defined in <a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1">nscale8</a>(uint8_t scaledown)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#ad1b0bbeb416db7f4dd1139ea23491330">nscale8</a>(CRGB &amp;scaledown)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a195deb4034393308c9573454ac5e56ae">nscale8</a>(CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82">nscale8_video</a>(uint8_t scaledown)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a48b70c6f162cb898a38431bb63655f79">operator bool</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#af2f7d2d33f63d7aaf024458d0e710320">operator CRGB *</a>() const</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a7ad3ae5a948047704c58458b13bdb53c">operator!=</a>(const CPixelView &amp;rhs) const</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a18f14f953dce5153659f30a1fc47ab2d">operator%=</a>(uint8_t scaledown)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#aec83b9f23486e0efd0729e3e5be87f81">operator&amp;=</a>(const CRGB &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a0d3f84118cabfbd0e8b9e8556d6fdc37">operator&amp;=</a>(const CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a1778ed3e4aaa07e64577128429de4c10">operator&amp;=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#aa2b10d01a183235fcf62e50049c49dd4">operator()</a>(int start, int end)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a3043e411e2b48b294574e0fbe848991c">operator*=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#abfb38ddcb524aa8b7a385c590823aaf6">operator++</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a1425907efc3ca64130e90095f6a254b9">operator++</a>(int DUMMY_ARG)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a7830b1011e8f6f13298c3500eba2707a">operator+=</a>(CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#ad6e7a725732d4fff0dc4fa5c29015127">operator-</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#ab31623e9f9036c6571cee8054b696621">operator--</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#aef542dfd9d18f1c62bd8dadaa88a76ae">operator--</a>(int DUMMY_ARG)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a1200796b444865d101184f0c07e1915c">operator-=</a>(CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a1f1a98d480cc62635f24e62c68c14f65">operator/=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#aa35b7eb6c9b8d2510df02af26db03f29">operator=</a>(const CRGB &amp;color)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a3e7c2cf9a8dc476f9a92850d69b7c499">operator=</a>(const CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a13b5daab212774a2957473acea4e843b">operator==</a>(const CPixelView &amp;rhs) const</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#af98febdccd4f7f18afbfbb0abfb4413d">operator&gt;&gt;=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#aba3ece62dbd9f340a0cd78a4c69ab116">operator[]</a>(int x) const</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#ad737aca28b069acb1bb350e635be83f4">operator|=</a>(const CRGB &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a0acfbbdeb7c17986ddc806e9df64461c">operator|=</a>(const CPixelView &amp;rhs)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#a2e5576eb742184423d130b4caebd830c">operator|=</a>(uint8_t d)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#a384417cfef1e38aa24fde4673fd8eaac">reversed</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &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_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e">size</a>()</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_view.html#afb57aeebbd762d7ead044a12fd51f639">subFromRGB</a>(uint8_t inc)</td><td class="entry"><a class="el" href="class_c_pixel_view.html">CPixelView&lt; CRGB &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_c_r_g_b_array.html b/docs/3.1/class_c_r_g_b_array.html
index 926e92a3..22a9e1f5 100644
--- a/docs/3.1/class_c_r_g_b_array.html
+++ b/docs/3.1/class_c_r_g_b_array.html
@@ -186,6 +186,8 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<tr class="memitem:a3e7c2cf9a8dc476f9a92850d69b7c499 inherit pub_methods_class_c_pixel_view"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_c_pixel_view.html">CPixelView</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_view.html#a3e7c2cf9a8dc476f9a92850d69b7c499">operator=</a> (const <a class="el" href="class_c_pixel_view.html">CPixelView</a> &amp;rhs)</td></tr>
<tr class="memdesc:a3e7c2cf9a8dc476f9a92850d69b7c499 inherit pub_methods_class_c_pixel_view"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the contents of the passed in set to our set. <a href="#a3e7c2cf9a8dc476f9a92850d69b7c499">More...</a><br /></td></tr>
<tr class="separator:a3e7c2cf9a8dc476f9a92850d69b7c499 inherit pub_methods_class_c_pixel_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1f32c60d83428f27d3ec899442b82410 inherit pub_methods_class_c_pixel_view"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_view.html#a1f32c60d83428f27d3ec899442b82410">dump</a> () const</td></tr>
+<tr class="separator:a1f32c60d83428f27d3ec899442b82410 inherit pub_methods_class_c_pixel_view"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48b70c6f162cb898a38431bb63655f79 inherit pub_methods_class_c_pixel_view"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a48b70c6f162cb898a38431bb63655f79"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_view.html#a48b70c6f162cb898a38431bb63655f79">operator bool</a> ()</td></tr>
<tr class="memdesc:a48b70c6f162cb898a38431bb63655f79 inherit pub_methods_class_c_pixel_view"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether or not any leds in this set are non-zero. <br /></td></tr>
@@ -365,7 +367,7 @@ const int&#160;</td><td class="memItemRight" valign="bottom"><b>len</b></td></tr
class CRGBArray&lt; SIZE &gt;</h3>
-<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00289">289</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
+<p>Definition at line <a class="el" href="pixelset_8h_source.html#l00294">294</a> of file <a class="el" href="pixelset_8h_source.html">pixelset.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="pixelset_8h_source.html">pixelset.h</a></li>
</ul>
@@ -375,7 +377,7 @@ class CRGBArray&lt; SIZE &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_c_r_g_b_array.html">CRGBArray</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 74329675..992d262e 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
@@ -117,7 +117,9 @@ $(document).ready(function(){initNavTree('class_c_r_g_b_palette16.html','');});
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CRGBPalette16</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>CRGBPalette16</b>(const CRGB &amp;c00, const CRGB &amp;c01, const CRGB &amp;c02, const CRGB &amp;c03, const CRGB &amp;c04, const CRGB &amp;c05, const CRGB &amp;c06, const CRGB &amp;c07, const CRGB &amp;c08, const CRGB &amp;c09, const CRGB &amp;c10, const CRGB &amp;c11, const CRGB &amp;c12, const CRGB &amp;c13, const CRGB &amp;c14, const CRGB &amp;c15) (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>CRGBPalette16</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>CRGBPalette16</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>CRGBPalette16</b>(const CRGB rhs[16]) (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>CRGBPalette16</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>CRGBPalette16</b>(const CHSV rhs[16]) (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>CRGBPalette16</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>CRGBPalette16</b>(const CHSV &amp;c1) (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>CRGBPalette16</b>(const CHSV &amp;c1, const CHSV &amp;c2) (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>
@@ -133,7 +135,9 @@ $(document).ready(function(){initNavTree('class_c_r_g_b_palette16.html','');});
<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 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"><td class="entry"><b>operator=</b>(const CRGB rhs[16]) (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 CHSV rhs[16]) (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>
@@ -146,7 +150,7 @@ $(document).ready(function(){initNavTree('class_c_r_g_b_palette16.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 79d895d3..25cc2b29 100644
--- a/docs/3.1/class_c_r_g_b_palette16.html
+++ b/docs/3.1/class_c_r_g_b_palette16.html
@@ -133,15 +133,27 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:ab23fec1712e4c6bf707be19652df35f4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab23fec1712e4c6bf707be19652df35f4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette16</b> (const <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> &amp;rhs)</td></tr>
<tr class="separator:ab23fec1712e4c6bf707be19652df35f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa5878365d4219ba17514f1de92b6c0f9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa5878365d4219ba17514f1de92b6c0f9"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette16</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> rhs[16])</td></tr>
+<tr class="separator:aa5878365d4219ba17514f1de92b6c0f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca75909eef135775ddc15e44e94e9e8d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aca75909eef135775ddc15e44e94e9e8d"></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 <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> &amp;rhs)</td></tr>
<tr class="separator:aca75909eef135775ddc15e44e94e9e8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a71e15afcaf4452ad7c4ac38abf4bc63d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a71e15afcaf4452ad7c4ac38abf4bc63d"></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 <a class="el" href="struct_c_r_g_b.html">CRGB</a> rhs[16])</td></tr>
+<tr class="separator:a71e15afcaf4452ad7c4ac38abf4bc63d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fad1061f21e02b451e74173481d8bd7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5fad1061f21e02b451e74173481d8bd7"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette16</b> (const <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> &amp;rhs)</td></tr>
<tr class="separator:a5fad1061f21e02b451e74173481d8bd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3e9a52870e5d78e91a9710dfd1d6dc70"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3e9a52870e5d78e91a9710dfd1d6dc70"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette16</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> rhs[16])</td></tr>
+<tr class="separator:a3e9a52870e5d78e91a9710dfd1d6dc70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98225ec739aa1d48774e479e885258f7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a98225ec739aa1d48774e479e885258f7"></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 <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> &amp;rhs)</td></tr>
<tr class="separator:a98225ec739aa1d48774e479e885258f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a40a563e3859e1a2dd77b8d512aaa7103"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a40a563e3859e1a2dd77b8d512aaa7103"></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 <a class="el" href="struct_c_h_s_v.html">CHSV</a> rhs[16])</td></tr>
+<tr class="separator:a40a563e3859e1a2dd77b8d512aaa7103"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ffc31b89df3b738f4cdb04012a0c7c5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0ffc31b89df3b738f4cdb04012a0c7c5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette16</b> (const TProgmemRGBPalette16 &amp;rhs)</td></tr>
<tr class="separator:a0ffc31b89df3b738f4cdb04012a0c7c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -211,7 +223,7 @@ Public Attributes</h2></td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p>Definition at line <a class="el" href="colorutils_8h_source.html#l00632">632</a> of file <a class="el" href="colorutils_8h_source.html">colorutils.h</a>.</p>
+<p>Definition at line <a class="el" href="colorutils_8h_source.html#l00646">646</a> of file <a class="el" href="colorutils_8h_source.html">colorutils.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="colorutils_8h_source.html">colorutils.h</a></li>
</ul>
@@ -221,7 +233,7 @@ Public Attributes</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_c_r_g_b_palette16.js b/docs/3.1/class_c_r_g_b_palette16.js
index 7d9c3b4b..c548f22b 100644
--- a/docs/3.1/class_c_r_g_b_palette16.js
+++ b/docs/3.1/class_c_r_g_b_palette16.js
@@ -3,7 +3,9 @@ var class_c_r_g_b_palette16 =
[ "CRGBPalette16", "class_c_r_g_b_palette16.html#af3a6a06fddf749622ffe099e2d39302f", null ],
[ "CRGBPalette16", "class_c_r_g_b_palette16.html#a46542c191b01f0799a1326316fcaac49", null ],
[ "CRGBPalette16", "class_c_r_g_b_palette16.html#ab23fec1712e4c6bf707be19652df35f4", null ],
+ [ "CRGBPalette16", "class_c_r_g_b_palette16.html#aa5878365d4219ba17514f1de92b6c0f9", null ],
[ "CRGBPalette16", "class_c_r_g_b_palette16.html#a5fad1061f21e02b451e74173481d8bd7", null ],
+ [ "CRGBPalette16", "class_c_r_g_b_palette16.html#a3e9a52870e5d78e91a9710dfd1d6dc70", null ],
[ "CRGBPalette16", "class_c_r_g_b_palette16.html#a0ffc31b89df3b738f4cdb04012a0c7c5", null ],
[ "CRGBPalette16", "class_c_r_g_b_palette16.html#a033c8a5975d58a1dd4d90ce443a345df", null ],
[ "CRGBPalette16", "class_c_r_g_b_palette16.html#aafce34411cc96d598a7ed754cfca15b7", null ],
@@ -18,7 +20,9 @@ var class_c_r_g_b_palette16 =
[ "operator CRGB *", "class_c_r_g_b_palette16.html#a7214b8bb0070f864dbc0d64d93250904", null ],
[ "operator!=", "class_c_r_g_b_palette16.html#a7d5587c81f7dee8be4fc701dd6149fda", null ],
[ "operator=", "class_c_r_g_b_palette16.html#aca75909eef135775ddc15e44e94e9e8d", null ],
+ [ "operator=", "class_c_r_g_b_palette16.html#a71e15afcaf4452ad7c4ac38abf4bc63d", null ],
[ "operator=", "class_c_r_g_b_palette16.html#a98225ec739aa1d48774e479e885258f7", null ],
+ [ "operator=", "class_c_r_g_b_palette16.html#a40a563e3859e1a2dd77b8d512aaa7103", null ],
[ "operator=", "class_c_r_g_b_palette16.html#a1e2866fd76857f99b6174a0bfa794328", null ],
[ "operator=", "class_c_r_g_b_palette16.html#a614663def062dcc371d4f14db88380c3", null ],
[ "operator==", "class_c_r_g_b_palette16.html#a0c345a47c6f4beab2eb1c9e91264e6e3", null ],
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 94b8e042..09b15317 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
@@ -117,7 +117,9 @@ $(document).ready(function(){initNavTree('class_c_r_g_b_palette256.html','');});
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CRGBPalette256</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"><td class="entry"><b>CRGBPalette256</b>(const CRGB &amp;c00, const CRGB &amp;c01, const CRGB &amp;c02, const CRGB &amp;c03, const CRGB &amp;c04, const CRGB &amp;c05, const CRGB &amp;c06, const CRGB &amp;c07, const CRGB &amp;c08, const CRGB &amp;c09, const CRGB &amp;c10, const CRGB &amp;c11, const CRGB &amp;c12, const CRGB &amp;c13, const CRGB &amp;c14, const CRGB &amp;c15) (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>CRGBPalette256</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>CRGBPalette256</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>CRGBPalette256</b>(const CRGB rhs[256]) (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>CRGBPalette256</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>CRGBPalette256</b>(const CHSV rhs[256]) (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>CRGBPalette256</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>CRGBPalette256</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>CRGBPalette256</b>(const CHSV &amp;c1) (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>
@@ -134,7 +136,9 @@ $(document).ready(function(){initNavTree('class_c_r_g_b_palette256.html','');});
<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 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" class="even"><td class="entry"><b>operator=</b>(const CRGB rhs[256]) (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 CHSV rhs[256]) (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>
@@ -148,7 +152,7 @@ $(document).ready(function(){initNavTree('class_c_r_g_b_palette256.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 279a0937..2ee6fffd 100644
--- a/docs/3.1/class_c_r_g_b_palette256.html
+++ b/docs/3.1/class_c_r_g_b_palette256.html
@@ -133,15 +133,27 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a98f69fbb4046243df90aa0e77aa0a9b9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a98f69fbb4046243df90aa0e77aa0a9b9"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette256</b> (const <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a> &amp;rhs)</td></tr>
<tr class="separator:a98f69fbb4046243df90aa0e77aa0a9b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9645f3cd06ebd1cd777840a8d04b9f69"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9645f3cd06ebd1cd777840a8d04b9f69"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette256</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> rhs[256])</td></tr>
+<tr class="separator:a9645f3cd06ebd1cd777840a8d04b9f69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a173cddd5e8ff97792505e457a68ccd92"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a173cddd5e8ff97792505e457a68ccd92"></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 <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a> &amp;rhs)</td></tr>
<tr class="separator:a173cddd5e8ff97792505e457a68ccd92"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa4623c4415cc732fc4d581a0a9e3953"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afa4623c4415cc732fc4d581a0a9e3953"></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 <a class="el" href="struct_c_r_g_b.html">CRGB</a> rhs[256])</td></tr>
+<tr class="separator:afa4623c4415cc732fc4d581a0a9e3953"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55c0146fef81bc6f8765db0ad4c57b3a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a55c0146fef81bc6f8765db0ad4c57b3a"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette256</b> (const <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a> &amp;rhs)</td></tr>
<tr class="separator:a55c0146fef81bc6f8765db0ad4c57b3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8bb9c2f014e0f839db224895f873d206"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8bb9c2f014e0f839db224895f873d206"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette256</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> rhs[256])</td></tr>
+<tr class="separator:a8bb9c2f014e0f839db224895f873d206"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61bc885ac072458b8f5144f63a29fb37"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a61bc885ac072458b8f5144f63a29fb37"></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 <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a> &amp;rhs)</td></tr>
<tr class="separator:a61bc885ac072458b8f5144f63a29fb37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93c20b6fdb682630ae6c641db98bebee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a93c20b6fdb682630ae6c641db98bebee"></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 <a class="el" href="struct_c_h_s_v.html">CHSV</a> rhs[256])</td></tr>
+<tr class="separator:a93c20b6fdb682630ae6c641db98bebee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01b7d7154a1c785e367d127940f9d180"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a01b7d7154a1c785e367d127940f9d180"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette256</b> (const <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> &amp;rhs16)</td></tr>
<tr class="separator:a01b7d7154a1c785e367d127940f9d180"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -217,7 +229,7 @@ Public Attributes</h2></td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p>Definition at line <a class="el" href="colorutils_8h_source.html#l00874">874</a> of file <a class="el" href="colorutils_8h_source.html">colorutils.h</a>.</p>
+<p>Definition at line <a class="el" href="colorutils_8h_source.html#l01309">1309</a> of file <a class="el" href="colorutils_8h_source.html">colorutils.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="colorutils_8h_source.html">colorutils.h</a></li>
</ul>
@@ -227,7 +239,7 @@ Public Attributes</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_c_r_g_b_palette256.js b/docs/3.1/class_c_r_g_b_palette256.js
index d1a00b25..f0939186 100644
--- a/docs/3.1/class_c_r_g_b_palette256.js
+++ b/docs/3.1/class_c_r_g_b_palette256.js
@@ -3,7 +3,9 @@ var class_c_r_g_b_palette256 =
[ "CRGBPalette256", "class_c_r_g_b_palette256.html#ad8b2cfa7c9fbbecc4407d48cc2c240b7", null ],
[ "CRGBPalette256", "class_c_r_g_b_palette256.html#a3bf77a8b27f5b647fe2ec7daba13084a", null ],
[ "CRGBPalette256", "class_c_r_g_b_palette256.html#a98f69fbb4046243df90aa0e77aa0a9b9", null ],
+ [ "CRGBPalette256", "class_c_r_g_b_palette256.html#a9645f3cd06ebd1cd777840a8d04b9f69", null ],
[ "CRGBPalette256", "class_c_r_g_b_palette256.html#a55c0146fef81bc6f8765db0ad4c57b3a", null ],
+ [ "CRGBPalette256", "class_c_r_g_b_palette256.html#a8bb9c2f014e0f839db224895f873d206", null ],
[ "CRGBPalette256", "class_c_r_g_b_palette256.html#a01b7d7154a1c785e367d127940f9d180", null ],
[ "CRGBPalette256", "class_c_r_g_b_palette256.html#a281ee2a2cf4a59dfc8deb8d0cd2fcef9", null ],
[ "CRGBPalette256", "class_c_r_g_b_palette256.html#a9155e7d5e6dd529c4e54277ac8dfd9ea", null ],
@@ -19,7 +21,9 @@ var class_c_r_g_b_palette256 =
[ "operator CRGB *", "class_c_r_g_b_palette256.html#a860d9e7e0e2f309fc644ae76ed964744", null ],
[ "operator!=", "class_c_r_g_b_palette256.html#a4f2e8e46d54553c6ee27fcf50b3da689", null ],
[ "operator=", "class_c_r_g_b_palette256.html#a173cddd5e8ff97792505e457a68ccd92", null ],
+ [ "operator=", "class_c_r_g_b_palette256.html#afa4623c4415cc732fc4d581a0a9e3953", null ],
[ "operator=", "class_c_r_g_b_palette256.html#a61bc885ac072458b8f5144f63a29fb37", null ],
+ [ "operator=", "class_c_r_g_b_palette256.html#a93c20b6fdb682630ae6c641db98bebee", null ],
[ "operator=", "class_c_r_g_b_palette256.html#ae8bc5adc97198a3b7ef55dbd99ce0d99", null ],
[ "operator=", "class_c_r_g_b_palette256.html#a9cb19dd01548c2c902e5217188552730", null ],
[ "operator=", "class_c_r_g_b_palette256.html#ae388de7344da19c4168f2ceea1eb6e38", null ],
diff --git a/docs/3.1/class_c_r_g_b_palette32-members.html b/docs/3.1/class_c_r_g_b_palette32-members.html
new file mode 100644
index 00000000..2a009856
--- /dev/null
+++ b/docs/3.1/class_c_r_g_b_palette32-members.html
@@ -0,0 +1,163 @@
+<!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="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</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>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('class_c_r_g_b_palette32.html','');});
+</script>
+<div id="doc-content">
+<!-- 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">CRGBPalette32 Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>, including all inherited members.</p>
+<table class="directory">
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CRGBPalette32</b>() (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>CRGBPalette32</b>(const CRGB &amp;c00, const CRGB &amp;c01, const CRGB &amp;c02, const CRGB &amp;c03, const CRGB &amp;c04, const CRGB &amp;c05, const CRGB &amp;c06, const CRGB &amp;c07, const CRGB &amp;c08, const CRGB &amp;c09, const CRGB &amp;c10, const CRGB &amp;c11, const CRGB &amp;c12, const CRGB &amp;c13, const CRGB &amp;c14, const CRGB &amp;c15) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CRGBPalette32</b>(const CRGBPalette32 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>CRGBPalette32</b>(const CRGB rhs[32]) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CRGBPalette32</b>(const CHSVPalette32 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>CRGBPalette32</b>(const CHSV rhs[32]) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CRGBPalette32</b>(const TProgmemRGBPalette32 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>CRGBPalette32</b>(const CHSV &amp;c1) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CRGBPalette32</b>(const CHSV &amp;c1, const CHSV &amp;c2) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>CRGBPalette32</b>(const CHSV &amp;c1, const CHSV &amp;c2, const CHSV &amp;c3) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CRGBPalette32</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_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>CRGBPalette32</b>(const CRGB &amp;c1) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CRGBPalette32</b>(const CRGB &amp;c1, const CRGB &amp;c2) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>CRGBPalette32</b>(const CRGB &amp;c1, const CRGB &amp;c2, const CRGB &amp;c3) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CRGBPalette32</b>(const CRGB &amp;c1, const CRGB &amp;c2, const CRGB &amp;c3, const CRGB &amp;c4) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>CRGBPalette32</b>(const CRGBPalette16 &amp;rhs16) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CRGBPalette32</b>(const TProgmemRGBPalette16 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>CRGBPalette32</b>(TProgmemRGBGradientPalette_bytes progpal) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</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_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</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_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</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_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator!=</b>(const CRGBPalette32 rhs) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const CRGBPalette32 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const CRGB rhs[32]) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const CHSVPalette32 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const CHSV rhs[32]) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const TProgmemRGBPalette32 &amp;rhs) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</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_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</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_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</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_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator==</b>(const CRGBPalette32 rhs) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</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_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</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_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</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_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</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) const __attribute__((always_inline)) (defined in <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>)</td><td class="entry"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/3.1/class_c_r_g_b_palette32.html b/docs/3.1/class_c_r_g_b_palette32.html
new file mode 100644
index 00000000..47705976
--- /dev/null
+++ b/docs/3.1/class_c_r_g_b_palette32.html
@@ -0,0 +1,254 @@
+<!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: CRGBPalette32 Class 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="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</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>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('class_c_r_g_b_palette32.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="class_c_r_g_b_palette32-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">CRGBPalette32 Class Reference<div class="ingroups"><a class="el" href="group___colorutils.html">Color utility functions</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
+ <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Collaboration diagram for CRGBPalette32:</div>
+<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
+</div>
+<div id="dynsection-0-content" class="dyncontent" style="display:none;">
+<div class="center"><img src="class_c_r_g_b_palette32__coll__graph.png" border="0" usemap="#_c_r_g_b_palette32_coll__map" alt="Collaboration graph"/></div>
+<map name="_c_r_g_b_palette32_coll__map" id="_c_r_g_b_palette32_coll__map">
+<area shape="rect" id="node2" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="34,5,93,32"/></map>
+<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:acb78b37e9ddeb393c3b8c613c9bb1f14"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb78b37e9ddeb393c3b8c613c9bb1f14"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c00, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c01, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c02, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c03, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c04, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c05, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c06, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c07, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c08, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c09, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c10, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c11, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c12, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c13, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c14, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c15)</td></tr>
+<tr class="separator:acb78b37e9ddeb393c3b8c613c9bb1f14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5daa65c9555826ae69f3fca8ce3c009d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5daa65c9555826ae69f3fca8ce3c009d"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (const <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;rhs)</td></tr>
+<tr class="separator:a5daa65c9555826ae69f3fca8ce3c009d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3438410a90c7a433b66295da474b6bab"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3438410a90c7a433b66295da474b6bab"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> rhs[32])</td></tr>
+<tr class="separator:a3438410a90c7a433b66295da474b6bab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa882d25ae87f5440024e84025b7e004"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afa882d25ae87f5440024e84025b7e004"></a>
+<a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;rhs)</td></tr>
+<tr class="separator:afa882d25ae87f5440024e84025b7e004"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c36cbfef6ccc309f426bc712bcea935"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4c36cbfef6ccc309f426bc712bcea935"></a>
+<a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> rhs[32])</td></tr>
+<tr class="separator:a4c36cbfef6ccc309f426bc712bcea935"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae22b0593f4db09ec50b173ab49cbeb8d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae22b0593f4db09ec50b173ab49cbeb8d"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (const <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> &amp;rhs)</td></tr>
+<tr class="separator:ae22b0593f4db09ec50b173ab49cbeb8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaf3410f8c5222ca4ca0b28cd063f90c9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaf3410f8c5222ca4ca0b28cd063f90c9"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> rhs[32])</td></tr>
+<tr class="separator:aaf3410f8c5222ca4ca0b28cd063f90c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a54fd84dd8b9d86bbb494b6e4cb8eb339"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a54fd84dd8b9d86bbb494b6e4cb8eb339"></a>
+<a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> &amp;rhs)</td></tr>
+<tr class="separator:a54fd84dd8b9d86bbb494b6e4cb8eb339"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2ef31b01adf0dcf471a0b434e333fe21"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2ef31b01adf0dcf471a0b434e333fe21"></a>
+<a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> rhs[32])</td></tr>
+<tr class="separator:a2ef31b01adf0dcf471a0b434e333fe21"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a69465d3ea0e74e5ffbd4bef4813bf35a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a69465d3ea0e74e5ffbd4bef4813bf35a"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (const TProgmemRGBPalette32 &amp;rhs)</td></tr>
+<tr class="separator:a69465d3ea0e74e5ffbd4bef4813bf35a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a812f7977fa24cb79012d4a8f51d83107"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a812f7977fa24cb79012d4a8f51d83107"></a>
+<a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const TProgmemRGBPalette32 &amp;rhs)</td></tr>
+<tr class="separator:a812f7977fa24cb79012d4a8f51d83107"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab88416436adecc30d24b2f256d11f9dc"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab88416436adecc30d24b2f256d11f9dc"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator==</b> (const <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> rhs)</td></tr>
+<tr class="separator:ab88416436adecc30d24b2f256d11f9dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae460dccf50741036c14807654f001980"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae460dccf50741036c14807654f001980"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>operator!=</b> (const <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> rhs)</td></tr>
+<tr class="separator:ae460dccf50741036c14807654f001980"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeed9ecd95fcf34529b96d06f585575e0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeed9ecd95fcf34529b96d06f585575e0"></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:aeed9ecd95fcf34529b96d06f585575e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92f529f4e3f85e000636bb0915d93c8f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a92f529f4e3f85e000636bb0915d93c8f"></a>
+const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (uint8_t x) const <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
+<tr class="separator:a92f529f4e3f85e000636bb0915d93c8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6827bca7ac5cff8a496a2bcd2ce14d02"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6827bca7ac5cff8a496a2bcd2ce14d02"></a>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
+<tr class="separator:a6827bca7ac5cff8a496a2bcd2ce14d02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e63bbbb599a04067d4c8879285b3dde"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0e63bbbb599a04067d4c8879285b3dde"></a>
+const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator[]</b> (int x) const <a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</td></tr>
+<tr class="separator:a0e63bbbb599a04067d4c8879285b3dde"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af4e3e326d8f2b059bdf5287ee88da202"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4e3e326d8f2b059bdf5287ee88da202"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>operator CRGB *</b> ()</td></tr>
+<tr class="separator:af4e3e326d8f2b059bdf5287ee88da202"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a16132eb10650baddb16cea425903af2b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a16132eb10650baddb16cea425903af2b"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c1)</td></tr>
+<tr class="separator:a16132eb10650baddb16cea425903af2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a353c4bb3c4b46e24b60f3967e252c547"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a353c4bb3c4b46e24b60f3967e252c547"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c1, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c2)</td></tr>
+<tr class="separator:a353c4bb3c4b46e24b60f3967e252c547"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a13ccbc9afe1fb1a6585bd9c9d77dd92a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a13ccbc9afe1fb1a6585bd9c9d77dd92a"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c1, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c2, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c3)</td></tr>
+<tr class="separator:a13ccbc9afe1fb1a6585bd9c9d77dd92a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a818f680a01314c116273ab57e55ec035"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a818f680a01314c116273ab57e55ec035"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c1, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c2, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c3, const <a class="el" href="struct_c_h_s_v.html">CHSV</a> &amp;c4)</td></tr>
+<tr class="separator:a818f680a01314c116273ab57e55ec035"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4019959afa78dea95cadc86fd7d20da2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4019959afa78dea95cadc86fd7d20da2"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c1)</td></tr>
+<tr class="separator:a4019959afa78dea95cadc86fd7d20da2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af031aab8885a33a1f609da74cfd1850a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af031aab8885a33a1f609da74cfd1850a"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c1, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c2)</td></tr>
+<tr class="separator:af031aab8885a33a1f609da74cfd1850a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3e97d05a24cca214c68793751b65c57c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3e97d05a24cca214c68793751b65c57c"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c1, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c2, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c3)</td></tr>
+<tr class="separator:a3e97d05a24cca214c68793751b65c57c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aabbbe1fd83cd3062c48f8adb1ccd8076"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aabbbe1fd83cd3062c48f8adb1ccd8076"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c1, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c2, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c3, const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;c4)</td></tr>
+<tr class="separator:aabbbe1fd83cd3062c48f8adb1ccd8076"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a885013cda7e8875b2c9894e0e88b0d7f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a885013cda7e8875b2c9894e0e88b0d7f"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (const <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> &amp;rhs16)</td></tr>
+<tr class="separator:a885013cda7e8875b2c9894e0e88b0d7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afda755ec92a4a5ea1693ddb0c4f0c953"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afda755ec92a4a5ea1693ddb0c4f0c953"></a>
+<a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> &amp;rhs16)</td></tr>
+<tr class="separator:afda755ec92a4a5ea1693ddb0c4f0c953"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a13f09d638c91334af2095d51c9168ce1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a13f09d638c91334af2095d51c9168ce1"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (const TProgmemRGBPalette16 &amp;rhs)</td></tr>
+<tr class="separator:a13f09d638c91334af2095d51c9168ce1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af25490ee7d096dc89b7dac5ac8c7ad57"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af25490ee7d096dc89b7dac5ac8c7ad57"></a>
+<a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const TProgmemRGBPalette16 &amp;rhs)</td></tr>
+<tr class="separator:af25490ee7d096dc89b7dac5ac8c7ad57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae56dd09a3bf53170d062a832f4b834b7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae56dd09a3bf53170d062a832f4b834b7"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>CRGBPalette32</b> (TProgmemRGBGradientPalette_bytes progpal)</td></tr>
+<tr class="separator:ae56dd09a3bf53170d062a832f4b834b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd29d3dd0abda25909e14e7b59fec38e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afd29d3dd0abda25909e14e7b59fec38e"></a>
+<a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (TProgmemRGBGradientPalette_bytes progpal)</td></tr>
+<tr class="separator:afd29d3dd0abda25909e14e7b59fec38e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab12eb86bb1c8c661e8e71f8a98eb38c1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab12eb86bb1c8c661e8e71f8a98eb38c1"></a>
+<a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>loadDynamicGradientPalette</b> (TDynamicRGBGradientPalette_bytes gpal)</td></tr>
+<tr class="separator:ab12eb86bb1c8c661e8e71f8a98eb38c1"><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>
+<tr class="memitem:ae1d3ab8f56db6053889235afac4ed354"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae1d3ab8f56db6053889235afac4ed354"></a>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>entries</b> [32]</td></tr>
+<tr class="separator:ae1d3ab8f56db6053889235afac4ed354"><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>Definition at line <a class="el" href="colorutils_8h_source.html#l01018">1018</a> of file <a class="el" href="colorutils_8h_source.html">colorutils.h</a>.</p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
+<li><a class="el" href="colorutils_8h_source.html">colorutils.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a></li>
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/3.1/class_c_r_g_b_palette32.js b/docs/3.1/class_c_r_g_b_palette32.js
new file mode 100644
index 00000000..87a534aa
--- /dev/null
+++ b/docs/3.1/class_c_r_g_b_palette32.js
@@ -0,0 +1,38 @@
+var class_c_r_g_b_palette32 =
+[
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a16ee6e53d011977f8cee52df0c6c58b7", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#acb78b37e9ddeb393c3b8c613c9bb1f14", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a5daa65c9555826ae69f3fca8ce3c009d", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a3438410a90c7a433b66295da474b6bab", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#ae22b0593f4db09ec50b173ab49cbeb8d", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#aaf3410f8c5222ca4ca0b28cd063f90c9", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a69465d3ea0e74e5ffbd4bef4813bf35a", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a16132eb10650baddb16cea425903af2b", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a353c4bb3c4b46e24b60f3967e252c547", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a13ccbc9afe1fb1a6585bd9c9d77dd92a", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a818f680a01314c116273ab57e55ec035", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a4019959afa78dea95cadc86fd7d20da2", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#af031aab8885a33a1f609da74cfd1850a", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a3e97d05a24cca214c68793751b65c57c", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#aabbbe1fd83cd3062c48f8adb1ccd8076", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a885013cda7e8875b2c9894e0e88b0d7f", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a13f09d638c91334af2095d51c9168ce1", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#ae56dd09a3bf53170d062a832f4b834b7", null ],
+ [ "loadDynamicGradientPalette", "class_c_r_g_b_palette32.html#ab12eb86bb1c8c661e8e71f8a98eb38c1", null ],
+ [ "operator CRGB *", "class_c_r_g_b_palette32.html#af4e3e326d8f2b059bdf5287ee88da202", null ],
+ [ "operator!=", "class_c_r_g_b_palette32.html#ae460dccf50741036c14807654f001980", null ],
+ [ "operator=", "class_c_r_g_b_palette32.html#afa882d25ae87f5440024e84025b7e004", null ],
+ [ "operator=", "class_c_r_g_b_palette32.html#a4c36cbfef6ccc309f426bc712bcea935", null ],
+ [ "operator=", "class_c_r_g_b_palette32.html#a54fd84dd8b9d86bbb494b6e4cb8eb339", null ],
+ [ "operator=", "class_c_r_g_b_palette32.html#a2ef31b01adf0dcf471a0b434e333fe21", null ],
+ [ "operator=", "class_c_r_g_b_palette32.html#a812f7977fa24cb79012d4a8f51d83107", null ],
+ [ "operator=", "class_c_r_g_b_palette32.html#afda755ec92a4a5ea1693ddb0c4f0c953", null ],
+ [ "operator=", "class_c_r_g_b_palette32.html#af25490ee7d096dc89b7dac5ac8c7ad57", null ],
+ [ "operator=", "class_c_r_g_b_palette32.html#afd29d3dd0abda25909e14e7b59fec38e", null ],
+ [ "operator==", "class_c_r_g_b_palette32.html#ab88416436adecc30d24b2f256d11f9dc", null ],
+ [ "operator[]", "class_c_r_g_b_palette32.html#aeed9ecd95fcf34529b96d06f585575e0", null ],
+ [ "operator[]", "class_c_r_g_b_palette32.html#a92f529f4e3f85e000636bb0915d93c8f", null ],
+ [ "operator[]", "class_c_r_g_b_palette32.html#a6827bca7ac5cff8a496a2bcd2ce14d02", null ],
+ [ "operator[]", "class_c_r_g_b_palette32.html#a0e63bbbb599a04067d4c8879285b3dde", null ],
+ [ "entries", "class_c_r_g_b_palette32.html#ae1d3ab8f56db6053889235afac4ed354", null ]
+]; \ No newline at end of file
diff --git a/docs/3.1/class_c_r_g_b_palette32__coll__graph.map b/docs/3.1/class_c_r_g_b_palette32__coll__graph.map
new file mode 100644
index 00000000..30e581fe
--- /dev/null
+++ b/docs/3.1/class_c_r_g_b_palette32__coll__graph.map
@@ -0,0 +1,3 @@
+<map id="CRGBPalette32" name="CRGBPalette32">
+<area shape="rect" id="node2" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="34,5,93,32"/>
+</map>
diff --git a/docs/3.1/class_c_r_g_b_palette32__coll__graph.md5 b/docs/3.1/class_c_r_g_b_palette32__coll__graph.md5
new file mode 100644
index 00000000..988f77a5
--- /dev/null
+++ b/docs/3.1/class_c_r_g_b_palette32__coll__graph.md5
@@ -0,0 +1 @@
+b6db3289f3dc9d46b9034bd1afe1d4a3 \ No newline at end of file
diff --git a/docs/3.1/class_c_r_g_b_palette32__coll__graph.png b/docs/3.1/class_c_r_g_b_palette32__coll__graph.png
new file mode 100644
index 00000000..fe648e05
--- /dev/null
+++ b/docs/3.1/class_c_r_g_b_palette32__coll__graph.png
Binary files differ
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 df0832eb..fd37011f 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
@@ -123,7 +123,7 @@ $(document).ready(function(){initNavTree('class_d_a_t_a___n_o_p.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 4a4cedf9..bfacfce6 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
@@ -144,7 +144,7 @@ static register uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>sc
<p>Creating a class of this form and passing it in as a template parameter to writeBytes/writeBytes3 below will ensure that the body of this method will get called on every byte worked on. Recommendation, make the adjust method aggressively inlined.</p>
<p>TODO: Convinience macro for building these </p>
-<p>Definition at line <a class="el" href="fastspi__types_8h_source.html#l00018">18</a> of file <a class="el" href="fastspi__types_8h_source.html">fastspi_types.h</a>.</p>
+<p>Definition at line <a class="el" href="fastspi__types_8h_source.html#l00020">20</a> of file <a class="el" href="fastspi__types_8h_source.html">fastspi_types.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="fastspi__types_8h_source.html">fastspi_types.h</a></li>
</ul>
@@ -154,7 +154,7 @@ static register uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>sc
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_d_a_t_a___n_o_p.html">DATA_NOP</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 f929aee1..6dd02dd6 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
@@ -115,48 +115,49 @@ $(document).ready(function(){initNavTree('class_d_m_x_s_e_r_i_a_l.html','');});
<p>This is the complete list of members for <a class="el" href="class_d_m_x_s_e_r_i_a_l.html">DMXSERIAL&lt; RGB_ORDER &gt;</a>, including all inherited members.</p>
<table class="directory">
<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><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a>(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><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 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>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CPixelLEDController</b>() (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &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#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_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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#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_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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 bgcolor="#f0f0f0"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER &gt; &amp;pixels) (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">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0 (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</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#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 -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 c8214abf..4cbb3039 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
@@ -120,7 +120,7 @@ $(document).ready(function(){initNavTree('class_d_m_x_s_e_r_i_a_l.html','');});
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_d_m_x_s_e_r_i_a_l__inherit__graph.png" border="0" usemap="#_d_m_x_s_e_r_i_a_l_3_01_r_g_b___o_r_d_e_r_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="_d_m_x_s_e_r_i_a_l_3_01_r_g_b___o_r_d_e_r_01_4_inherit__map" id="_d_m_x_s_e_r_i_a_l_3_01_r_g_b___o_r_d_e_r_01_4_inherit__map">
-<area shape="rect" id="node2" href="class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,81,180,122"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="50,5,165,32"/></map>
+<area shape="rect" id="node2" href="class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,171,180,213"/><area shape="rect" id="node3" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,81,180,122"/><area shape="rect" id="node4" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="50,5,165,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for DMXSERIAL&lt; RGB_ORDER &gt;:</div>
@@ -129,7 +129,7 @@ $(document).ready(function(){initNavTree('class_d_m_x_s_e_r_i_a_l.html','');});
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_d_m_x_s_e_r_i_a_l__coll__graph.png" border="0" usemap="#_d_m_x_s_e_r_i_a_l_3_01_r_g_b___o_r_d_e_r_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_d_m_x_s_e_r_i_a_l_3_01_r_g_b___o_r_d_e_r_01_4_coll__map" id="_d_m_x_s_e_r_i_a_l_3_01_r_g_b___o_r_d_e_r_01_4_coll__map">
-<area shape="rect" id="node2" href="class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,219,180,261"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="50,133,165,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="78,5,137,32"/></map>
+<area shape="rect" id="node2" href="class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,313,180,354"/><area shape="rect" id="node3" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,219,180,261"/><area shape="rect" id="node4" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="50,133,165,160"/><area shape="rect" id="node5" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="78,5,137,32"/></map>
<center><span class="legend">[<a target="top" 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>
@@ -139,24 +139,18 @@ Additional Inherited Members</h2></td></tr>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27">init</a> ()</td></tr>
<tr class="memdesc:a0cd937424d4f6eedb90acec81ca1fa27 inherit pub_methods_class_d_m_x_serial_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the LED controller <br /></td></tr>
<tr class="separator:a0cd937424d4f6eedb90acec81ca1fa27 inherit pub_methods_class_d_m_x_serial_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a04689efea1c1daf74905f87692caa129 inherit pub_methods_class_d_m_x_serial_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a04689efea1c1daf74905f87692caa129"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129">clearLeds</a> (int nLeds)</td></tr>
-<tr class="memdesc:a04689efea1c1daf74905f87692caa129 inherit pub_methods_class_d_m_x_serial_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
-<tr class="separator:a04689efea1c1daf74905f87692caa129 inherit pub_methods_class_d_m_x_serial_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3d6285e65af8862eb4b0d36d6d3df22b inherit pub_methods_class_d_m_x_serial_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_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b">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:a3d6285e65af8862eb4b0d36d6d3df22b inherit pub_methods_class_d_m_x_serial_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#a3d6285e65af8862eb4b0d36d6d3df22b">More...</a><br /></td></tr>
-<tr class="separator:a3d6285e65af8862eb4b0d36d6d3df22b inherit pub_methods_class_d_m_x_serial_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3f3f3e606e495fd1bdcfd25c6bed7fe1 inherit pub_methods_class_d_m_x_serial_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_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:a3f3f3e606e495fd1bdcfd25c6bed7fe1 inherit pub_methods_class_d_m_x_serial_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a3f3f3e606e495fd1bdcfd25c6bed7fe1">More...</a><br /></td></tr>
-<tr class="separator:a3f3f3e606e495fd1bdcfd25c6bed7fe1 inherit pub_methods_class_d_m_x_serial_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3d2435c0f44aa8a1d8cce24b04bf4103 inherit pub_methods_class_d_m_x_serial_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3d2435c0f44aa8a1d8cce24b04bf4103"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t scale=255)=0</td></tr>
-<tr class="separator:a3d2435c0f44aa8a1d8cce24b04bf4103 inherit pub_methods_class_d_m_x_serial_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a861d9beed51cce6441b50398f1eabebf inherit pub_methods_class_d_m_x_serial_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a861d9beed51cce6441b50398f1eabebf"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt; &amp;pixels)</td></tr>
+<tr class="separator:a861d9beed51cce6441b50398f1eabebf inherit pub_methods_class_d_m_x_serial_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c560c6d171f117dfd19c0f2ec780a32"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a> ()</td></tr>
<tr class="memdesc:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">create an led controller object, add it to the chain of controllers <br /></td></tr>
<tr class="separator:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd0f6ce4701e76ebc4b916e0a04134f2"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a> (int nLeds)</td></tr>
+<tr class="memdesc:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
+<tr class="separator:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe990b9a65f5bff1f391cc5c28752abb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, uint8_t brightness)</td></tr>
<tr class="memdesc:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">show function w/integer brightness, will scale for color correction and temperature <br /></td></tr>
@@ -177,9 +171,6 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<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#a06cfb05ad6e0f7982328928051f3f565">next</a> ()</td></tr>
<tr class="memdesc:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the next controller in the chain after this one. will return NULL at the end of the chain <br /></td></tr>
<tr class="separator:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a55f6d5b215dc14f9473faea938b4c8"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t brightness)</td></tr>
-<tr class="separator:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b08378b29f92c5def65175ec5334037"></a>
<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds)</td></tr>
<tr class="memdesc:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the default array of leds to be used by this controller <br /></td></tr>
@@ -247,10 +238,16 @@ static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#
<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>
-<tr class="separator:a3ae4f61fc85ef4609d65c14ca51434c4 inherit pro_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_c_pixel_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_c_pixel_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a></td></tr>
+<tr class="memitem:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ab7248c894ba95c3a71665f5bed2a17"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0</td></tr>
+<tr class="separator:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">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:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#af5569b9e92f75410e03c75bf5764e016">More...</a><br /></td></tr>
+<tr class="separator:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
+<tr class="memdesc:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a36cc2a15671bae0db53df1e26b4a813c">More...</a><br /></td></tr>
+<tr class="separator:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_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>
@@ -283,7 +280,7 @@ static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#
class DMXSERIAL&lt; RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00105">105</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00106">106</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</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>
@@ -293,7 +290,7 @@ class DMXSERIAL&lt; RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_d_m_x_s_e_r_i_a_l.html">DMXSERIAL</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.map b/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.map
index e6ccbdcc..bc1caaf2 100644
--- a/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.map
+++ b/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.map
@@ -1,5 +1,6 @@
<map id="DMXSERIAL&lt; RGB_ORDER &gt;" name="DMXSERIAL&lt; RGB_ORDER &gt;">
-<area shape="rect" id="node2" href="$class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,219,180,261"/>
-<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="50,133,165,160"/>
-<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="78,5,137,32"/>
+<area shape="rect" id="node2" href="$class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,313,180,354"/>
+<area shape="rect" id="node3" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,219,180,261"/>
+<area shape="rect" id="node4" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="50,133,165,160"/>
+<area shape="rect" id="node5" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="78,5,137,32"/>
</map>
diff --git a/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.md5 b/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.md5
index 2947de38..433361d1 100644
--- a/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.md5
+++ b/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.md5
@@ -1 +1 @@
-c1f0d580b0204a69a393bf3ae08d2a9a \ No newline at end of file
+9d1b44a1b755df746f6a7fbb5be1a9de \ No newline at end of file
diff --git a/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.png b/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.png
index 2cca6d50..d0ebdedf 100644
--- a/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.png
+++ b/docs/3.1/class_d_m_x_s_e_r_i_a_l__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_d_m_x_s_e_r_i_a_l__inherit__graph.map b/docs/3.1/class_d_m_x_s_e_r_i_a_l__inherit__graph.map
index d76e820a..3a34fd7f 100644
--- a/docs/3.1/class_d_m_x_s_e_r_i_a_l__inherit__graph.map
+++ b/docs/3.1/class_d_m_x_s_e_r_i_a_l__inherit__graph.map
@@ -1,4 +1,5 @@
<map id="DMXSERIAL&lt; RGB_ORDER &gt;" name="DMXSERIAL&lt; RGB_ORDER &gt;">
-<area shape="rect" id="node2" href="$class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,81,180,122"/>
-<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="50,5,165,32"/>
+<area shape="rect" id="node2" href="$class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,171,180,213"/>
+<area shape="rect" id="node3" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,81,180,122"/>
+<area shape="rect" id="node4" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="50,5,165,32"/>
</map>
diff --git a/docs/3.1/class_d_m_x_s_e_r_i_a_l__inherit__graph.md5 b/docs/3.1/class_d_m_x_s_e_r_i_a_l__inherit__graph.md5
index 52373929..e6a81f2f 100644
--- a/docs/3.1/class_d_m_x_s_e_r_i_a_l__inherit__graph.md5
+++ b/docs/3.1/class_d_m_x_s_e_r_i_a_l__inherit__graph.md5
@@ -1 +1 @@
-6736860a08285fef7cb06ce87e9df2a8 \ No newline at end of file
+3d524229bdfff46bea81ade2481f09d0 \ No newline at end of file
diff --git a/docs/3.1/class_d_m_x_s_e_r_i_a_l__inherit__graph.png b/docs/3.1/class_d_m_x_s_e_r_i_a_l__inherit__graph.png
index 617e3998..c61fabaf 100644
--- a/docs/3.1/class_d_m_x_s_e_r_i_a_l__inherit__graph.png
+++ b/docs/3.1/class_d_m_x_s_e_r_i_a_l__inherit__graph.png
Binary files differ
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 7426b656..e4a458d7 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
@@ -115,48 +115,49 @@ $(document).ready(function(){initNavTree('class_d_m_x_s_i_m_p_l_e.html','');});
<p>This is the complete list of members for <a class="el" href="class_d_m_x_s_i_m_p_l_e.html">DMXSIMPLE&lt; DATA_PIN, RGB_ORDER &gt;</a>, including all inherited members.</p>
<table class="directory">
<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><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a>(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><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 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>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CPixelLEDController</b>() (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &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#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_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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#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_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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 bgcolor="#f0f0f0"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER &gt; &amp;pixels) (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">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0 (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</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#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 -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 ec2fbd90..3a8430d1 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
@@ -120,7 +120,7 @@ $(document).ready(function(){initNavTree('class_d_m_x_s_i_m_p_l_e.html','');});
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_d_m_x_s_i_m_p_l_e__inherit__graph.png" border="0" usemap="#_d_m_x_s_i_m_p_l_e_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="_d_m_x_s_i_m_p_l_e_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map" id="_d_m_x_s_i_m_p_l_e_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map">
-<area shape="rect" id="node2" href="class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="5,81,208,122"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,5,164,32"/></map>
+<area shape="rect" id="node2" href="class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="5,171,208,213"/><area shape="rect" id="node3" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="35,81,179,122"/><area shape="rect" id="node4" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,5,164,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for DMXSIMPLE&lt; DATA_PIN, RGB_ORDER &gt;:</div>
@@ -129,7 +129,7 @@ $(document).ready(function(){initNavTree('class_d_m_x_s_i_m_p_l_e.html','');});
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_d_m_x_s_i_m_p_l_e__coll__graph.png" border="0" usemap="#_d_m_x_s_i_m_p_l_e_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_d_m_x_s_i_m_p_l_e_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map" id="_d_m_x_s_i_m_p_l_e_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map">
-<area shape="rect" id="node2" href="class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="5,219,208,261"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/></map>
+<area shape="rect" id="node2" href="class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="5,313,208,354"/><area shape="rect" id="node3" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="35,219,179,261"/><area shape="rect" id="node4" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/><area shape="rect" id="node5" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/></map>
<center><span class="legend">[<a target="top" 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>
@@ -139,15 +139,15 @@ Additional Inherited Members</h2></td></tr>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3">init</a> ()</td></tr>
<tr class="memdesc:a251c7d09383870337853c360996871c3 inherit pub_methods_class_d_m_x_simple_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the LED controller <br /></td></tr>
<tr class="separator:a251c7d09383870337853c360996871c3 inherit pub_methods_class_d_m_x_simple_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a66deae70caf1d43a8692fff6540d1f1e inherit pub_methods_class_d_m_x_simple_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a66deae70caf1d43a8692fff6540d1f1e"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e">clearLeds</a> (int nLeds)</td></tr>
-<tr class="memdesc:a66deae70caf1d43a8692fff6540d1f1e inherit pub_methods_class_d_m_x_simple_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
-<tr class="separator:a66deae70caf1d43a8692fff6540d1f1e inherit pub_methods_class_d_m_x_simple_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c560c6d171f117dfd19c0f2ec780a32"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a> ()</td></tr>
<tr class="memdesc:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">create an led controller object, add it to the chain of controllers <br /></td></tr>
<tr class="separator:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd0f6ce4701e76ebc4b916e0a04134f2"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a> (int nLeds)</td></tr>
+<tr class="memdesc:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
+<tr class="separator:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe990b9a65f5bff1f391cc5c28752abb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, uint8_t brightness)</td></tr>
<tr class="memdesc:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">show function w/integer brightness, will scale for color correction and temperature <br /></td></tr>
@@ -168,9 +168,6 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<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#a06cfb05ad6e0f7982328928051f3f565">next</a> ()</td></tr>
<tr class="memdesc:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the next controller in the chain after this one. will return NULL at the end of the chain <br /></td></tr>
<tr class="separator:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a55f6d5b215dc14f9473faea938b4c8"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t brightness)</td></tr>
-<tr class="separator:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b08378b29f92c5def65175ec5334037"></a>
<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds)</td></tr>
<tr class="memdesc:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the default array of leds to be used by this controller <br /></td></tr>
@@ -239,19 +236,19 @@ static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</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>
-<tr class="separator:a3fb3a0501aae1d7a6aefb89f77168bd1 inherit pro_methods_class_d_m_x_simple_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a29df92ccb41090893fa3c49f22b47186 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#a29df92ccb41090893fa3c49f22b47186">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:a29df92ccb41090893fa3c49f22b47186 inherit pro_methods_class_d_m_x_simple_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a29df92ccb41090893fa3c49f22b47186">More...</a><br /></td></tr>
-<tr class="separator:a29df92ccb41090893fa3c49f22b47186 inherit pro_methods_class_d_m_x_simple_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aca3638ba70b7bed91e8431ec0a73f6d3 inherit pro_methods_class_d_m_x_simple_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aca3638ba70b7bed91e8431ec0a73f6d3"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t scale=255)=0</td></tr>
-<tr class="separator:aca3638ba70b7bed91e8431ec0a73f6d3 inherit pro_methods_class_d_m_x_simple_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>
-<tr class="separator:a3ae4f61fc85ef4609d65c14ca51434c4 inherit pro_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6744d598f10ba5d97a57df08c46bafab inherit pro_methods_class_d_m_x_simple_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6744d598f10ba5d97a57df08c46bafab"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt; &amp;pixels)</td></tr>
+<tr class="separator:a6744d598f10ba5d97a57df08c46bafab inherit pro_methods_class_d_m_x_simple_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_c_pixel_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_c_pixel_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a></td></tr>
+<tr class="memitem:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ab7248c894ba95c3a71665f5bed2a17"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0</td></tr>
+<tr class="separator:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">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:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#af5569b9e92f75410e03c75bf5764e016">More...</a><br /></td></tr>
+<tr class="separator:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
+<tr class="memdesc:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a36cc2a15671bae0db53df1e26b4a813c">More...</a><br /></td></tr>
+<tr class="separator:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_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>
@@ -284,7 +281,7 @@ static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#
class DMXSIMPLE&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00102">102</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00103">103</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</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>
@@ -294,7 +291,7 @@ class DMXSIMPLE&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_d_m_x_s_i_m_p_l_e.html">DMXSIMPLE</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.map b/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.map
index 36549b12..e97b1a9e 100644
--- a/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.map
+++ b/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.map
@@ -1,5 +1,6 @@
<map id="DMXSIMPLE&lt; DATA_PIN, RGB_ORDER &gt;" name="DMXSIMPLE&lt; DATA_PIN, RGB_ORDER &gt;">
-<area shape="rect" id="node2" href="$class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="5,219,208,261"/>
-<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/>
-<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/>
+<area shape="rect" id="node2" href="$class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="5,313,208,354"/>
+<area shape="rect" id="node3" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="35,219,179,261"/>
+<area shape="rect" id="node4" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/>
+<area shape="rect" id="node5" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/>
</map>
diff --git a/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.md5 b/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.md5
index a67dea97..239a7872 100644
--- a/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.md5
+++ b/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.md5
@@ -1 +1 @@
-34a1a14c2a2700eede342dad949a802c \ No newline at end of file
+50821f407aae3fd5f8f64e001f3e9b31 \ No newline at end of file
diff --git a/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.png b/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.png
index 37484abf..32534461 100644
--- a/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.png
+++ b/docs/3.1/class_d_m_x_s_i_m_p_l_e__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_d_m_x_s_i_m_p_l_e__inherit__graph.map b/docs/3.1/class_d_m_x_s_i_m_p_l_e__inherit__graph.map
index 317558b0..3cc0d4bf 100644
--- a/docs/3.1/class_d_m_x_s_i_m_p_l_e__inherit__graph.map
+++ b/docs/3.1/class_d_m_x_s_i_m_p_l_e__inherit__graph.map
@@ -1,4 +1,5 @@
<map id="DMXSIMPLE&lt; DATA_PIN, RGB_ORDER &gt;" name="DMXSIMPLE&lt; DATA_PIN, RGB_ORDER &gt;">
-<area shape="rect" id="node2" href="$class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="5,81,208,122"/>
-<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,5,164,32"/>
+<area shape="rect" id="node2" href="$class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="5,171,208,213"/>
+<area shape="rect" id="node3" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="35,81,179,122"/>
+<area shape="rect" id="node4" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,5,164,32"/>
</map>
diff --git a/docs/3.1/class_d_m_x_s_i_m_p_l_e__inherit__graph.md5 b/docs/3.1/class_d_m_x_s_i_m_p_l_e__inherit__graph.md5
index e8060f5e..0c243e95 100644
--- a/docs/3.1/class_d_m_x_s_i_m_p_l_e__inherit__graph.md5
+++ b/docs/3.1/class_d_m_x_s_i_m_p_l_e__inherit__graph.md5
@@ -1 +1 @@
-5d9657d053163d2a17b5785f9ad39462 \ No newline at end of file
+e890df962b12a16d3b9a581cc0ff01cb \ No newline at end of file
diff --git a/docs/3.1/class_d_m_x_s_i_m_p_l_e__inherit__graph.png b/docs/3.1/class_d_m_x_s_i_m_p_l_e__inherit__graph.png
index 0b85bb54..89bd3ce1 100644
--- a/docs/3.1/class_d_m_x_s_i_m_p_l_e__inherit__graph.png
+++ b/docs/3.1/class_d_m_x_s_i_m_p_l_e__inherit__graph.png
Binary files differ
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 aaf35d03..5442181e 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
@@ -115,48 +115,49 @@ $(document).ready(function(){initNavTree('class_d_m_x_serial_controller.html',''
<p>This is the complete list of members for <a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController&lt; RGB_ORDER &gt;</a>, including all inherited members.</p>
<table class="directory">
<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><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a>(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><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 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>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CPixelLEDController</b>() (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &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#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_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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#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_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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 bgcolor="#f0f0f0"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER &gt; &amp;pixels) (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">inline</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0 (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</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#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 -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 61b33264..f6abbcda 100644
--- a/docs/3.1/class_d_m_x_serial_controller.html
+++ b/docs/3.1/class_d_m_x_serial_controller.html
@@ -111,7 +111,7 @@ $(document).ready(function(){initNavTree('class_d_m_x_serial_controller.html',''
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_d_m_x_serial_controller-members.html">List of all members</a> </div>
<div class="headertitle">
-<div class="title">DMXSerialController&lt; RGB_ORDER &gt; Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
+<div class="title">DMXSerialController&lt; RGB_ORDER &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
@@ -121,7 +121,7 @@ $(document).ready(function(){initNavTree('class_d_m_x_serial_controller.html',''
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_d_m_x_serial_controller__inherit__graph.png" border="0" usemap="#_d_m_x_serial_controller_3_01_r_g_b___o_r_d_e_r_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="_d_m_x_serial_controller_3_01_r_g_b___o_r_d_e_r_01_4_inherit__map" id="_d_m_x_serial_controller_3_01_r_g_b___o_r_d_e_r_01_4_inherit__map">
-<area shape="rect" id="node3" href="class_d_m_x_s_e_r_i_a_l.html" title="DMXSERIAL\&lt; RGB_ORDER \&gt;" alt="" coords="5,171,211,197"/><area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="50,5,165,32"/></map>
+<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="5,261,211,288"/><area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,81,180,122"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="50,5,165,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for DMXSerialController&lt; RGB_ORDER &gt;:</div>
@@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('class_d_m_x_serial_controller.html',''
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_d_m_x_serial_controller__coll__graph.png" border="0" usemap="#_d_m_x_serial_controller_3_01_r_g_b___o_r_d_e_r_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_d_m_x_serial_controller_3_01_r_g_b___o_r_d_e_r_01_4_coll__map" id="_d_m_x_serial_controller_3_01_r_g_b___o_r_d_e_r_01_4_coll__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="19,133,135,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="47,5,107,32"/></map>
+<area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="5,219,149,261"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="19,133,135,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="47,5,107,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -139,24 +139,18 @@ Public Member Functions</h2></td></tr>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27">init</a> ()</td></tr>
<tr class="memdesc:a0cd937424d4f6eedb90acec81ca1fa27"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the LED controller <br /></td></tr>
<tr class="separator:a0cd937424d4f6eedb90acec81ca1fa27"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a04689efea1c1daf74905f87692caa129"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a04689efea1c1daf74905f87692caa129"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129">clearLeds</a> (int nLeds)</td></tr>
-<tr class="memdesc:a04689efea1c1daf74905f87692caa129"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
-<tr class="separator:a04689efea1c1daf74905f87692caa129"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3d6285e65af8862eb4b0d36d6d3df22b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b">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:a3d6285e65af8862eb4b0d36d6d3df22b"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#a3d6285e65af8862eb4b0d36d6d3df22b">More...</a><br /></td></tr>
-<tr class="separator:a3d6285e65af8862eb4b0d36d6d3df22b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3f3f3e606e495fd1bdcfd25c6bed7fe1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:a3f3f3e606e495fd1bdcfd25c6bed7fe1"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a3f3f3e606e495fd1bdcfd25c6bed7fe1">More...</a><br /></td></tr>
-<tr class="separator:a3f3f3e606e495fd1bdcfd25c6bed7fe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3d2435c0f44aa8a1d8cce24b04bf4103"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3d2435c0f44aa8a1d8cce24b04bf4103"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t scale=255)=0</td></tr>
-<tr class="separator:a3d2435c0f44aa8a1d8cce24b04bf4103"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a861d9beed51cce6441b50398f1eabebf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a861d9beed51cce6441b50398f1eabebf"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt; &amp;pixels)</td></tr>
+<tr class="separator:a861d9beed51cce6441b50398f1eabebf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c560c6d171f117dfd19c0f2ec780a32"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a> ()</td></tr>
<tr class="memdesc:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">create an led controller object, add it to the chain of controllers <br /></td></tr>
<tr class="separator:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd0f6ce4701e76ebc4b916e0a04134f2"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a> (int nLeds)</td></tr>
+<tr class="memdesc:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
+<tr class="separator:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe990b9a65f5bff1f391cc5c28752abb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, uint8_t brightness)</td></tr>
<tr class="memdesc:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">show function w/integer brightness, will scale for color correction and temperature <br /></td></tr>
@@ -177,9 +171,6 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<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#a06cfb05ad6e0f7982328928051f3f565">next</a> ()</td></tr>
<tr class="memdesc:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the next controller in the chain after this one. will return NULL at the end of the chain <br /></td></tr>
<tr class="separator:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a55f6d5b215dc14f9473faea938b4c8"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t brightness)</td></tr>
-<tr class="separator:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b08378b29f92c5def65175ec5334037"></a>
<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds)</td></tr>
<tr class="memdesc:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the default array of leds to be used by this controller <br /></td></tr>
@@ -250,10 +241,16 @@ static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#
<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>
-<tr class="separator:a3ae4f61fc85ef4609d65c14ca51434c4 inherit pro_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_c_pixel_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_c_pixel_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a></td></tr>
+<tr class="memitem:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ab7248c894ba95c3a71665f5bed2a17"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0</td></tr>
+<tr class="separator:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">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:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#af5569b9e92f75410e03c75bf5764e016">More...</a><br /></td></tr>
+<tr class="separator:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
+<tr class="memdesc:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a36cc2a15671bae0db53df1e26b4a813c">More...</a><br /></td></tr>
+<tr class="separator:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_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>
@@ -286,121 +283,8 @@ static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#
class DMXSerialController&lt; RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="dmx_8h_source.html#l00065">65</a> of file <a class="el" href="dmx_8h_source.html">dmx.h</a>.</p>
-</div><h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="a3f3f3e606e495fd1bdcfd25c6bed7fe1"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;EOrder RGB_ORDER = RGB&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController</a>&lt; RGB_ORDER &gt;::show </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>write the passed in rgb data out to the leds managed by this controller </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the rgb data to write out to the strip </td></tr>
- <tr><td class="paramname">nLeds</td><td>the number of leds being written out </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling to apply to each led before writing it out </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="dmx_8h_source.html#l00089">89</a> of file <a class="el" href="dmx_8h_source.html">dmx.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3d6285e65af8862eb4b0d36d6d3df22b"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;EOrder RGB_ORDER = RGB&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController</a>&lt; RGB_ORDER &gt;::showColor </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>set all the leds on the controller to a given color </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the crgb color to set the leds to </td></tr>
- <tr><td class="paramname">nLeds</td><td>the numner of leds to set to this color </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling value for outputting color </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="dmx_8h_source.html#l00077">77</a> of file <a class="el" href="dmx_8h_source.html">dmx.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
+<p>Definition at line <a class="el" href="dmx_8h_source.html#l00042">42</a> of file <a class="el" href="dmx_8h_source.html">dmx.h</a>.</p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="dmx_8h_source.html">dmx.h</a></li>
</ul>
</div><!-- contents -->
@@ -409,7 +293,7 @@ template&lt;EOrder RGB_ORDER = RGB&gt; </div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_d_m_x_serial_controller.html">DMXSerialController</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_d_m_x_serial_controller.js b/docs/3.1/class_d_m_x_serial_controller.js
index e0ffe210..2954fa87 100644
--- a/docs/3.1/class_d_m_x_serial_controller.js
+++ b/docs/3.1/class_d_m_x_serial_controller.js
@@ -1,8 +1,5 @@
var class_d_m_x_serial_controller =
[
- [ "clearLeds", "class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129", null ],
[ "init", "class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27", null ],
- [ "show", "class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1", null ],
- [ "show", "class_d_m_x_serial_controller.html#a3d2435c0f44aa8a1d8cce24b04bf4103", null ],
- [ "showColor", "class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b", null ]
+ [ "showPixels", "class_d_m_x_serial_controller.html#a861d9beed51cce6441b50398f1eabebf", null ]
]; \ No newline at end of file
diff --git a/docs/3.1/class_d_m_x_serial_controller__coll__graph.map b/docs/3.1/class_d_m_x_serial_controller__coll__graph.map
index a5af5136..0f21d9cf 100644
--- a/docs/3.1/class_d_m_x_serial_controller__coll__graph.map
+++ b/docs/3.1/class_d_m_x_serial_controller__coll__graph.map
@@ -1,4 +1,5 @@
<map id="DMXSerialController&lt; RGB_ORDER &gt;" name="DMXSerialController&lt; RGB_ORDER &gt;">
-<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="19,133,135,160"/>
-<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="47,5,107,32"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="5,219,149,261"/>
+<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="19,133,135,160"/>
+<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="47,5,107,32"/>
</map>
diff --git a/docs/3.1/class_d_m_x_serial_controller__coll__graph.md5 b/docs/3.1/class_d_m_x_serial_controller__coll__graph.md5
index 18c24d1d..7456d6e5 100644
--- a/docs/3.1/class_d_m_x_serial_controller__coll__graph.md5
+++ b/docs/3.1/class_d_m_x_serial_controller__coll__graph.md5
@@ -1 +1 @@
-1b8f92baab4d075d71e2dc9c5f4e84bf \ No newline at end of file
+b21f6871a64b9c091eeed08c9148cddd \ No newline at end of file
diff --git a/docs/3.1/class_d_m_x_serial_controller__coll__graph.png b/docs/3.1/class_d_m_x_serial_controller__coll__graph.png
index b061f038..4a9e048a 100644
--- a/docs/3.1/class_d_m_x_serial_controller__coll__graph.png
+++ b/docs/3.1/class_d_m_x_serial_controller__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_d_m_x_serial_controller__inherit__graph.map b/docs/3.1/class_d_m_x_serial_controller__inherit__graph.map
index 36a0d418..8f81d0ad 100644
--- a/docs/3.1/class_d_m_x_serial_controller__inherit__graph.map
+++ b/docs/3.1/class_d_m_x_serial_controller__inherit__graph.map
@@ -1,4 +1,5 @@
<map id="DMXSerialController&lt; RGB_ORDER &gt;" name="DMXSerialController&lt; RGB_ORDER &gt;">
-<area shape="rect" id="node3" href="$class_d_m_x_s_e_r_i_a_l.html" title="DMXSERIAL\&lt; RGB_ORDER \&gt;" alt="" coords="5,171,211,197"/>
-<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="50,5,165,32"/>
+<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="5,261,211,288"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="36,81,180,122"/>
+<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="50,5,165,32"/>
</map>
diff --git a/docs/3.1/class_d_m_x_serial_controller__inherit__graph.md5 b/docs/3.1/class_d_m_x_serial_controller__inherit__graph.md5
index 7311a3eb..43c7ce87 100644
--- a/docs/3.1/class_d_m_x_serial_controller__inherit__graph.md5
+++ b/docs/3.1/class_d_m_x_serial_controller__inherit__graph.md5
@@ -1 +1 @@
-e42e84eb927936a9369675fd30f8517b \ No newline at end of file
+ae38257e15e1a757120326741a246f14 \ No newline at end of file
diff --git a/docs/3.1/class_d_m_x_serial_controller__inherit__graph.png b/docs/3.1/class_d_m_x_serial_controller__inherit__graph.png
index 4a881355..4c444a37 100644
--- a/docs/3.1/class_d_m_x_serial_controller__inherit__graph.png
+++ b/docs/3.1/class_d_m_x_serial_controller__inherit__graph.png
Binary files differ
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 7d7410bc..517c650a 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
@@ -115,48 +115,49 @@ $(document).ready(function(){initNavTree('class_d_m_x_simple_controller.html',''
<p>This is the complete list of members for <a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a>, including all inherited members.</p>
<table class="directory">
<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><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a>(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><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 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>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CPixelLEDController</b>() (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &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#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_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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#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_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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 bgcolor="#f0f0f0"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER &gt; &amp;pixels) (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">inline</span><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0 (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</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#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 -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 f001c17f..8ce33fa7 100644
--- a/docs/3.1/class_d_m_x_simple_controller.html
+++ b/docs/3.1/class_d_m_x_simple_controller.html
@@ -112,7 +112,7 @@ $(document).ready(function(){initNavTree('class_d_m_x_simple_controller.html',''
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="class_d_m_x_simple_controller-members.html">List of all members</a> </div>
<div class="headertitle">
-<div class="title">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span><div class="ingroups"><a class="el" href="group__chipsets.html">Chipsets</a></div></div> </div>
+<div class="title">DMXSimpleController&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 id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
@@ -122,7 +122,7 @@ $(document).ready(function(){initNavTree('class_d_m_x_simple_controller.html',''
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_d_m_x_simple_controller__inherit__graph.png" border="0" usemap="#_d_m_x_simple_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="_d_m_x_simple_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map" id="_d_m_x_simple_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_inherit__map">
-<area shape="rect" id="node3" href="class_d_m_x_s_i_m_p_l_e.html" title="DMXSIMPLE\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="16,171,197,213"/><area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,5,164,32"/></map>
+<area shape="rect" id="node4" href="class_d_m_x_s_i_m_p_l_e.html" title="DMXSIMPLE\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="16,262,197,303"/><area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="35,81,179,122"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,5,164,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;:</div>
@@ -131,7 +131,7 @@ $(document).ready(function(){initNavTree('class_d_m_x_simple_controller.html',''
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_d_m_x_simple_controller__coll__graph.png" border="0" usemap="#_d_m_x_simple_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_d_m_x_simple_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map" id="_d_m_x_simple_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/></map>
+<area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="35,219,179,261"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -140,15 +140,15 @@ Public Member Functions</h2></td></tr>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3">init</a> ()</td></tr>
<tr class="memdesc:a251c7d09383870337853c360996871c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the LED controller <br /></td></tr>
<tr class="separator:a251c7d09383870337853c360996871c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a66deae70caf1d43a8692fff6540d1f1e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a66deae70caf1d43a8692fff6540d1f1e"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e">clearLeds</a> (int nLeds)</td></tr>
-<tr class="memdesc:a66deae70caf1d43a8692fff6540d1f1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
-<tr class="separator:a66deae70caf1d43a8692fff6540d1f1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c560c6d171f117dfd19c0f2ec780a32"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a> ()</td></tr>
<tr class="memdesc:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">create an led controller object, add it to the chain of controllers <br /></td></tr>
<tr class="separator:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd0f6ce4701e76ebc4b916e0a04134f2"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a> (int nLeds)</td></tr>
+<tr class="memdesc:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
+<tr class="separator:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe990b9a65f5bff1f391cc5c28752abb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, uint8_t brightness)</td></tr>
<tr class="memdesc:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">show function w/integer brightness, will scale for color correction and temperature <br /></td></tr>
@@ -169,9 +169,6 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<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#a06cfb05ad6e0f7982328928051f3f565">next</a> ()</td></tr>
<tr class="memdesc:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the next controller in the chain after this one. will return NULL at the end of the chain <br /></td></tr>
<tr class="separator:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a55f6d5b215dc14f9473faea938b4c8"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t brightness)</td></tr>
-<tr class="separator:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b08378b29f92c5def65175ec5334037"></a>
<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds)</td></tr>
<tr class="memdesc:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the default array of leds to be used by this controller <br /></td></tr>
@@ -234,19 +231,19 @@ virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getMaxRef
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
-<tr class="memitem:a3fb3a0501aae1d7a6aefb89f77168bd1"><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"><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>
-<tr class="separator:a3fb3a0501aae1d7a6aefb89f77168bd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a29df92ccb41090893fa3c49f22b47186"><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#a29df92ccb41090893fa3c49f22b47186">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:a29df92ccb41090893fa3c49f22b47186"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a29df92ccb41090893fa3c49f22b47186">More...</a><br /></td></tr>
-<tr class="separator:a29df92ccb41090893fa3c49f22b47186"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aca3638ba70b7bed91e8431ec0a73f6d3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aca3638ba70b7bed91e8431ec0a73f6d3"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t scale=255)=0</td></tr>
-<tr class="separator:aca3638ba70b7bed91e8431ec0a73f6d3"><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>
-<tr class="separator:a3ae4f61fc85ef4609d65c14ca51434c4 inherit pro_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6744d598f10ba5d97a57df08c46bafab"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6744d598f10ba5d97a57df08c46bafab"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt; &amp;pixels)</td></tr>
+<tr class="separator:a6744d598f10ba5d97a57df08c46bafab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_c_pixel_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_c_pixel_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a></td></tr>
+<tr class="memitem:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ab7248c894ba95c3a71665f5bed2a17"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0</td></tr>
+<tr class="separator:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">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:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#af5569b9e92f75410e03c75bf5764e016">More...</a><br /></td></tr>
+<tr class="separator:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
+<tr class="memdesc:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a36cc2a15671bae0db53df1e26b4a813c">More...</a><br /></td></tr>
+<tr class="separator:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
@@ -290,121 +287,8 @@ static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#
class DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="dmx_8h_source.html#l00014">14</a> of file <a class="el" href="dmx_8h_source.html">dmx.h</a>.</p>
-</div><h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="a29df92ccb41090893fa3c49f22b47186"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController</a>&lt; DATA_PIN, RGB_ORDER &gt;::show </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>write the passed in rgb data out to the leds managed by this controller </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the rgb data to write out to the strip </td></tr>
- <tr><td class="paramname">nLeds</td><td>the number of leds being written out </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling to apply to each led before writing it out </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="dmx_8h_source.html#l00039">39</a> of file <a class="el" href="dmx_8h_source.html">dmx.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a3fb3a0501aae1d7a6aefb89f77168bd1"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController</a>&lt; DATA_PIN, RGB_ORDER &gt;::showColor </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>set all the leds on the controller to a given color </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the crgb color to set the leds to </td></tr>
- <tr><td class="paramname">nLeds</td><td>the numner of leds to set to this color </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling value for outputting color </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="dmx_8h_source.html#l00027">27</a> of file <a class="el" href="dmx_8h_source.html">dmx.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
+<p>Definition at line <a class="el" href="dmx_8h_source.html#l00015">15</a> of file <a class="el" href="dmx_8h_source.html">dmx.h</a>.</p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="dmx_8h_source.html">dmx.h</a></li>
</ul>
</div><!-- contents -->
@@ -413,7 +297,7 @@ template&lt;uint8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt; </div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_d_m_x_simple_controller.html">DMXSimpleController</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_d_m_x_simple_controller.js b/docs/3.1/class_d_m_x_simple_controller.js
index 00501eea..4372c4e2 100644
--- a/docs/3.1/class_d_m_x_simple_controller.js
+++ b/docs/3.1/class_d_m_x_simple_controller.js
@@ -1,8 +1,5 @@
var class_d_m_x_simple_controller =
[
- [ "clearLeds", "class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e", null ],
[ "init", "class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3", null ],
- [ "show", "class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186", null ],
- [ "show", "class_d_m_x_simple_controller.html#aca3638ba70b7bed91e8431ec0a73f6d3", null ],
- [ "showColor", "class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1", null ]
+ [ "showPixels", "class_d_m_x_simple_controller.html#a6744d598f10ba5d97a57df08c46bafab", null ]
]; \ No newline at end of file
diff --git a/docs/3.1/class_d_m_x_simple_controller__coll__graph.map b/docs/3.1/class_d_m_x_simple_controller__coll__graph.map
index c4d72d80..797495ba 100644
--- a/docs/3.1/class_d_m_x_simple_controller__coll__graph.map
+++ b/docs/3.1/class_d_m_x_simple_controller__coll__graph.map
@@ -1,4 +1,5 @@
<map id="DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;" name="DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;">
-<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/>
-<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="35,219,179,261"/>
+<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/>
+<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/>
</map>
diff --git a/docs/3.1/class_d_m_x_simple_controller__coll__graph.md5 b/docs/3.1/class_d_m_x_simple_controller__coll__graph.md5
index a4635631..4951060b 100644
--- a/docs/3.1/class_d_m_x_simple_controller__coll__graph.md5
+++ b/docs/3.1/class_d_m_x_simple_controller__coll__graph.md5
@@ -1 +1 @@
-19f55c2458eee7fb00a1b5d725976a81 \ No newline at end of file
+2809f219d6571593cdba82ea3ebb2683 \ No newline at end of file
diff --git a/docs/3.1/class_d_m_x_simple_controller__coll__graph.png b/docs/3.1/class_d_m_x_simple_controller__coll__graph.png
index 9f564a79..d2bb75ef 100644
--- a/docs/3.1/class_d_m_x_simple_controller__coll__graph.png
+++ b/docs/3.1/class_d_m_x_simple_controller__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_d_m_x_simple_controller__inherit__graph.map b/docs/3.1/class_d_m_x_simple_controller__inherit__graph.map
index e7e20112..83b9a217 100644
--- a/docs/3.1/class_d_m_x_simple_controller__inherit__graph.map
+++ b/docs/3.1/class_d_m_x_simple_controller__inherit__graph.map
@@ -1,4 +1,5 @@
<map id="DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;" name="DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;">
-<area shape="rect" id="node3" href="$class_d_m_x_s_i_m_p_l_e.html" title="DMXSIMPLE\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="16,171,197,213"/>
-<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,5,164,32"/>
+<area shape="rect" id="node4" href="$class_d_m_x_s_i_m_p_l_e.html" title="DMXSIMPLE\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="16,262,197,303"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="35,81,179,122"/>
+<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,5,164,32"/>
</map>
diff --git a/docs/3.1/class_d_m_x_simple_controller__inherit__graph.md5 b/docs/3.1/class_d_m_x_simple_controller__inherit__graph.md5
index fb23e29f..61bba784 100644
--- a/docs/3.1/class_d_m_x_simple_controller__inherit__graph.md5
+++ b/docs/3.1/class_d_m_x_simple_controller__inherit__graph.md5
@@ -1 +1 @@
-c95721d6c3a9e188606f34053eadd936 \ No newline at end of file
+56d9dec44d4af3f9295a415aabb50e3e \ No newline at end of file
diff --git a/docs/3.1/class_d_m_x_simple_controller__inherit__graph.png b/docs/3.1/class_d_m_x_simple_controller__inherit__graph.png
index 444a0347..844c73a5 100644
--- a/docs/3.1/class_d_m_x_simple_controller__inherit__graph.png
+++ b/docs/3.1/class_d_m_x_simple_controller__inherit__graph.png
Binary files differ
diff --git a/docs/3.1/class_fast_pin-members.html b/docs/3.1/class_fast_pin-members.html
index 91ab4dc1..14bdcc78 100644
--- a/docs/3.1/class_fast_pin-members.html
+++ b/docs/3.1/class_fast_pin-members.html
@@ -151,7 +151,7 @@ $(document).ready(function(){initNavTree('class_fast_pin.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_fast_pin.html b/docs/3.1/class_fast_pin.html
index a884c9b7..a425a2e6 100644
--- a/docs/3.1/class_fast_pin.html
+++ b/docs/3.1/class_fast_pin.html
@@ -242,7 +242,7 @@ class FastPin&lt; PIN &gt;</h3>
<p>There are platform specific instantiations of this class that provide direct i/o register access to pins for much higher speed pin twiddling.</p>
<p>Note that these classes are all static functions. So the proper usage is Pin&lt;13&gt;::hi(); or such. Instantiating objects is not recommended, as passing <a class="el" href="class_pin.html">Pin</a> objects around will likely -not- have the effect you're expecting. </p>
-<p>Definition at line <a class="el" href="fastpin_8h_source.html#l00158">158</a> of file <a class="el" href="fastpin_8h_source.html">fastpin.h</a>.</p>
+<p>Definition at line <a class="el" href="fastpin_8h_source.html#l00160">160</a> of file <a class="el" href="fastpin_8h_source.html">fastpin.h</a>.</p>
</div><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>
</ul>
@@ -252,7 +252,7 @@ class FastPin&lt; PIN &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_fast_pin.html">FastPin</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 178fd834..bf941604 100644
--- a/docs/3.1/class_fast_pin_b_b-members.html
+++ b/docs/3.1/class_fast_pin_b_b-members.html
@@ -151,7 +151,7 @@ $(document).ready(function(){initNavTree('class_fast_pin_b_b.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_fast_pin_b_b.html b/docs/3.1/class_fast_pin_b_b.html
index 0c319602..71045c2f 100644
--- a/docs/3.1/class_fast_pin_b_b.html
+++ b/docs/3.1/class_fast_pin_b_b.html
@@ -238,7 +238,7 @@ static port_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b> ()
class FastPinBB&lt; PIN &gt;</h3>
-<p>Definition at line <a class="el" href="fastpin_8h_source.html#l00236">236</a> of file <a class="el" href="fastpin_8h_source.html">fastpin.h</a>.</p>
+<p>Definition at line <a class="el" href="fastpin_8h_source.html#l00238">238</a> of file <a class="el" href="fastpin_8h_source.html">fastpin.h</a>.</p>
</div><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>
</ul>
@@ -248,7 +248,7 @@ class FastPinBB&lt; PIN &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_fast_pin_b_b.html">FastPinBB</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_g_w6205.html b/docs/3.1/class_g_w6205.html
index 2daba91b..faa88b07 100644
--- a/docs/3.1/class_g_w6205.html
+++ b/docs/3.1/class_g_w6205.html
@@ -134,7 +134,7 @@ $(document).ready(function(){initNavTree('class_g_w6205.html','');});
class GW6205&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00098">98</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00099">99</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</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>
@@ -144,7 +144,7 @@ class GW6205&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_g_w6205.html">GW6205</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_g_w6205__400.html b/docs/3.1/class_g_w6205__400.html
index 801918be..65acf740 100644
--- a/docs/3.1/class_g_w6205__400.html
+++ b/docs/3.1/class_g_w6205__400.html
@@ -134,7 +134,7 @@ $(document).ready(function(){initNavTree('class_g_w6205__400.html','');});
class GW6205_400&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00099">99</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00100">100</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</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>
@@ -144,7 +144,7 @@ class GW6205_400&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_g_w6205__400.html">GW6205_400</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_g_w6205_controller400_khz.html b/docs/3.1/class_g_w6205_controller400_khz.html
index f0756921..da99a422 100644
--- a/docs/3.1/class_g_w6205_controller400_khz.html
+++ b/docs/3.1/class_g_w6205_controller400_khz.html
@@ -132,7 +132,7 @@ $(document).ready(function(){initNavTree('class_g_w6205_controller400_khz.html',
class GW6205Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00547">547</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00358">358</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -142,7 +142,7 @@ class GW6205Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_g_w6205_controller400_khz.html">GW6205Controller400Khz</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_g_w6205_controller800_khz.html b/docs/3.1/class_g_w6205_controller800_khz.html
index b371d73a..b0842ead 100644
--- a/docs/3.1/class_g_w6205_controller800_khz.html
+++ b/docs/3.1/class_g_w6205_controller800_khz.html
@@ -132,7 +132,7 @@ $(document).ready(function(){initNavTree('class_g_w6205_controller800_khz.html',
class GW6205Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00550">550</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00361">361</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -142,7 +142,7 @@ class GW6205Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_g_w6205_controller800_khz.html">GW6205Controller800Khz</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_input_pin-members.html b/docs/3.1/class_input_pin-members.html
index ca7c82ba..5cb68da6 100644
--- a/docs/3.1/class_input_pin-members.html
+++ b/docs/3.1/class_input_pin-members.html
@@ -162,7 +162,7 @@ $(document).ready(function(){initNavTree('class_input_pin.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_input_pin.html b/docs/3.1/class_input_pin.html
index cbce6e67..b755d533 100644
--- a/docs/3.1/class_input_pin.html
+++ b/docs/3.1/class_input_pin.html
@@ -272,7 +272,7 @@ typedef RwReg&#160;</td><td class="memItemRight" valign="bottom"><b>port_t</b></
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p>Definition at line <a class="el" href="fastpin_8h_source.html#l00078">78</a> of file <a class="el" href="fastpin_8h_source.html">fastpin.h</a>.</p>
+<p>Definition at line <a class="el" href="fastpin_8h_source.html#l00080">80</a> of file <a class="el" href="fastpin_8h_source.html">fastpin.h</a>.</p>
</div><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>
</ul>
@@ -282,7 +282,7 @@ typedef RwReg&#160;</td><td class="memItemRight" valign="bottom"><b>port_t</b></
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_input_pin.html">InputPin</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_l_p_d1886.html b/docs/3.1/class_l_p_d1886.html
index b53dade3..e671167c 100644
--- a/docs/3.1/class_l_p_d1886.html
+++ b/docs/3.1/class_l_p_d1886.html
@@ -134,7 +134,7 @@ $(document).ready(function(){initNavTree('class_l_p_d1886.html','');});
class LPD1886&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00100">100</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00101">101</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</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>
@@ -144,7 +144,7 @@ class LPD1886&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_l_p_d1886.html">LPD1886</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 fbb71e7d..52349147 100644
--- a/docs/3.1/class_l_p_d1886_controller1250_khz.html
+++ b/docs/3.1/class_l_p_d1886_controller1250_khz.html
@@ -132,7 +132,7 @@ $(document).ready(function(){initNavTree('class_l_p_d1886_controller1250_khz.htm
class LPD1886Controller1250Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00510">510</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00318">318</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -142,7 +142,7 @@ class LPD1886Controller1250Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_l_p_d1886_controller1250_khz.html">LPD1886Controller1250Khz</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 bba616e5..80a008a7 100644
--- a/docs/3.1/class_l_p_d8806_controller-members.html
+++ b/docs/3.1/class_l_p_d8806_controller-members.html
@@ -115,49 +115,50 @@ $(document).ready(function(){initNavTree('class_l_p_d8806_controller.html','');}
<p>This is the complete list of members for <a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, including all inherited members.</p>
<table class="directory">
<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><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a>(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><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 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>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CPixelLEDController</b>() (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &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#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_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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#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_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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 bgcolor="#f0f0f0" class="even"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER &gt; &amp;pixels) (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>showPixels</b>(PixelController&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0 (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</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#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 -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_l_p_d8806_controller.html b/docs/3.1/class_l_p_d8806_controller.html
index b4614f70..68518686 100644
--- a/docs/3.1/class_l_p_d8806_controller.html
+++ b/docs/3.1/class_l_p_d8806_controller.html
@@ -128,7 +128,7 @@ $(document).ready(function(){initNavTree('class_l_p_d8806_controller.html','');}
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_l_p_d8806_controller__inherit__graph.png" border="0" usemap="#_l_p_d8806_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="_l_p_d8806_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map" id="_l_p_d8806_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,5,164,32"/></map>
+<area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="35,81,179,122"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,5,164,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;:</div>
@@ -137,7 +137,7 @@ $(document).ready(function(){initNavTree('class_l_p_d8806_controller.html','');}
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_l_p_d8806_controller__coll__graph.png" border="0" usemap="#_l_p_d8806_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_l_p_d8806_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" id="_l_p_d8806_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/></map>
+<area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="35,219,179,261"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -146,15 +146,15 @@ Public Member Functions</h2></td></tr>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608">init</a> ()</td></tr>
<tr class="memdesc:abe5be69b938d0709cfc77fcf57c75608"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the LED controller <br /></td></tr>
<tr class="separator:abe5be69b938d0709cfc77fcf57c75608"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7da0ecf67004256c83131406b2f4889e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7da0ecf67004256c83131406b2f4889e"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e">clearLeds</a> (int nLeds)</td></tr>
-<tr class="memdesc:a7da0ecf67004256c83131406b2f4889e"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
-<tr class="separator:a7da0ecf67004256c83131406b2f4889e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c560c6d171f117dfd19c0f2ec780a32"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a> ()</td></tr>
<tr class="memdesc:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">create an led controller object, add it to the chain of controllers <br /></td></tr>
<tr class="separator:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd0f6ce4701e76ebc4b916e0a04134f2"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a> (int nLeds)</td></tr>
+<tr class="memdesc:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
+<tr class="separator:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe990b9a65f5bff1f391cc5c28752abb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, uint8_t brightness)</td></tr>
<tr class="memdesc:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">show function w/integer brightness, will scale for color correction and temperature <br /></td></tr>
@@ -175,9 +175,6 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<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#a06cfb05ad6e0f7982328928051f3f565">next</a> ()</td></tr>
<tr class="memdesc:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the next controller in the chain after this one. will return NULL at the end of the chain <br /></td></tr>
<tr class="separator:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a55f6d5b215dc14f9473faea938b4c8"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t brightness)</td></tr>
-<tr class="separator:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b08378b29f92c5def65175ec5334037"></a>
<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds)</td></tr>
<tr class="memdesc:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the default array of leds to be used by this controller <br /></td></tr>
@@ -240,19 +237,19 @@ virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getMaxRef
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
-<tr class="memitem:a4f6471eddcfe5445502b02f1f3179259"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259">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:a4f6471eddcfe5445502b02f1f3179259"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#a4f6471eddcfe5445502b02f1f3179259">More...</a><br /></td></tr>
-<tr class="separator:a4f6471eddcfe5445502b02f1f3179259"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a31d4e01a823682556e26748193f722e5"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:a31d4e01a823682556e26748193f722e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a31d4e01a823682556e26748193f722e5">More...</a><br /></td></tr>
-<tr class="separator:a31d4e01a823682556e26748193f722e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a53fa59f3f195e48e956428d862168a7d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a53fa59f3f195e48e956428d862168a7d"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t scale)</td></tr>
-<tr class="separator:a53fa59f3f195e48e956428d862168a7d"><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>
-<tr class="separator:a3ae4f61fc85ef4609d65c14ca51434c4 inherit pro_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a07a53c93ffb5e70dbf6c9390f40c76c2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a07a53c93ffb5e70dbf6c9390f40c76c2"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt; &amp;pixels)</td></tr>
+<tr class="separator:a07a53c93ffb5e70dbf6c9390f40c76c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_c_pixel_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_c_pixel_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a></td></tr>
+<tr class="memitem:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ab7248c894ba95c3a71665f5bed2a17"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0</td></tr>
+<tr class="separator:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">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:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#af5569b9e92f75410e03c75bf5764e016">More...</a><br /></td></tr>
+<tr class="separator:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
+<tr class="memdesc:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a36cc2a15671bae0db53df1e26b4a813c">More...</a><br /></td></tr>
+<tr class="separator:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
@@ -306,121 +303,8 @@ class LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</h3>
</dd>
</dl>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00098">98</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-</div><h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="a31d4e01a823682556e26748193f722e5"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t SPI_SPEED = DATA_RATE_MHZ(12)&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller</a>&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;::show </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>write the passed in rgb data out to the leds managed by this controller </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the rgb data to write out to the strip </td></tr>
- <tr><td class="paramname">nLeds</td><td>the number of leds being written out </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling to apply to each led before writing it out </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00146">146</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a4f6471eddcfe5445502b02f1f3179259"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t SPI_SPEED = DATA_RATE_MHZ(12)&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller</a>&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;::showColor </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>set all the leds on the controller to a given color </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the crgb color to set the leds to </td></tr>
- <tr><td class="paramname">nLeds</td><td>the numner of leds to set to this color </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling value for outputting color </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00142">142</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00081">81</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+</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 -->
@@ -429,7 +313,7 @@ template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_l_p_d8806_controller.html">LPD8806Controller</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_l_p_d8806_controller.js b/docs/3.1/class_l_p_d8806_controller.js
index 1daa1214..fe7171c0 100644
--- a/docs/3.1/class_l_p_d8806_controller.js
+++ b/docs/3.1/class_l_p_d8806_controller.js
@@ -1,9 +1,6 @@
var class_l_p_d8806_controller =
[
[ "LPD8806Controller", "class_l_p_d8806_controller.html#aee799ebbd2f631f61e3564b3bc4d43eb", null ],
- [ "clearLeds", "class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e", null ],
[ "init", "class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608", null ],
- [ "show", "class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5", null ],
- [ "show", "class_l_p_d8806_controller.html#a53fa59f3f195e48e956428d862168a7d", null ],
- [ "showColor", "class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259", null ]
+ [ "showPixels", "class_l_p_d8806_controller.html#a07a53c93ffb5e70dbf6c9390f40c76c2", null ]
]; \ No newline at end of file
diff --git a/docs/3.1/class_l_p_d8806_controller__coll__graph.map b/docs/3.1/class_l_p_d8806_controller__coll__graph.map
index ceab78b1..35cb6b17 100644
--- a/docs/3.1/class_l_p_d8806_controller__coll__graph.map
+++ b/docs/3.1/class_l_p_d8806_controller__coll__graph.map
@@ -1,4 +1,5 @@
<map id="LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
-<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/>
-<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="35,219,179,261"/>
+<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/>
+<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/>
</map>
diff --git a/docs/3.1/class_l_p_d8806_controller__coll__graph.md5 b/docs/3.1/class_l_p_d8806_controller__coll__graph.md5
index 6c101676..76759347 100644
--- a/docs/3.1/class_l_p_d8806_controller__coll__graph.md5
+++ b/docs/3.1/class_l_p_d8806_controller__coll__graph.md5
@@ -1 +1 @@
-5f913f82ce922b88a87346fcdece7f1e \ No newline at end of file
+467b16bf50faf8fa70a52d579998de57 \ No newline at end of file
diff --git a/docs/3.1/class_l_p_d8806_controller__coll__graph.png b/docs/3.1/class_l_p_d8806_controller__coll__graph.png
index 03015e84..cefb7a69 100644
--- a/docs/3.1/class_l_p_d8806_controller__coll__graph.png
+++ b/docs/3.1/class_l_p_d8806_controller__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_l_p_d8806_controller__inherit__graph.map b/docs/3.1/class_l_p_d8806_controller__inherit__graph.map
index c52da45b..e8137732 100644
--- a/docs/3.1/class_l_p_d8806_controller__inherit__graph.map
+++ b/docs/3.1/class_l_p_d8806_controller__inherit__graph.map
@@ -1,3 +1,4 @@
<map id="LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
-<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,5,164,32"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="35,81,179,122"/>
+<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,5,164,32"/>
</map>
diff --git a/docs/3.1/class_l_p_d8806_controller__inherit__graph.md5 b/docs/3.1/class_l_p_d8806_controller__inherit__graph.md5
index 6c228bb4..14b64084 100644
--- a/docs/3.1/class_l_p_d8806_controller__inherit__graph.md5
+++ b/docs/3.1/class_l_p_d8806_controller__inherit__graph.md5
@@ -1 +1 @@
-2ba6c4571d2faf6e799417cad1df7dd5 \ No newline at end of file
+0b5657197beb247bf9b94845bb7f6a03 \ No newline at end of file
diff --git a/docs/3.1/class_l_p_d8806_controller__inherit__graph.png b/docs/3.1/class_l_p_d8806_controller__inherit__graph.png
index 1a786661..6109312d 100644
--- a/docs/3.1/class_l_p_d8806_controller__inherit__graph.png
+++ b/docs/3.1/class_l_p_d8806_controller__inherit__graph.png
Binary files differ
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 15816aad..7fb3c558 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
@@ -144,7 +144,7 @@ class NEOPIXEL&lt; DATA_PIN &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_n_e_o_p_i_x_e_l.html">NEOPIXEL</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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
index 70a0378a..7aa26b80 100644
--- 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
@@ -134,7 +134,7 @@ $(document).ready(function(){initNavTree('class_n_o_p_s_p_i_output.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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
index a473d69b..e571eca4 100644
--- 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
@@ -165,7 +165,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<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="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">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>
@@ -192,7 +192,7 @@ 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>
-<p>Definition at line <a class="el" href="fastspi__nop_8h_source.html#l00010">10</a> of file <a class="el" href="fastspi__nop_8h_source.html">fastspi_nop.h</a>.</p>
+<p>Definition at line <a class="el" href="fastspi__nop_8h_source.html#l00014">14</a> of file <a class="el" href="fastspi__nop_8h_source.html">fastspi_nop.h</a>.</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>
@@ -202,7 +202,7 @@ class NOPSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_n_o_p_s_p_i_output.html">NOPSPIOutput</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_output_pin-members.html b/docs/3.1/class_output_pin-members.html
index 21ddc78d..5639b4d8 100644
--- a/docs/3.1/class_output_pin-members.html
+++ b/docs/3.1/class_output_pin-members.html
@@ -162,7 +162,7 @@ $(document).ready(function(){initNavTree('class_output_pin.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_output_pin.html b/docs/3.1/class_output_pin.html
index 4ace4932..3f3626f3 100644
--- a/docs/3.1/class_output_pin.html
+++ b/docs/3.1/class_output_pin.html
@@ -272,7 +272,7 @@ typedef RwReg&#160;</td><td class="memItemRight" valign="bottom"><b>port_t</b></
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p>Definition at line <a class="el" href="fastpin_8h_source.html#l00073">73</a> of file <a class="el" href="fastpin_8h_source.html">fastpin.h</a>.</p>
+<p>Definition at line <a class="el" href="fastpin_8h_source.html#l00075">75</a> of file <a class="el" href="fastpin_8h_source.html">fastpin.h</a>.</p>
</div><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>
</ul>
@@ -282,7 +282,7 @@ typedef RwReg&#160;</td><td class="memItemRight" valign="bottom"><b>port_t</b></
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_output_pin.html">OutputPin</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_p9813_controller-members.html b/docs/3.1/class_p9813_controller-members.html
index 6926099f..2d1b97ee 100644
--- a/docs/3.1/class_p9813_controller-members.html
+++ b/docs/3.1/class_p9813_controller-members.html
@@ -115,50 +115,50 @@ $(document).ready(function(){initNavTree('class_p9813_controller.html','');});
<p>This is the complete list of members for <a class="el" href="class_p9813_controller.html">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, including all inherited members.</p>
<table class="directory">
<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><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a>(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><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 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 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 bgcolor="#f0f0f0" class="even"><td class="entry"><b>CPixelLEDController</b>() (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &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#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_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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#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_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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 bgcolor="#f0f0f0" class="even"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER &gt; &amp;pixels) (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><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0 (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</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#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 -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_p9813_controller.html b/docs/3.1/class_p9813_controller.html
index 4476b3b4..34a2664e 100644
--- a/docs/3.1/class_p9813_controller.html
+++ b/docs/3.1/class_p9813_controller.html
@@ -127,7 +127,7 @@ $(document).ready(function(){initNavTree('class_p9813_controller.html','');});
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_p9813_controller__inherit__graph.png" border="0" usemap="#_p9813_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="_p9813_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map" id="_p9813_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="33,5,148,32"/></map>
+<area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="19,81,163,122"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="33,5,148,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;:</div>
@@ -136,7 +136,7 @@ $(document).ready(function(){initNavTree('class_p9813_controller.html','');});
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_p9813_controller__coll__graph.png" border="0" usemap="#_p9813_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_p9813_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" id="_p9813_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="33,133,148,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="61,5,120,32"/></map>
+<area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="19,219,163,261"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="33,133,148,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="61,5,120,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -145,15 +145,15 @@ Public Member Functions</h2></td></tr>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a">init</a> ()</td></tr>
<tr class="memdesc:ad6fcb36b9378df660721ae24ed857b8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the LED controller <br /></td></tr>
<tr class="separator:ad6fcb36b9378df660721ae24ed857b8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac2fddaa8ac8860649da9865b58dca13c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac2fddaa8ac8860649da9865b58dca13c"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c">clearLeds</a> (int nLeds)</td></tr>
-<tr class="memdesc:ac2fddaa8ac8860649da9865b58dca13c"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
-<tr class="separator:ac2fddaa8ac8860649da9865b58dca13c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c560c6d171f117dfd19c0f2ec780a32"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a> ()</td></tr>
<tr class="memdesc:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">create an led controller object, add it to the chain of controllers <br /></td></tr>
<tr class="separator:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd0f6ce4701e76ebc4b916e0a04134f2"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a> (int nLeds)</td></tr>
+<tr class="memdesc:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
+<tr class="separator:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe990b9a65f5bff1f391cc5c28752abb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, uint8_t brightness)</td></tr>
<tr class="memdesc:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">show function w/integer brightness, will scale for color correction and temperature <br /></td></tr>
@@ -174,9 +174,6 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<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#a06cfb05ad6e0f7982328928051f3f565">next</a> ()</td></tr>
<tr class="memdesc:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the next controller in the chain after this one. will return NULL at the end of the chain <br /></td></tr>
<tr class="separator:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a55f6d5b215dc14f9473faea938b4c8"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t brightness)</td></tr>
-<tr class="separator:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b08378b29f92c5def65175ec5334037"></a>
<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds)</td></tr>
<tr class="memdesc:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the default array of leds to be used by this controller <br /></td></tr>
@@ -239,19 +236,19 @@ virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getMaxRef
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
-<tr class="memitem:ae60dbfc4d27c62448032c61e7730ec8a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a">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:ae60dbfc4d27c62448032c61e7730ec8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#ae60dbfc4d27c62448032c61e7730ec8a">More...</a><br /></td></tr>
-<tr class="separator:ae60dbfc4d27c62448032c61e7730ec8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aac4f48b0da93055c0da7285839c4ce81"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:aac4f48b0da93055c0da7285839c4ce81"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#aac4f48b0da93055c0da7285839c4ce81">More...</a><br /></td></tr>
-<tr class="separator:aac4f48b0da93055c0da7285839c4ce81"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aac4f48b0da93055c0da7285839c4ce81"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:aac4f48b0da93055c0da7285839c4ce81"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#aac4f48b0da93055c0da7285839c4ce81">More...</a><br /></td></tr>
-<tr class="separator:aac4f48b0da93055c0da7285839c4ce81"><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>
-<tr class="separator:a3ae4f61fc85ef4609d65c14ca51434c4 inherit pro_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7381f0a1850d006f3449d27838b19c5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab7381f0a1850d006f3449d27838b19c5"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt; &amp;pixels)</td></tr>
+<tr class="separator:ab7381f0a1850d006f3449d27838b19c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_c_pixel_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_c_pixel_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a></td></tr>
+<tr class="memitem:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ab7248c894ba95c3a71665f5bed2a17"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0</td></tr>
+<tr class="separator:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">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:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#af5569b9e92f75410e03c75bf5764e016">More...</a><br /></td></tr>
+<tr class="separator:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
+<tr class="memdesc:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a36cc2a15671bae0db53df1e26b4a813c">More...</a><br /></td></tr>
+<tr class="separator:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
@@ -305,177 +302,8 @@ class P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</h3>
</dd>
</dl>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00341">341</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-</div><h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="aac4f48b0da93055c0da7285839c4ce81"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t SPI_SPEED = DATA_RATE_MHZ(10)&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_p9813_controller.html">P9813Controller</a>&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;::show </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>write the passed in rgb data out to the leds managed by this controller </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the rgb data to write out to the strip </td></tr>
- <tr><td class="paramname">nLeds</td><td>the number of leds being written out </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling to apply to each led before writing it out </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00381">381</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="aac4f48b0da93055c0da7285839c4ce81"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t SPI_SPEED = DATA_RATE_MHZ(10)&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_p9813_controller.html">P9813Controller</a>&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;::show </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>write the passed in rgb data out to the leds managed by this controller </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the rgb data to write out to the strip </td></tr>
- <tr><td class="paramname">nLeds</td><td>the number of leds being written out </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling to apply to each led before writing it out </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00399">399</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ae60dbfc4d27c62448032c61e7730ec8a"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t SPI_SPEED = DATA_RATE_MHZ(10)&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_p9813_controller.html">P9813Controller</a>&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;::showColor </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>set all the leds on the controller to a given color </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the crgb color to set the leds to </td></tr>
- <tr><td class="paramname">nLeds</td><td>the numner of leds to set to this color </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling value for outputting color </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00365">365</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00218">218</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+</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 -->
@@ -484,7 +312,7 @@ template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_p9813_controller.html">P9813Controller</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_p9813_controller.js b/docs/3.1/class_p9813_controller.js
index de27731e..437d4a99 100644
--- a/docs/3.1/class_p9813_controller.js
+++ b/docs/3.1/class_p9813_controller.js
@@ -1,9 +1,6 @@
var class_p9813_controller =
[
[ "P9813Controller", "class_p9813_controller.html#ab65e07a30e5e59e8bdcb4a9f3b794201", null ],
- [ "clearLeds", "class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c", null ],
[ "init", "class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a", null ],
- [ "show", "class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81", null ],
- [ "show", "class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81", null ],
- [ "showColor", "class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a", null ]
+ [ "showPixels", "class_p9813_controller.html#ab7381f0a1850d006f3449d27838b19c5", null ]
]; \ No newline at end of file
diff --git a/docs/3.1/class_p9813_controller__coll__graph.map b/docs/3.1/class_p9813_controller__coll__graph.map
index ee127e81..f29d3b19 100644
--- a/docs/3.1/class_p9813_controller__coll__graph.map
+++ b/docs/3.1/class_p9813_controller__coll__graph.map
@@ -1,4 +1,5 @@
<map id="P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
-<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="33,133,148,160"/>
-<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="61,5,120,32"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="19,219,163,261"/>
+<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="33,133,148,160"/>
+<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="61,5,120,32"/>
</map>
diff --git a/docs/3.1/class_p9813_controller__coll__graph.md5 b/docs/3.1/class_p9813_controller__coll__graph.md5
index a330b5c4..13cb340a 100644
--- a/docs/3.1/class_p9813_controller__coll__graph.md5
+++ b/docs/3.1/class_p9813_controller__coll__graph.md5
@@ -1 +1 @@
-19f5271f84193bdb1c53b062c4aca039 \ No newline at end of file
+5548f28bdd5068ec58ce014cdd2df74f \ No newline at end of file
diff --git a/docs/3.1/class_p9813_controller__coll__graph.png b/docs/3.1/class_p9813_controller__coll__graph.png
index afdeedd9..fc972c2f 100644
--- a/docs/3.1/class_p9813_controller__coll__graph.png
+++ b/docs/3.1/class_p9813_controller__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_p9813_controller__inherit__graph.map b/docs/3.1/class_p9813_controller__inherit__graph.map
index 04b42e3b..3b0dce0a 100644
--- a/docs/3.1/class_p9813_controller__inherit__graph.map
+++ b/docs/3.1/class_p9813_controller__inherit__graph.map
@@ -1,3 +1,4 @@
<map id="P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
-<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="33,5,148,32"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="19,81,163,122"/>
+<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="33,5,148,32"/>
</map>
diff --git a/docs/3.1/class_p9813_controller__inherit__graph.md5 b/docs/3.1/class_p9813_controller__inherit__graph.md5
index 955c9db8..086ad198 100644
--- a/docs/3.1/class_p9813_controller__inherit__graph.md5
+++ b/docs/3.1/class_p9813_controller__inherit__graph.md5
@@ -1 +1 @@
-897ff7e52c9f131cb7b171617ac70e1e \ No newline at end of file
+8fbf109e881c058639c6f0e71c1a08fb \ No newline at end of file
diff --git a/docs/3.1/class_p9813_controller__inherit__graph.png b/docs/3.1/class_p9813_controller__inherit__graph.png
index e3d60dfb..455f9304 100644
--- a/docs/3.1/class_p9813_controller__inherit__graph.png
+++ b/docs/3.1/class_p9813_controller__inherit__graph.png
Binary files differ
diff --git a/docs/3.1/class_p_i_x_i_e-members.html b/docs/3.1/class_p_i_x_i_e-members.html
index e0ce011d..5ebb2c3b 100644
--- a/docs/3.1/class_p_i_x_i_e-members.html
+++ b/docs/3.1/class_p_i_x_i_e-members.html
@@ -115,51 +115,50 @@ $(document).ready(function(){initNavTree('class_p_i_x_i_e.html','');});
<p>This is the complete list of members for <a class="el" href="class_p_i_x_i_e.html">PIXIE&lt; DATA_PIN, RGB_ORDER &gt;</a>, including all inherited members.</p>
<table class="directory">
<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_pixie_controller.html#af56e4137870a8f2721f16afcc76db01c">clearLeds</a>(int nLeds)</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&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#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a>(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><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 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_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118">init</a>()</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&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#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>PixieController</b>() (defined in <a class="el" href="class_pixie_controller.html">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&lt; DATA_PIN, RGB_ORDER &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 bgcolor="#f0f0f0"><td class="entry"><b>show</b>(PixelController&lt; RGB_ORDER &gt; &amp;pixels) (defined in <a class="el" href="class_pixie_controller.html">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&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_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&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, 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 bgcolor="#f0f0f0" class="even"><td class="entry"><b>CPixelLEDController</b>() (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &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#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_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118">init</a>()</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&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#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>PixieController</b>() (defined in <a class="el" href="class_pixie_controller.html">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&lt; DATA_PIN, RGB_ORDER &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_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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#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_pixie_controller.html#a9da14e8683ef6588d795d33eaba6da3f">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&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#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 class="even"><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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 bgcolor="#f0f0f0" class="even"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER &gt; &amp;pixels) (defined in <a class="el" href="class_pixie_controller.html">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&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>showPixels</b>(PixelController&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0 (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</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#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 -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_p_i_x_i_e.html b/docs/3.1/class_p_i_x_i_e.html
index e88aec7f..9f18991c 100644
--- a/docs/3.1/class_p_i_x_i_e.html
+++ b/docs/3.1/class_p_i_x_i_e.html
@@ -120,7 +120,7 @@ $(document).ready(function(){initNavTree('class_p_i_x_i_e.html','');});
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_p_i_x_i_e__inherit__graph.png" border="0" usemap="#_p_i_x_i_e_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_i_x_i_e_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_i_x_i_e_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_pixie_controller.html" title="Adafruit Pixie controller class. " alt="" coords="11,81,167,122"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="31,5,147,32"/></map>
+<area shape="rect" id="node2" href="class_pixie_controller.html" title="Adafruit Pixie controller class. " alt="" coords="11,171,167,213"/><area shape="rect" id="node3" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="17,81,161,122"/><area shape="rect" id="node4" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="31,5,147,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for PIXIE&lt; DATA_PIN, RGB_ORDER &gt;:</div>
@@ -129,21 +129,20 @@ $(document).ready(function(){initNavTree('class_p_i_x_i_e.html','');});
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_p_i_x_i_e__coll__graph.png" border="0" usemap="#_p_i_x_i_e_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_p_i_x_i_e_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map" id="_p_i_x_i_e_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map">
-<area shape="rect" id="node2" href="class_pixie_controller.html" title="Adafruit Pixie controller class. " alt="" coords="11,219,167,261"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="31,133,147,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="59,5,119,32"/></map>
+<area shape="rect" id="node2" href="class_pixie_controller.html" title="Adafruit Pixie controller class. " alt="" coords="11,313,167,354"/><area shape="rect" id="node3" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="17,219,161,261"/><area shape="rect" id="node4" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="31,133,147,160"/><area shape="rect" id="node5" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="59,5,119,32"/></map>
<center><span class="legend">[<a target="top" 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>
Additional Inherited Members</h2></td></tr>
-<tr class="inherit_header pub_methods_class_pixie_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_pixie_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_pixie_controller.html">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a></td></tr>
-<tr class="memitem:af56e4137870a8f2721f16afcc76db01c inherit pub_methods_class_pixie_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af56e4137870a8f2721f16afcc76db01c"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pixie_controller.html#af56e4137870a8f2721f16afcc76db01c">clearLeds</a> (int nLeds)</td></tr>
-<tr class="memdesc:af56e4137870a8f2721f16afcc76db01c inherit pub_methods_class_pixie_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
-<tr class="separator:af56e4137870a8f2721f16afcc76db01c inherit pub_methods_class_pixie_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c560c6d171f117dfd19c0f2ec780a32"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a> ()</td></tr>
<tr class="memdesc:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">create an led controller object, add it to the chain of controllers <br /></td></tr>
<tr class="separator:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd0f6ce4701e76ebc4b916e0a04134f2"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a> (int nLeds)</td></tr>
+<tr class="memdesc:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
+<tr class="separator:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe990b9a65f5bff1f391cc5c28752abb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, uint8_t brightness)</td></tr>
<tr class="memdesc:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">show function w/integer brightness, will scale for color correction and temperature <br /></td></tr>
@@ -164,9 +163,6 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<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#a06cfb05ad6e0f7982328928051f3f565">next</a> ()</td></tr>
<tr class="memdesc:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the next controller in the chain after this one. will return NULL at the end of the chain <br /></td></tr>
<tr class="separator:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a55f6d5b215dc14f9473faea938b4c8"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t brightness)</td></tr>
-<tr class="separator:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b08378b29f92c5def65175ec5334037"></a>
<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds)</td></tr>
<tr class="memdesc:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the default array of leds to be used by this controller <br /></td></tr>
@@ -239,22 +235,19 @@ static <a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="me
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118">init</a> ()</td></tr>
<tr class="memdesc:a7a5495b64c479dbb5963f894e5a27118 inherit pro_methods_class_pixie_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the LED controller <br /></td></tr>
<tr class="separator:a7a5495b64c479dbb5963f894e5a27118 inherit pro_methods_class_pixie_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2d29e55fd0124450b0d8d154b6875468 inherit pro_methods_class_pixie_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d29e55fd0124450b0d8d154b6875468"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt; &amp;pixels)</td></tr>
-<tr class="separator:a2d29e55fd0124450b0d8d154b6875468 inherit pro_methods_class_pixie_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9da14e8683ef6588d795d33eaba6da3f inherit pro_methods_class_pixie_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pixie_controller.html#a9da14e8683ef6588d795d33eaba6da3f">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:a9da14e8683ef6588d795d33eaba6da3f inherit pro_methods_class_pixie_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#a9da14e8683ef6588d795d33eaba6da3f">More...</a><br /></td></tr>
-<tr class="separator:a9da14e8683ef6588d795d33eaba6da3f inherit pro_methods_class_pixie_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1ce5b1a38b79d2659d2610ec65f3d583 inherit pro_methods_class_pixie_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:a1ce5b1a38b79d2659d2610ec65f3d583 inherit pro_methods_class_pixie_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a1ce5b1a38b79d2659d2610ec65f3d583">More...</a><br /></td></tr>
-<tr class="separator:a1ce5b1a38b79d2659d2610ec65f3d583 inherit pro_methods_class_pixie_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1ce5b1a38b79d2659d2610ec65f3d583 inherit pro_methods_class_pixie_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:a1ce5b1a38b79d2659d2610ec65f3d583 inherit pro_methods_class_pixie_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a1ce5b1a38b79d2659d2610ec65f3d583">More...</a><br /></td></tr>
-<tr class="separator:a1ce5b1a38b79d2659d2610ec65f3d583 inherit pro_methods_class_pixie_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>
-<tr class="separator:a3ae4f61fc85ef4609d65c14ca51434c4 inherit pro_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3e31cd5443b6751d0fd92fd69b2af746 inherit pro_methods_class_pixie_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3e31cd5443b6751d0fd92fd69b2af746"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt; &amp;pixels)</td></tr>
+<tr class="separator:a3e31cd5443b6751d0fd92fd69b2af746 inherit pro_methods_class_pixie_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_c_pixel_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_c_pixel_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a></td></tr>
+<tr class="memitem:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ab7248c894ba95c3a71665f5bed2a17"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0</td></tr>
+<tr class="separator:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">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:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#af5569b9e92f75410e03c75bf5764e016">More...</a><br /></td></tr>
+<tr class="separator:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
+<tr class="memdesc:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a36cc2a15671bae0db53df1e26b4a813c">More...</a><br /></td></tr>
+<tr class="separator:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_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>
@@ -297,7 +290,7 @@ class PIXIE&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_p_i_x_i_e.html">PIXIE</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_p_i_x_i_e__coll__graph.map b/docs/3.1/class_p_i_x_i_e__coll__graph.map
index d9375445..563ca994 100644
--- a/docs/3.1/class_p_i_x_i_e__coll__graph.map
+++ b/docs/3.1/class_p_i_x_i_e__coll__graph.map
@@ -1,5 +1,6 @@
<map id="PIXIE&lt; DATA_PIN, RGB_ORDER &gt;" name="PIXIE&lt; DATA_PIN, RGB_ORDER &gt;">
-<area shape="rect" id="node2" href="$class_pixie_controller.html" title="Adafruit Pixie controller class. " alt="" coords="11,219,167,261"/>
-<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="31,133,147,160"/>
-<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="59,5,119,32"/>
+<area shape="rect" id="node2" href="$class_pixie_controller.html" title="Adafruit Pixie controller class. " alt="" coords="11,313,167,354"/>
+<area shape="rect" id="node3" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="17,219,161,261"/>
+<area shape="rect" id="node4" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="31,133,147,160"/>
+<area shape="rect" id="node5" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="59,5,119,32"/>
</map>
diff --git a/docs/3.1/class_p_i_x_i_e__coll__graph.md5 b/docs/3.1/class_p_i_x_i_e__coll__graph.md5
index 7a18e76d..d82abe70 100644
--- a/docs/3.1/class_p_i_x_i_e__coll__graph.md5
+++ b/docs/3.1/class_p_i_x_i_e__coll__graph.md5
@@ -1 +1 @@
-9d6dc60c8ce6df7e1a64951505437489 \ No newline at end of file
+08e7816aee39e05f762501704c150e58 \ No newline at end of file
diff --git a/docs/3.1/class_p_i_x_i_e__coll__graph.png b/docs/3.1/class_p_i_x_i_e__coll__graph.png
index 4809ea3a..e8035b1d 100644
--- a/docs/3.1/class_p_i_x_i_e__coll__graph.png
+++ b/docs/3.1/class_p_i_x_i_e__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_p_i_x_i_e__inherit__graph.map b/docs/3.1/class_p_i_x_i_e__inherit__graph.map
index e0a6acc0..26403cb8 100644
--- a/docs/3.1/class_p_i_x_i_e__inherit__graph.map
+++ b/docs/3.1/class_p_i_x_i_e__inherit__graph.map
@@ -1,4 +1,5 @@
<map id="PIXIE&lt; DATA_PIN, RGB_ORDER &gt;" name="PIXIE&lt; DATA_PIN, RGB_ORDER &gt;">
-<area shape="rect" id="node2" href="$class_pixie_controller.html" title="Adafruit Pixie controller class. " alt="" coords="11,81,167,122"/>
-<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="31,5,147,32"/>
+<area shape="rect" id="node2" href="$class_pixie_controller.html" title="Adafruit Pixie controller class. " alt="" coords="11,171,167,213"/>
+<area shape="rect" id="node3" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="17,81,161,122"/>
+<area shape="rect" id="node4" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="31,5,147,32"/>
</map>
diff --git a/docs/3.1/class_p_i_x_i_e__inherit__graph.md5 b/docs/3.1/class_p_i_x_i_e__inherit__graph.md5
index 9044ba5c..58ce6a82 100644
--- a/docs/3.1/class_p_i_x_i_e__inherit__graph.md5
+++ b/docs/3.1/class_p_i_x_i_e__inherit__graph.md5
@@ -1 +1 @@
-4b62b261375da47e43ad56f78c5b489a \ No newline at end of file
+29704ef6f58dec00797ffa3fa3444abd \ No newline at end of file
diff --git a/docs/3.1/class_p_i_x_i_e__inherit__graph.png b/docs/3.1/class_p_i_x_i_e__inherit__graph.png
index d6ce13e3..e694dde0 100644
--- a/docs/3.1/class_p_i_x_i_e__inherit__graph.png
+++ b/docs/3.1/class_p_i_x_i_e__inherit__graph.png
Binary files differ
diff --git a/docs/3.1/class_p_l9823.html b/docs/3.1/class_p_l9823.html
index 0442adc4..3cebbfe3 100644
--- a/docs/3.1/class_p_l9823.html
+++ b/docs/3.1/class_p_l9823.html
@@ -134,7 +134,7 @@ $(document).ready(function(){initNavTree('class_p_l9823.html','');});
class PL9823&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00094">94</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00095">95</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</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>
@@ -144,7 +144,7 @@ class PL9823&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_p_l9823.html">PL9823</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_p_l9823_controller.html b/docs/3.1/class_p_l9823_controller.html
index 5965d4e6..9685c6fd 100644
--- a/docs/3.1/class_p_l9823_controller.html
+++ b/docs/3.1/class_p_l9823_controller.html
@@ -132,7 +132,7 @@ $(document).ready(function(){initNavTree('class_p_l9823_controller.html','');});
class PL9823Controller&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00553">553</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00364">364</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -142,7 +142,7 @@ class PL9823Controller&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_p_l9823_controller.html">PL9823Controller</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_pin-members.html b/docs/3.1/class_pin-members.html
index 03cc9c4c..cfd95879 100644
--- a/docs/3.1/class_pin-members.html
+++ b/docs/3.1/class_pin-members.html
@@ -160,7 +160,7 @@ $(document).ready(function(){initNavTree('class_pin.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_pin.html b/docs/3.1/class_pin.html
index 06cbcc87..78357ac6 100644
--- a/docs/3.1/class_pin.html
+++ b/docs/3.1/class_pin.html
@@ -265,7 +265,7 @@ virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>isSelected</b
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p>Definition at line <a class="el" href="fastpin_8h_source.html#l00031">31</a> of file <a class="el" href="fastpin_8h_source.html">fastpin.h</a>.</p>
+<p>Definition at line <a class="el" href="fastpin_8h_source.html#l00033">33</a> of file <a class="el" href="fastpin_8h_source.html">fastpin.h</a>.</p>
</div><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>
</ul>
@@ -275,7 +275,7 @@ virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>isSelected</b
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_pin.html">Pin</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_pixie_controller-members.html b/docs/3.1/class_pixie_controller-members.html
index 8fe1a210..1c918890 100644
--- a/docs/3.1/class_pixie_controller-members.html
+++ b/docs/3.1/class_pixie_controller-members.html
@@ -115,51 +115,50 @@ $(document).ready(function(){initNavTree('class_pixie_controller.html','');});
<p>This is the complete list of members for <a class="el" href="class_pixie_controller.html">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>, including all inherited members.</p>
<table class="directory">
<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_pixie_controller.html#af56e4137870a8f2721f16afcc76db01c">clearLeds</a>(int nLeds)</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&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#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a>(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><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 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_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118">init</a>()</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&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#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>PixieController</b>() (defined in <a class="el" href="class_pixie_controller.html">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&lt; DATA_PIN, RGB_ORDER &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 bgcolor="#f0f0f0"><td class="entry"><b>show</b>(PixelController&lt; RGB_ORDER &gt; &amp;pixels) (defined in <a class="el" href="class_pixie_controller.html">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&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_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&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, 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 bgcolor="#f0f0f0" class="even"><td class="entry"><b>CPixelLEDController</b>() (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &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#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_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118">init</a>()</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&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#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>PixieController</b>() (defined in <a class="el" href="class_pixie_controller.html">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&lt; DATA_PIN, RGB_ORDER &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_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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#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_pixie_controller.html#a9da14e8683ef6588d795d33eaba6da3f">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&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#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 class="even"><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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 bgcolor="#f0f0f0" class="even"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER &gt; &amp;pixels) (defined in <a class="el" href="class_pixie_controller.html">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_pixie_controller.html">PixieController&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>showPixels</b>(PixelController&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0 (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</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#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 -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_pixie_controller.html b/docs/3.1/class_pixie_controller.html
index 45855436..9b174573 100644
--- a/docs/3.1/class_pixie_controller.html
+++ b/docs/3.1/class_pixie_controller.html
@@ -108,7 +108,6 @@ $(document).ready(function(){initNavTree('class_pixie_controller.html','');});
<div class="header">
<div class="summary">
-<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="class_pixie_controller-members.html">List of all members</a> </div>
<div class="headertitle">
@@ -127,7 +126,7 @@ $(document).ready(function(){initNavTree('class_pixie_controller.html','');});
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_pixie_controller__inherit__graph.png" border="0" usemap="#_pixie_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="_pixie_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="_pixie_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="node3" href="class_p_i_x_i_e.html" title="PIXIE\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="5,171,173,213"/><area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="31,5,147,32"/></map>
+<area shape="rect" id="node4" href="class_p_i_x_i_e.html" title="PIXIE\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="5,262,173,303"/><area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="17,81,161,122"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="31,5,147,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for PixieController&lt; DATA_PIN, RGB_ORDER &gt;:</div>
@@ -136,20 +135,40 @@ $(document).ready(function(){initNavTree('class_pixie_controller.html','');});
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_pixie_controller__coll__graph.png" border="0" usemap="#_pixie_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="_pixie_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="_pixie_controller_3_01_d_a_t_a___p_i_n_00_01_r_g_b___o_r_d_e_r_01_4_coll__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="25,133,140,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="53,5,112,32"/></map>
+<area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="11,219,155,261"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="25,133,140,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="53,5,112,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:af56e4137870a8f2721f16afcc76db01c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af56e4137870a8f2721f16afcc76db01c"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pixie_controller.html#af56e4137870a8f2721f16afcc76db01c">clearLeds</a> (int nLeds)</td></tr>
-<tr class="memdesc:af56e4137870a8f2721f16afcc76db01c"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
-<tr class="separator:af56e4137870a8f2721f16afcc76db01c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:a7a5495b64c479dbb5963f894e5a27118"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7a5495b64c479dbb5963f894e5a27118"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118">init</a> ()</td></tr>
+<tr class="memdesc:a7a5495b64c479dbb5963f894e5a27118"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the LED controller <br /></td></tr>
+<tr class="separator:a7a5495b64c479dbb5963f894e5a27118"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3e31cd5443b6751d0fd92fd69b2af746"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3e31cd5443b6751d0fd92fd69b2af746"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt; &amp;pixels)</td></tr>
+<tr class="separator:a3e31cd5443b6751d0fd92fd69b2af746"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_c_pixel_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_c_pixel_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a></td></tr>
+<tr class="memitem:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ab7248c894ba95c3a71665f5bed2a17"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0</td></tr>
+<tr class="separator:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">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:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#af5569b9e92f75410e03c75bf5764e016">More...</a><br /></td></tr>
+<tr class="separator:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
+<tr class="memdesc:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a36cc2a15671bae0db53df1e26b4a813c">More...</a><br /></td></tr>
+<tr class="separator:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c560c6d171f117dfd19c0f2ec780a32"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a> ()</td></tr>
<tr class="memdesc:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">create an led controller object, add it to the chain of controllers <br /></td></tr>
<tr class="separator:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd0f6ce4701e76ebc4b916e0a04134f2"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a> (int nLeds)</td></tr>
+<tr class="memdesc:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
+<tr class="separator:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe990b9a65f5bff1f391cc5c28752abb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, uint8_t brightness)</td></tr>
<tr class="memdesc:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">show function w/integer brightness, will scale for color correction and temperature <br /></td></tr>
@@ -170,9 +189,6 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<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#a06cfb05ad6e0f7982328928051f3f565">next</a> ()</td></tr>
<tr class="memdesc:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the next controller in the chain after this one. will return NULL at the end of the chain <br /></td></tr>
<tr class="separator:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a55f6d5b215dc14f9473faea938b4c8"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t brightness)</td></tr>
-<tr class="separator:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b08378b29f92c5def65175ec5334037"></a>
<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds)</td></tr>
<tr class="memdesc:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the default array of leds to be used by this controller <br /></td></tr>
@@ -232,32 +248,6 @@ uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="c
<tr class="memitem:a3beb4aff15617bc781c1e49178dd9975 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3beb4aff15617bc781c1e49178dd9975"></a>
virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getMaxRefreshRate</b> () const </td></tr>
<tr class="separator:a3beb4aff15617bc781c1e49178dd9975 inherit pub_methods_class_c_l_e_d_controller"><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>
-<tr class="memitem:a7a5495b64c479dbb5963f894e5a27118"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7a5495b64c479dbb5963f894e5a27118"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118">init</a> ()</td></tr>
-<tr class="memdesc:a7a5495b64c479dbb5963f894e5a27118"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the LED controller <br /></td></tr>
-<tr class="separator:a7a5495b64c479dbb5963f894e5a27118"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2d29e55fd0124450b0d8d154b6875468"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2d29e55fd0124450b0d8d154b6875468"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt; &amp;pixels)</td></tr>
-<tr class="separator:a2d29e55fd0124450b0d8d154b6875468"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9da14e8683ef6588d795d33eaba6da3f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pixie_controller.html#a9da14e8683ef6588d795d33eaba6da3f">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:a9da14e8683ef6588d795d33eaba6da3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#a9da14e8683ef6588d795d33eaba6da3f">More...</a><br /></td></tr>
-<tr class="separator:a9da14e8683ef6588d795d33eaba6da3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1ce5b1a38b79d2659d2610ec65f3d583"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:a1ce5b1a38b79d2659d2610ec65f3d583"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a1ce5b1a38b79d2659d2610ec65f3d583">More...</a><br /></td></tr>
-<tr class="separator:a1ce5b1a38b79d2659d2610ec65f3d583"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a1ce5b1a38b79d2659d2610ec65f3d583"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:a1ce5b1a38b79d2659d2610ec65f3d583"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a1ce5b1a38b79d2659d2610ec65f3d583">More...</a><br /></td></tr>
-<tr class="separator:a1ce5b1a38b79d2659d2610ec65f3d583"><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>
-<tr class="separator:a3ae4f61fc85ef4609d65c14ca51434c4 inherit pro_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
-Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a75a5a6ea50899409d875d72393323ca0 inherit pub_static_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a75a5a6ea50899409d875d72393323ca0"></a>
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>
@@ -306,177 +296,8 @@ class PixieController&lt; DATA_PIN, RGB_ORDER &gt;</h3>
</dd>
</dl>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00027">27</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-</div><h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="a1ce5b1a38b79d2659d2610ec65f3d583"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_pixie_controller.html">PixieController</a>&lt; DATA_PIN, RGB_ORDER &gt;::show </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>write the passed in rgb data out to the leds managed by this controller </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the rgb data to write out to the strip </td></tr>
- <tr><td class="paramname">nLeds</td><td>the number of leds being written out </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling to apply to each led before writing it out </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00061">61</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a1ce5b1a38b79d2659d2610ec65f3d583"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_pixie_controller.html">PixieController</a>&lt; DATA_PIN, RGB_ORDER &gt;::show </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>write the passed in rgb data out to the leds managed by this controller </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the rgb data to write out to the strip </td></tr>
- <tr><td class="paramname">nLeds</td><td>the number of leds being written out </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling to apply to each led before writing it out </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00067">67</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a9da14e8683ef6588d795d33eaba6da3f"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_pixie_controller.html">PixieController</a>&lt; DATA_PIN, RGB_ORDER &gt;::showColor </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>set all the leds on the controller to a given color </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the crgb color to set the leds to </td></tr>
- <tr><td class="paramname">nLeds</td><td>the numner of leds to set to this color </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling value for outputting color </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00056">56</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00028">28</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+</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 -->
@@ -485,7 +306,7 @@ template&lt;uint8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt; </div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_pixie_controller.html">PixieController</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_pixie_controller.js b/docs/3.1/class_pixie_controller.js
index 52fe4193..7572ad42 100644
--- a/docs/3.1/class_pixie_controller.js
+++ b/docs/3.1/class_pixie_controller.js
@@ -1,10 +1,6 @@
var class_pixie_controller =
[
[ "PixieController", "class_pixie_controller.html#afecb754d21fd4a47146dc366cb2420a9", null ],
- [ "clearLeds", "class_pixie_controller.html#af56e4137870a8f2721f16afcc76db01c", null ],
[ "init", "class_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118", null ],
- [ "show", "class_pixie_controller.html#a2d29e55fd0124450b0d8d154b6875468", null ],
- [ "show", "class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583", null ],
- [ "show", "class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583", null ],
- [ "showColor", "class_pixie_controller.html#a9da14e8683ef6588d795d33eaba6da3f", null ]
+ [ "showPixels", "class_pixie_controller.html#a3e31cd5443b6751d0fd92fd69b2af746", null ]
]; \ No newline at end of file
diff --git a/docs/3.1/class_pixie_controller__coll__graph.map b/docs/3.1/class_pixie_controller__coll__graph.map
index 5fccc79b..d1bdc8d0 100644
--- a/docs/3.1/class_pixie_controller__coll__graph.map
+++ b/docs/3.1/class_pixie_controller__coll__graph.map
@@ -1,4 +1,5 @@
<map id="PixieController&lt; DATA_PIN, RGB_ORDER &gt;" name="PixieController&lt; DATA_PIN, RGB_ORDER &gt;">
-<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="25,133,140,160"/>
-<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="53,5,112,32"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="11,219,155,261"/>
+<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="25,133,140,160"/>
+<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="53,5,112,32"/>
</map>
diff --git a/docs/3.1/class_pixie_controller__coll__graph.md5 b/docs/3.1/class_pixie_controller__coll__graph.md5
index 76a9f063..3ea689f9 100644
--- a/docs/3.1/class_pixie_controller__coll__graph.md5
+++ b/docs/3.1/class_pixie_controller__coll__graph.md5
@@ -1 +1 @@
-714c1ae6628ac99d75470e50cde6b3d4 \ No newline at end of file
+b148ce3586ce6ee1009f8d3a091ee49c \ No newline at end of file
diff --git a/docs/3.1/class_pixie_controller__coll__graph.png b/docs/3.1/class_pixie_controller__coll__graph.png
index 79b30e75..fe116c95 100644
--- a/docs/3.1/class_pixie_controller__coll__graph.png
+++ b/docs/3.1/class_pixie_controller__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_pixie_controller__inherit__graph.map b/docs/3.1/class_pixie_controller__inherit__graph.map
index ad1c29cc..09f2ddc6 100644
--- a/docs/3.1/class_pixie_controller__inherit__graph.map
+++ b/docs/3.1/class_pixie_controller__inherit__graph.map
@@ -1,4 +1,5 @@
<map id="PixieController&lt; DATA_PIN, RGB_ORDER &gt;" name="PixieController&lt; DATA_PIN, RGB_ORDER &gt;">
-<area shape="rect" id="node3" href="$class_p_i_x_i_e.html" title="PIXIE\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="5,171,173,213"/>
-<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="31,5,147,32"/>
+<area shape="rect" id="node4" href="$class_p_i_x_i_e.html" title="PIXIE\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="5,262,173,303"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="17,81,161,122"/>
+<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="31,5,147,32"/>
</map>
diff --git a/docs/3.1/class_pixie_controller__inherit__graph.md5 b/docs/3.1/class_pixie_controller__inherit__graph.md5
index 0d332f06..06c23047 100644
--- a/docs/3.1/class_pixie_controller__inherit__graph.md5
+++ b/docs/3.1/class_pixie_controller__inherit__graph.md5
@@ -1 +1 @@
-a302d7cf9d7b1d9cd5071d948a6f9510 \ No newline at end of file
+eb72f39c7c0f277cba82472a6e06346c \ No newline at end of file
diff --git a/docs/3.1/class_pixie_controller__inherit__graph.png b/docs/3.1/class_pixie_controller__inherit__graph.png
index cb88f8d7..f9e6d06f 100644
--- a/docs/3.1/class_pixie_controller__inherit__graph.png
+++ b/docs/3.1/class_pixie_controller__inherit__graph.png
Binary files differ
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
index 78a95d0a..a733854e 100644
--- 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
@@ -134,7 +134,7 @@ $(document).ready(function(){initNavTree('class_r_e_f_hardware_s_p_i_output.html
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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
index aa5b6fcc..b123d4d1 100644
--- 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
@@ -175,7 +175,7 @@ template&lt;uint8_t BIT&gt; </td></tr>
class REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</h3>
-<p>Definition at line <a class="el" href="fastspi__ref_8h_source.html#l00009">9</a> of file <a class="el" href="fastspi__ref_8h_source.html">fastspi_ref.h</a>.</p>
+<p>Definition at line <a class="el" href="fastspi__ref_8h_source.html#l00012">12</a> of file <a class="el" href="fastspi__ref_8h_source.html">fastspi_ref.h</a>.</p>
</div><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>
@@ -185,7 +185,7 @@ class REFHardwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</h
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_s_k6812.html b/docs/3.1/class_s_k6812.html
index 4bca5d54..32e05f36 100644
--- a/docs/3.1/class_s_k6812.html
+++ b/docs/3.1/class_s_k6812.html
@@ -144,7 +144,7 @@ class SK6812&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_s_k6812.html">SK6812</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_s_k6812_controller.html b/docs/3.1/class_s_k6812_controller.html
index d2af1238..ff610d68 100644
--- a/docs/3.1/class_s_k6812_controller.html
+++ b/docs/3.1/class_s_k6812_controller.html
@@ -132,7 +132,7 @@ $(document).ready(function(){initNavTree('class_s_k6812_controller.html','');});
class SK6812Controller&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00523">523</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00334">334</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -142,7 +142,7 @@ class SK6812Controller&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_s_k6812_controller.html">SK6812Controller</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_s_k6822.html b/docs/3.1/class_s_k6822.html
new file mode 100644
index 00000000..c096f524
--- /dev/null
+++ b/docs/3.1/class_s_k6822.html
@@ -0,0 +1,153 @@
+<!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: SK6822&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="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</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>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('class_s_k6822.html','');});
+</script>
+<div id="doc-content">
+<!-- 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">SK6822&lt; DATA_PIN, RGB_ORDER &gt; Class Template Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
+ <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for SK6822&lt; DATA_PIN, RGB_ORDER &gt;:</div>
+<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
+</div>
+<div id="dynsection-0-content" class="dyncontent" style="display:none;">
+<div class="center"><img src="class_s_k6822__inherit__graph.png" border="0" usemap="#_s_k6822_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_k6822_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_k6822_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_k6822_controller.html" title="SK6822Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="230,67,405,109"/></map>
+<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
+<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
+ <img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for SK6822&lt; DATA_PIN, RGB_ORDER &gt;:</div>
+<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
+</div>
+<div id="dynsection-1-content" class="dyncontent" style="display:none;">
+<div class="center"><img src="class_s_k6822__coll__graph.png" border="0" usemap="#_s_k6822_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_k6822_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_k6822_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_k6822_controller.html" title="SK6822Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="230,67,405,109"/></map>
+<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><h3>template&lt;uint8_t DATA_PIN, EOrder RGB_ORDER&gt;<br />
+class SK6822&lt; DATA_PIN, RGB_ORDER &gt;</h3>
+
+
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00094">94</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+</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 -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="class_s_k6822.html">SK6822</a></li>
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/3.1/class_s_k6822__coll__graph.map b/docs/3.1/class_s_k6822__coll__graph.map
new file mode 100644
index 00000000..54f51774
--- /dev/null
+++ b/docs/3.1/class_s_k6822__coll__graph.map
@@ -0,0 +1,3 @@
+<map id="SK6822&lt; DATA_PIN, RGB_ORDER &gt;" name="SK6822&lt; DATA_PIN, RGB_ORDER &gt;">
+<area shape="rect" id="node2" href="$class_s_k6822_controller.html" title="SK6822Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="230,67,405,109"/>
+</map>
diff --git a/docs/3.1/class_s_k6822__coll__graph.md5 b/docs/3.1/class_s_k6822__coll__graph.md5
new file mode 100644
index 00000000..77ac8673
--- /dev/null
+++ b/docs/3.1/class_s_k6822__coll__graph.md5
@@ -0,0 +1 @@
+a5a9c52f06b79040c513986299b22d59 \ No newline at end of file
diff --git a/docs/3.1/class_s_k6822__coll__graph.png b/docs/3.1/class_s_k6822__coll__graph.png
new file mode 100644
index 00000000..311a74c9
--- /dev/null
+++ b/docs/3.1/class_s_k6822__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_s_k6822__inherit__graph.map b/docs/3.1/class_s_k6822__inherit__graph.map
new file mode 100644
index 00000000..54f51774
--- /dev/null
+++ b/docs/3.1/class_s_k6822__inherit__graph.map
@@ -0,0 +1,3 @@
+<map id="SK6822&lt; DATA_PIN, RGB_ORDER &gt;" name="SK6822&lt; DATA_PIN, RGB_ORDER &gt;">
+<area shape="rect" id="node2" href="$class_s_k6822_controller.html" title="SK6822Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="230,67,405,109"/>
+</map>
diff --git a/docs/3.1/class_s_k6822__inherit__graph.md5 b/docs/3.1/class_s_k6822__inherit__graph.md5
new file mode 100644
index 00000000..77ac8673
--- /dev/null
+++ b/docs/3.1/class_s_k6822__inherit__graph.md5
@@ -0,0 +1 @@
+a5a9c52f06b79040c513986299b22d59 \ No newline at end of file
diff --git a/docs/3.1/class_s_k6822__inherit__graph.png b/docs/3.1/class_s_k6822__inherit__graph.png
new file mode 100644
index 00000000..311a74c9
--- /dev/null
+++ b/docs/3.1/class_s_k6822__inherit__graph.png
Binary files differ
diff --git a/docs/3.1/class_s_k6822_controller.html b/docs/3.1/class_s_k6822_controller.html
new file mode 100644
index 00000000..f83c77e4
--- /dev/null
+++ b/docs/3.1/class_s_k6822_controller.html
@@ -0,0 +1,153 @@
+<!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: SK6822Controller&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="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</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>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('class_s_k6822_controller.html','');});
+</script>
+<div id="doc-content">
+<!-- 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">SK6822Controller&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 id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
+ <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for SK6822Controller&lt; DATA_PIN, RGB_ORDER &gt;:</div>
+<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
+</div>
+<div id="dynsection-0-content" class="dyncontent" style="display:none;">
+<div class="center"><img src="class_s_k6822_controller__inherit__graph.png" border="0" usemap="#_s_k6822_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_k6822_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_k6822_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_k6822.html" title="SK6822\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="454,67,637,109"/></map>
+<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
+<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
+ <img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for SK6822Controller&lt; DATA_PIN, RGB_ORDER &gt;:</div>
+<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
+</div>
+<div id="dynsection-1-content" class="dyncontent" style="display:none;">
+<div class="center"><img src="class_s_k6822_controller__coll__graph.png" border="0" usemap="#_s_k6822_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_k6822_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_k6822_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 target="top" href="graph_legend.html">legend</a>]</span></center></div>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><h3>template&lt;uint8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;<br />
+class SK6822Controller&lt; DATA_PIN, RGB_ORDER &gt;</h3>
+
+
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00331">331</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+</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 -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="class_s_k6822_controller.html">SK6822Controller</a></li>
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/3.1/class_s_k6822_controller__coll__graph.map b/docs/3.1/class_s_k6822_controller__coll__graph.map
new file mode 100644
index 00000000..8d349412
--- /dev/null
+++ b/docs/3.1/class_s_k6822_controller__coll__graph.map
@@ -0,0 +1,2 @@
+<map id="SK6822Controller&lt; DATA_PIN, RGB_ORDER &gt;" name="SK6822Controller&lt; DATA_PIN, RGB_ORDER &gt;">
+</map>
diff --git a/docs/3.1/class_s_k6822_controller__coll__graph.md5 b/docs/3.1/class_s_k6822_controller__coll__graph.md5
new file mode 100644
index 00000000..45cb7610
--- /dev/null
+++ b/docs/3.1/class_s_k6822_controller__coll__graph.md5
@@ -0,0 +1 @@
+e6176e54d09987acafb5354bc0038901 \ No newline at end of file
diff --git a/docs/3.1/class_s_k6822_controller__coll__graph.png b/docs/3.1/class_s_k6822_controller__coll__graph.png
new file mode 100644
index 00000000..c17e8e3b
--- /dev/null
+++ b/docs/3.1/class_s_k6822_controller__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_s_k6822_controller__inherit__graph.map b/docs/3.1/class_s_k6822_controller__inherit__graph.map
new file mode 100644
index 00000000..d255c904
--- /dev/null
+++ b/docs/3.1/class_s_k6822_controller__inherit__graph.map
@@ -0,0 +1,3 @@
+<map id="SK6822Controller&lt; DATA_PIN, RGB_ORDER &gt;" name="SK6822Controller&lt; DATA_PIN, RGB_ORDER &gt;">
+<area shape="rect" id="node4" href="$class_s_k6822.html" title="SK6822\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="454,67,637,109"/>
+</map>
diff --git a/docs/3.1/class_s_k6822_controller__inherit__graph.md5 b/docs/3.1/class_s_k6822_controller__inherit__graph.md5
new file mode 100644
index 00000000..d8961b8c
--- /dev/null
+++ b/docs/3.1/class_s_k6822_controller__inherit__graph.md5
@@ -0,0 +1 @@
+9a33b61bee3fe273a545630f17b22e2f \ No newline at end of file
diff --git a/docs/3.1/class_s_k6822_controller__inherit__graph.png b/docs/3.1/class_s_k6822_controller__inherit__graph.png
new file mode 100644
index 00000000..cb3e414c
--- /dev/null
+++ b/docs/3.1/class_s_k6822_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 ffbc37fa..a8be37ec 100644
--- a/docs/3.1/class_s_m16716_controller-members.html
+++ b/docs/3.1/class_s_m16716_controller-members.html
@@ -115,49 +115,50 @@ $(document).ready(function(){initNavTree('class_s_m16716_controller.html','');})
<p>This is the complete list of members for <a class="el" href="class_s_m16716_controller.html">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, including all inherited members.</p>
<table class="directory">
<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><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a>(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><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 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 bgcolor="#f0f0f0" class="even"><td class="entry"><b>CPixelLEDController</b>() (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &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#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_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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#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>
+ <tr><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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 bgcolor="#f0f0f0"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER &gt; &amp;pixels) (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 bgcolor="#f0f0f0" class="even"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0 (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</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#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>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 -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_s_m16716_controller.html b/docs/3.1/class_s_m16716_controller.html
index e7003a97..605554d9 100644
--- a/docs/3.1/class_s_m16716_controller.html
+++ b/docs/3.1/class_s_m16716_controller.html
@@ -127,7 +127,7 @@ $(document).ready(function(){initNavTree('class_s_m16716_controller.html','');})
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_s_m16716_controller__inherit__graph.png" border="0" usemap="#_s_m16716_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="_s_m16716_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map" id="_s_m16716_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,5,164,32"/></map>
+<area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="35,81,179,122"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,5,164,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;:</div>
@@ -136,7 +136,7 @@ $(document).ready(function(){initNavTree('class_s_m16716_controller.html','');})
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_s_m16716_controller__coll__graph.png" border="0" usemap="#_s_m16716_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_s_m16716_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" id="_s_m16716_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/></map>
+<area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="35,219,179,261"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -145,15 +145,15 @@ Public Member Functions</h2></td></tr>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591">init</a> ()</td></tr>
<tr class="memdesc:a1ba5a4e3f00b2235f278b9fb9aeb1591"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the LED controller <br /></td></tr>
<tr class="separator:a1ba5a4e3f00b2235f278b9fb9aeb1591"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a89d3d5ef2239a9d452bc2478b0549ad8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a89d3d5ef2239a9d452bc2478b0549ad8"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8">clearLeds</a> (int nLeds)</td></tr>
-<tr class="memdesc:a89d3d5ef2239a9d452bc2478b0549ad8"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
-<tr class="separator:a89d3d5ef2239a9d452bc2478b0549ad8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c560c6d171f117dfd19c0f2ec780a32"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a> ()</td></tr>
<tr class="memdesc:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">create an led controller object, add it to the chain of controllers <br /></td></tr>
<tr class="separator:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd0f6ce4701e76ebc4b916e0a04134f2"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a> (int nLeds)</td></tr>
+<tr class="memdesc:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
+<tr class="separator:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe990b9a65f5bff1f391cc5c28752abb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, uint8_t brightness)</td></tr>
<tr class="memdesc:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">show function w/integer brightness, will scale for color correction and temperature <br /></td></tr>
@@ -174,9 +174,6 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<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#a06cfb05ad6e0f7982328928051f3f565">next</a> ()</td></tr>
<tr class="memdesc:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the next controller in the chain after this one. will return NULL at the end of the chain <br /></td></tr>
<tr class="separator:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a55f6d5b215dc14f9473faea938b4c8"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t brightness)</td></tr>
-<tr class="separator:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b08378b29f92c5def65175ec5334037"></a>
<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds)</td></tr>
<tr class="memdesc:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the default array of leds to be used by this controller <br /></td></tr>
@@ -239,15 +236,19 @@ virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getMaxRef
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
-<tr class="memitem:a7df8b8a34e0dc067c69aa056deca9677"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677">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:a7df8b8a34e0dc067c69aa056deca9677"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#a7df8b8a34e0dc067c69aa056deca9677">More...</a><br /></td></tr>
-<tr class="separator:a7df8b8a34e0dc067c69aa056deca9677"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3d720053186fd61d6ad90d48cac3d57d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:a3d720053186fd61d6ad90d48cac3d57d"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a3d720053186fd61d6ad90d48cac3d57d">More...</a><br /></td></tr>
-<tr class="separator:a3d720053186fd61d6ad90d48cac3d57d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae99c85f11c5c8244bc94c2b4b02fe574"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae99c85f11c5c8244bc94c2b4b02fe574"></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)</td></tr>
-<tr class="separator:ae99c85f11c5c8244bc94c2b4b02fe574"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b68d483e7422d26d31586ca7791d7af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2b68d483e7422d26d31586ca7791d7af"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt; &amp;pixels)</td></tr>
+<tr class="separator:a2b68d483e7422d26d31586ca7791d7af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_c_pixel_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_c_pixel_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a></td></tr>
+<tr class="memitem:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ab7248c894ba95c3a71665f5bed2a17"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0</td></tr>
+<tr class="separator:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">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:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#af5569b9e92f75410e03c75bf5764e016">More...</a><br /></td></tr>
+<tr class="separator:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
+<tr class="memdesc:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a36cc2a15671bae0db53df1e26b4a813c">More...</a><br /></td></tr>
+<tr class="separator:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
@@ -301,121 +302,8 @@ class SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</h3>
</dd>
</dl>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00431">431</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-</div><h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="a3d720053186fd61d6ad90d48cac3d57d"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t SPI_SPEED = DATA_RATE_MHZ(16)&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_s_m16716_controller.html">SM16716Controller</a>&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;::show </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>write the passed in rgb data out to the leds managed by this controller </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the rgb data to write out to the strip </td></tr>
- <tr><td class="paramname">nLeds</td><td>the number of leds being written out </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling to apply to each led before writing it out </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00472">472</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a7df8b8a34e0dc067c69aa056deca9677"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t SPI_SPEED = DATA_RATE_MHZ(16)&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_s_m16716_controller.html">SM16716Controller</a>&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;::showColor </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>set all the leds on the controller to a given color </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the crgb color to set the leds to </td></tr>
- <tr><td class="paramname">nLeds</td><td>the numner of leds to set to this color </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling value for outputting color </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00467">467</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00268">268</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+</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 -->
@@ -424,7 +312,7 @@ template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_s_m16716_controller.html">SM16716Controller</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_s_m16716_controller.js b/docs/3.1/class_s_m16716_controller.js
index a91566c1..17958d29 100644
--- a/docs/3.1/class_s_m16716_controller.js
+++ b/docs/3.1/class_s_m16716_controller.js
@@ -1,9 +1,6 @@
var class_s_m16716_controller =
[
[ "SM16716Controller", "class_s_m16716_controller.html#aefb06d426f8690545397905b9612f71e", null ],
- [ "clearLeds", "class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8", null ],
[ "init", "class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591", null ],
- [ "show", "class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d", null ],
- [ "show", "class_s_m16716_controller.html#ae99c85f11c5c8244bc94c2b4b02fe574", null ],
- [ "showColor", "class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677", null ]
+ [ "showPixels", "class_s_m16716_controller.html#a2b68d483e7422d26d31586ca7791d7af", null ]
]; \ No newline at end of file
diff --git a/docs/3.1/class_s_m16716_controller__coll__graph.map b/docs/3.1/class_s_m16716_controller__coll__graph.map
index 0dc7b506..905bd0c9 100644
--- a/docs/3.1/class_s_m16716_controller__coll__graph.map
+++ b/docs/3.1/class_s_m16716_controller__coll__graph.map
@@ -1,4 +1,5 @@
<map id="SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
-<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/>
-<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="35,219,179,261"/>
+<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,133,164,160"/>
+<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="77,5,136,32"/>
</map>
diff --git a/docs/3.1/class_s_m16716_controller__coll__graph.md5 b/docs/3.1/class_s_m16716_controller__coll__graph.md5
index a480586d..d94acf44 100644
--- a/docs/3.1/class_s_m16716_controller__coll__graph.md5
+++ b/docs/3.1/class_s_m16716_controller__coll__graph.md5
@@ -1 +1 @@
-d1c9268fb6cfca674d343d3c982e9c59 \ No newline at end of file
+ae8d3cf8f2178fd7dea864093f2d506d \ No newline at end of file
diff --git a/docs/3.1/class_s_m16716_controller__coll__graph.png b/docs/3.1/class_s_m16716_controller__coll__graph.png
index dd0f5314..4a826aef 100644
--- a/docs/3.1/class_s_m16716_controller__coll__graph.png
+++ b/docs/3.1/class_s_m16716_controller__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_s_m16716_controller__inherit__graph.map b/docs/3.1/class_s_m16716_controller__inherit__graph.map
index e7f06a3a..ba2d74f9 100644
--- a/docs/3.1/class_s_m16716_controller__inherit__graph.map
+++ b/docs/3.1/class_s_m16716_controller__inherit__graph.map
@@ -1,3 +1,4 @@
<map id="SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
-<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,5,164,32"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="35,81,179,122"/>
+<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="49,5,164,32"/>
</map>
diff --git a/docs/3.1/class_s_m16716_controller__inherit__graph.md5 b/docs/3.1/class_s_m16716_controller__inherit__graph.md5
index a1b20282..f5a7417b 100644
--- a/docs/3.1/class_s_m16716_controller__inherit__graph.md5
+++ b/docs/3.1/class_s_m16716_controller__inherit__graph.md5
@@ -1 +1 @@
-f18db87a8639d72001676c1481bd4c5b \ No newline at end of file
+19fad4c9947683099d23f7e9464407be \ No newline at end of file
diff --git a/docs/3.1/class_s_m16716_controller__inherit__graph.png b/docs/3.1/class_s_m16716_controller__inherit__graph.png
index 66e3a9fe..51ee916c 100644
--- a/docs/3.1/class_s_m16716_controller__inherit__graph.png
+++ b/docs/3.1/class_s_m16716_controller__inherit__graph.png
Binary files differ
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 7d78072e..981335cc 100644
--- a/docs/3.1/class_s_p_i_output-members.html
+++ b/docs/3.1/class_s_p_i_output-members.html
@@ -131,7 +131,7 @@ $(document).ready(function(){initNavTree('class_s_p_i_output.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_s_p_i_output.html b/docs/3.1/class_s_p_i_output.html
index 5586c04e..304a89c0 100644
--- a/docs/3.1/class_s_p_i_output.html
+++ b/docs/3.1/class_s_p_i_output.html
@@ -175,7 +175,7 @@ static void&#160;</td><td class="memItemRight" valign="bottom"><b>writeByte</b>
class SPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</h3>
-<p>Definition at line <a class="el" href="fastspi_8h_source.html#l00028">28</a> of file <a class="el" href="fastspi_8h_source.html">fastspi.h</a>.</p>
+<p>Definition at line <a class="el" href="fastspi_8h_source.html#l00030">30</a> of file <a class="el" href="fastspi_8h_source.html">fastspi.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="fastspi_8h_source.html">fastspi.h</a></li>
</ul>
@@ -185,7 +185,7 @@ class SPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_s_p_i_output.html">SPIOutput</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 4058c59e..4263cfc9 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
@@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('class_s_p_i_output_3_01_s_p_i2___d_a_t
class SPIOutput&lt; SPI2_DATA, SPI2_CLOCK, SPI_SPEED &gt;</h3>
-<p>Definition at line <a class="el" href="fastspi_8h_source.html#l00051">51</a> of file <a class="el" href="fastspi_8h_source.html">fastspi.h</a>.</p>
+<p>Definition at line <a class="el" href="fastspi_8h_source.html#l00053">53</a> of file <a class="el" href="fastspi_8h_source.html">fastspi.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="fastspi_8h_source.html">fastspi.h</a></li>
</ul>
@@ -140,7 +140,7 @@ class SPIOutput&lt; SPI2_DATA, SPI2_CLOCK, SPI_SPEED &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><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></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 5c5f7cb6..7c97d27b 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
@@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('class_s_p_i_output_3_01_s_p_i2___d_a_t
class SPIOutput&lt; SPI2_DATA, SPI_CLOCK, SPI_SPEED &gt;</h3>
-<p>Definition at line <a class="el" href="fastspi_8h_source.html#l00057">57</a> of file <a class="el" href="fastspi_8h_source.html">fastspi.h</a>.</p>
+<p>Definition at line <a class="el" href="fastspi_8h_source.html#l00059">59</a> of file <a class="el" href="fastspi_8h_source.html">fastspi.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="fastspi_8h_source.html">fastspi.h</a></li>
</ul>
@@ -140,7 +140,7 @@ class SPIOutput&lt; SPI2_DATA, SPI_CLOCK, SPI_SPEED &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><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></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 30ab46c2..9b96549b 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
@@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('class_s_p_i_output_3_01_s_p_i___d_a_t_
class SPIOutput&lt; SPI_DATA, SPI2_CLOCK, SPI_SPEED &gt;</h3>
-<p>Definition at line <a class="el" href="fastspi_8h_source.html#l00054">54</a> of file <a class="el" href="fastspi_8h_source.html">fastspi.h</a>.</p>
+<p>Definition at line <a class="el" href="fastspi_8h_source.html#l00056">56</a> of file <a class="el" href="fastspi_8h_source.html">fastspi.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="fastspi_8h_source.html">fastspi.h</a></li>
</ul>
@@ -140,7 +140,7 @@ class SPIOutput&lt; SPI_DATA, SPI2_CLOCK, SPI_SPEED &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><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></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 d5c829df..fa4c4ec5 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
@@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('class_s_p_i_output_3_01_s_p_i___d_a_t_
class SPIOutput&lt; SPI_DATA, SPI_CLOCK, SPI_SPEED &gt;</h3>
-<p>Definition at line <a class="el" href="fastspi_8h_source.html#l00046">46</a> of file <a class="el" href="fastspi_8h_source.html">fastspi.h</a>.</p>
+<p>Definition at line <a class="el" href="fastspi_8h_source.html#l00048">48</a> of file <a class="el" href="fastspi_8h_source.html">fastspi.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="fastspi_8h_source.html">fastspi.h</a></li>
</ul>
@@ -140,7 +140,7 @@ class SPIOutput&lt; SPI_DATA, SPI_CLOCK, SPI_SPEED &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><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></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 1892122a..c3ceca1a 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
@@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('class_s_p_i_output_3_01_s_p_i___u_a_r_
class SPIOutput&lt; SPI_UART0_DATA, SPI_UART0_CLOCK, SPI_SPEED &gt;</h3>
-<p>Definition at line <a class="el" href="fastspi_8h_source.html#l00092">92</a> of file <a class="el" href="fastspi_8h_source.html">fastspi.h</a>.</p>
+<p>Definition at line <a class="el" href="fastspi_8h_source.html#l00094">94</a> of file <a class="el" href="fastspi_8h_source.html">fastspi.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="fastspi_8h_source.html">fastspi.h</a></li>
</ul>
@@ -140,7 +140,7 @@ class SPIOutput&lt; SPI_UART0_DATA, SPI_UART0_CLOCK, SPI_SPEED &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><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></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 4efcd23a..2b8b7010 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
@@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('class_s_p_i_output_3_01_s_p_i___u_a_r_
class SPIOutput&lt; SPI_UART1_DATA, SPI_UART1_CLOCK, SPI_SPEED &gt;</h3>
-<p>Definition at line <a class="el" href="fastspi_8h_source.html#l00099">99</a> of file <a class="el" href="fastspi_8h_source.html">fastspi.h</a>.</p>
+<p>Definition at line <a class="el" href="fastspi_8h_source.html#l00101">101</a> of file <a class="el" href="fastspi_8h_source.html">fastspi.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="fastspi_8h_source.html">fastspi.h</a></li>
</ul>
@@ -140,7 +140,7 @@ class SPIOutput&lt; SPI_UART1_DATA, SPI_UART1_CLOCK, SPI_SPEED &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><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></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_selectable-members.html b/docs/3.1/class_selectable-members.html
index 66d4e90d..2ae87c1e 100644
--- a/docs/3.1/class_selectable-members.html
+++ b/docs/3.1/class_selectable-members.html
@@ -122,7 +122,7 @@ $(document).ready(function(){initNavTree('class_selectable.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_selectable.html b/docs/3.1/class_selectable.html
index a09704bf..6b8eb4f4 100644
--- a/docs/3.1/class_selectable.html
+++ b/docs/3.1/class_selectable.html
@@ -138,7 +138,7 @@ virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>isSelected</b
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p>Definition at line <a class="el" href="fastpin_8h_source.html#l00022">22</a> of file <a class="el" href="fastpin_8h_source.html">fastpin.h</a>.</p>
+<p>Definition at line <a class="el" href="fastpin_8h_source.html#l00024">24</a> of file <a class="el" href="fastpin_8h_source.html">fastpin.h</a>.</p>
</div><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>
</ul>
@@ -148,7 +148,7 @@ virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>isSelected</b
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_selectable.html">Selectable</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 dbc3fc74..827141ee 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
@@ -131,7 +131,7 @@ $(document).ready(function(){initNavTree('class_software_s_p_i_output.html','');
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 e75bb9c3..7fd86c65 100644
--- a/docs/3.1/class_software_s_p_i_output.html
+++ b/docs/3.1/class_software_s_p_i_output.html
@@ -175,7 +175,7 @@ static void&#160;</td><td class="memItemRight" valign="bottom"><b>writeByte</b>
class SoftwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</h3>
-<p>Definition at line <a class="el" href="fastspi_8h_source.html#l00032">32</a> of file <a class="el" href="fastspi_8h_source.html">fastspi.h</a>.</p>
+<p>Definition at line <a class="el" href="fastspi_8h_source.html#l00034">34</a> of file <a class="el" href="fastspi_8h_source.html">fastspi.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="fastspi_8h_source.html">fastspi.h</a></li>
</ul>
@@ -185,7 +185,7 @@ class SoftwareSPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_software_s_p_i_output.html">SoftwareSPIOutput</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_t_m1803.html b/docs/3.1/class_t_m1803.html
index 086559e5..2303c690 100644
--- a/docs/3.1/class_t_m1803.html
+++ b/docs/3.1/class_t_m1803.html
@@ -144,7 +144,7 @@ class TM1803&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_t_m1803.html">TM1803</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_t_m1803_controller400_khz.html b/docs/3.1/class_t_m1803_controller400_khz.html
index d983d3f4..ec399369 100644
--- a/docs/3.1/class_t_m1803_controller400_khz.html
+++ b/docs/3.1/class_t_m1803_controller400_khz.html
@@ -132,7 +132,7 @@ $(document).ready(function(){initNavTree('class_t_m1803_controller400_khz.html',
class TM1803Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00541">541</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00352">352</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -142,7 +142,7 @@ class TM1803Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_t_m1803_controller400_khz.html">TM1803Controller400Khz</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_t_m1804.html b/docs/3.1/class_t_m1804.html
index 56353564..0e3b221e 100644
--- a/docs/3.1/class_t_m1804.html
+++ b/docs/3.1/class_t_m1804.html
@@ -144,7 +144,7 @@ class TM1804&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_t_m1804.html">TM1804</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_t_m1809.html b/docs/3.1/class_t_m1809.html
index dbeeff6a..359c08a9 100644
--- a/docs/3.1/class_t_m1809.html
+++ b/docs/3.1/class_t_m1809.html
@@ -144,7 +144,7 @@ class TM1809&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_t_m1809.html">TM1809</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_t_m1809_controller800_khz.html b/docs/3.1/class_t_m1809_controller800_khz.html
index 952da88b..37147672 100644
--- a/docs/3.1/class_t_m1809_controller800_khz.html
+++ b/docs/3.1/class_t_m1809_controller800_khz.html
@@ -132,7 +132,7 @@ $(document).ready(function(){initNavTree('class_t_m1809_controller800_khz.html',
class TM1809Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00538">538</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00349">349</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -142,7 +142,7 @@ class TM1809Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_t_m1812.html b/docs/3.1/class_t_m1812.html
index dc55feed..1657f5f9 100644
--- a/docs/3.1/class_t_m1812.html
+++ b/docs/3.1/class_t_m1812.html
@@ -144,7 +144,7 @@ class TM1812&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_t_m1812.html">TM1812</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_t_m1829.html b/docs/3.1/class_t_m1829.html
index 2f8198bb..f5aafc16 100644
--- a/docs/3.1/class_t_m1829.html
+++ b/docs/3.1/class_t_m1829.html
@@ -144,7 +144,7 @@ class TM1829&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_t_m1829.html">TM1829</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_t_m1829_controller1600_khz.html b/docs/3.1/class_t_m1829_controller1600_khz.html
index a9043c6e..0524747f 100644
--- a/docs/3.1/class_t_m1829_controller1600_khz.html
+++ b/docs/3.1/class_t_m1829_controller1600_khz.html
@@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('class_t_m1829_controller1600_khz.html'
class TM1829Controller1600Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00604">604</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00415">415</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -140,7 +140,7 @@ class TM1829Controller1600Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_t_m1829_controller1600_khz.html">TM1829Controller1600Khz</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_t_m1829_controller800_khz.html b/docs/3.1/class_t_m1829_controller800_khz.html
index 39fc6988..518b4fce 100644
--- a/docs/3.1/class_t_m1829_controller800_khz.html
+++ b/docs/3.1/class_t_m1829_controller800_khz.html
@@ -132,7 +132,7 @@ $(document).ready(function(){initNavTree('class_t_m1829_controller800_khz.html',
class TM1829Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00544">544</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00355">355</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -142,7 +142,7 @@ class TM1829Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_t_m1829_controller800_khz.html">TM1829Controller800Khz</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_u_c_s1903.html b/docs/3.1/class_u_c_s1903.html
index 1f26a4bc..5f5d3ed7 100644
--- a/docs/3.1/class_u_c_s1903.html
+++ b/docs/3.1/class_u_c_s1903.html
@@ -144,7 +144,7 @@ class UCS1903&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_u_c_s1903.html">UCS1903</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_u_c_s1903_b.html b/docs/3.1/class_u_c_s1903_b.html
index 90de8fd6..ed86be47 100644
--- a/docs/3.1/class_u_c_s1903_b.html
+++ b/docs/3.1/class_u_c_s1903_b.html
@@ -144,7 +144,7 @@ class UCS1903B&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_u_c_s1903_b.html">UCS1903B</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 cf39fc14..4a7a8b7b 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
@@ -132,7 +132,7 @@ $(document).ready(function(){initNavTree('class_u_c_s1903_b_controller800_khz.ht
class UCS1903BController800Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00529">529</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00340">340</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -142,7 +142,7 @@ class UCS1903BController800Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_u_c_s1903_b_controller800_khz.html">UCS1903BController800Khz</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 9e907b0d..0242b216 100644
--- a/docs/3.1/class_u_c_s1903_controller400_khz.html
+++ b/docs/3.1/class_u_c_s1903_controller400_khz.html
@@ -132,7 +132,7 @@ $(document).ready(function(){initNavTree('class_u_c_s1903_controller400_khz.html
class UCS1903Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00526">526</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00337">337</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -142,7 +142,7 @@ class UCS1903Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_u_c_s1903_controller400_khz.html">UCS1903Controller400Khz</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_u_c_s1904.html b/docs/3.1/class_u_c_s1904.html
index 1f7ed208..916a1919 100644
--- a/docs/3.1/class_u_c_s1904.html
+++ b/docs/3.1/class_u_c_s1904.html
@@ -144,7 +144,7 @@ class UCS1904&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_u_c_s1904.html">UCS1904</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 2325d7d0..bbc182cc 100644
--- a/docs/3.1/class_u_c_s1904_controller800_khz.html
+++ b/docs/3.1/class_u_c_s1904_controller800_khz.html
@@ -132,7 +132,7 @@ $(document).ready(function(){initNavTree('class_u_c_s1904_controller800_khz.html
class UCS1904Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00532">532</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00343">343</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -142,7 +142,7 @@ class UCS1904Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_u_c_s1904_controller800_khz.html">UCS1904Controller800Khz</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_u_c_s2903.html b/docs/3.1/class_u_c_s2903.html
index 72429820..09dc3f49 100644
--- a/docs/3.1/class_u_c_s2903.html
+++ b/docs/3.1/class_u_c_s2903.html
@@ -144,7 +144,7 @@ class UCS2903&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_u_c_s2903.html">UCS2903</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_u_c_s2903_controller.html b/docs/3.1/class_u_c_s2903_controller.html
index ebaadf2d..58691b82 100644
--- a/docs/3.1/class_u_c_s2903_controller.html
+++ b/docs/3.1/class_u_c_s2903_controller.html
@@ -126,15 +126,13 @@ $(document).ready(function(){initNavTree('class_u_c_s2903_controller.html','');}
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_u_c_s2903_controller__coll__graph.png" border="0" usemap="#_u_c_s2903_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="_u_c_s2903_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="_u_c_s2903_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 target="top" href="graph_legend.html">legend</a>]</span></center></div>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;uint8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt;<br />
class UCS2903Controller&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00535">535</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00346">346</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -144,7 +142,7 @@ class UCS2903Controller&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_u_c_s2903_controller.html">UCS2903Controller</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_w_s2801_controller-members.html b/docs/3.1/class_w_s2801_controller-members.html
index a3775da8..845e644b 100644
--- a/docs/3.1/class_w_s2801_controller-members.html
+++ b/docs/3.1/class_w_s2801_controller-members.html
@@ -115,42 +115,42 @@ $(document).ready(function(){initNavTree('class_w_s2801_controller.html','');});
<p>This is the complete list of members for <a class="el" href="class_w_s2801_controller.html">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, including all inherited members.</p>
<table class="directory">
<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><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a>(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><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 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><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 bgcolor="#f0f0f0" class="even"><td class="entry"><b>CPixelLEDController</b>() (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &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#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_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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#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_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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 bgcolor="#f0f0f0"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER &gt; &amp;pixels) (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><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0 (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</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#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 -->
@@ -158,7 +158,7 @@ $(document).ready(function(){initNavTree('class_w_s2801_controller.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_w_s2801_controller.html b/docs/3.1/class_w_s2801_controller.html
index a010f8db..8ee586ee 100644
--- a/docs/3.1/class_w_s2801_controller.html
+++ b/docs/3.1/class_w_s2801_controller.html
@@ -127,7 +127,7 @@ $(document).ready(function(){initNavTree('class_w_s2801_controller.html','');});
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_w_s2801_controller__inherit__graph.png" border="0" usemap="#_w_s2801_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="_w_s2801_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map" id="_w_s2801_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map">
-<area shape="rect" id="node3" href="class_w_s2803_controller.html" title="WS2803Controller\&lt; DATA\l_PIN, CLOCK_PIN, RGB_ORDER,\l SPI_SPEED \&gt;" alt="" coords="5,184,235,240"/><area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,5,177,32"/></map>
+<area shape="rect" id="node4" href="class_w_s2803_controller.html" title="WS2803Controller\&lt; DATA\l_PIN, CLOCK_PIN, RGB_ORDER,\l SPI_SPEED \&gt;" alt="" coords="5,275,235,331"/><area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="48,81,192,122"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,5,177,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;:</div>
@@ -136,7 +136,7 @@ $(document).ready(function(){initNavTree('class_w_s2801_controller.html','');});
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_w_s2801_controller__coll__graph.png" border="0" usemap="#_w_s2801_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_w_s2801_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" id="_w_s2801_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map">
-<area shape="rect" id="node2" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/><area shape="rect" id="node3" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/></map>
+<area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="48,219,192,261"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -145,15 +145,15 @@ Public Member Functions</h2></td></tr>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4">init</a> ()</td></tr>
<tr class="memdesc:ad6187b68bccb831cd5cab3cffbd6bdb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the LED controller <br /></td></tr>
<tr class="separator:ad6187b68bccb831cd5cab3cffbd6bdb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a867d4249b5921e0d717c6c21038bb11c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a867d4249b5921e0d717c6c21038bb11c"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c">clearLeds</a> (int nLeds)</td></tr>
-<tr class="memdesc:a867d4249b5921e0d717c6c21038bb11c"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
-<tr class="separator:a867d4249b5921e0d717c6c21038bb11c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c560c6d171f117dfd19c0f2ec780a32"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a> ()</td></tr>
<tr class="memdesc:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">create an led controller object, add it to the chain of controllers <br /></td></tr>
<tr class="separator:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd0f6ce4701e76ebc4b916e0a04134f2"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a> (int nLeds)</td></tr>
+<tr class="memdesc:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
+<tr class="separator:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe990b9a65f5bff1f391cc5c28752abb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, uint8_t brightness)</td></tr>
<tr class="memdesc:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">show function w/integer brightness, will scale for color correction and temperature <br /></td></tr>
@@ -174,9 +174,6 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<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#a06cfb05ad6e0f7982328928051f3f565">next</a> ()</td></tr>
<tr class="memdesc:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the next controller in the chain after this one. will return NULL at the end of the chain <br /></td></tr>
<tr class="separator:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a55f6d5b215dc14f9473faea938b4c8"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t brightness)</td></tr>
-<tr class="separator:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b08378b29f92c5def65175ec5334037"></a>
<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds)</td></tr>
<tr class="memdesc:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the default array of leds to be used by this controller <br /></td></tr>
@@ -239,19 +236,19 @@ virtual uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>getMaxRef
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
-<tr class="memitem:a615609bf16dd4c8fcc9ccf286ca52501"><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"><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>
-<tr class="separator:a615609bf16dd4c8fcc9ccf286ca52501"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a69fca4db95f5f60f27d7d1a8c7fa16a0"><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#a69fca4db95f5f60f27d7d1a8c7fa16a0">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:a69fca4db95f5f60f27d7d1a8c7fa16a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a69fca4db95f5f60f27d7d1a8c7fa16a0">More...</a><br /></td></tr>
-<tr class="separator:a69fca4db95f5f60f27d7d1a8c7fa16a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a69fca4db95f5f60f27d7d1a8c7fa16a0"><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#a69fca4db95f5f60f27d7d1a8c7fa16a0">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:a69fca4db95f5f60f27d7d1a8c7fa16a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a69fca4db95f5f60f27d7d1a8c7fa16a0">More...</a><br /></td></tr>
-<tr class="separator:a69fca4db95f5f60f27d7d1a8c7fa16a0"><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>
-<tr class="separator:a3ae4f61fc85ef4609d65c14ca51434c4 inherit pro_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0bb02438ec0df1f3046131194a892576"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0bb02438ec0df1f3046131194a892576"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt; &amp;pixels)</td></tr>
+<tr class="separator:a0bb02438ec0df1f3046131194a892576"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_c_pixel_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_c_pixel_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a></td></tr>
+<tr class="memitem:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ab7248c894ba95c3a71665f5bed2a17"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0</td></tr>
+<tr class="separator:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">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:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#af5569b9e92f75410e03c75bf5764e016">More...</a><br /></td></tr>
+<tr class="separator:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
+<tr class="memdesc:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a36cc2a15671bae0db53df1e26b4a813c">More...</a><br /></td></tr>
+<tr class="separator:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
@@ -305,177 +302,8 @@ class WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</h3>
</dd>
</dl>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00172">172</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-</div><h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="a69fca4db95f5f60f27d7d1a8c7fa16a0"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t SPI_SPEED = DATA_RATE_MHZ(1)&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_w_s2801_controller.html">WS2801Controller</a>&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;::show </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>write the passed in rgb data out to the leds managed by this controller </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the rgb data to write out to the strip </td></tr>
- <tr><td class="paramname">nLeds</td><td>the number of leds being written out </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling to apply to each led before writing it out </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00198">198</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a69fca4db95f5f60f27d7d1a8c7fa16a0"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t SPI_SPEED = DATA_RATE_MHZ(1)&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_w_s2801_controller.html">WS2801Controller</a>&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;::show </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>write the passed in rgb data out to the leds managed by this controller </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the rgb data to write out to the strip </td></tr>
- <tr><td class="paramname">nLeds</td><td>the number of leds being written out </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling to apply to each led before writing it out </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00205">205</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="a615609bf16dd4c8fcc9ccf286ca52501"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t SPI_SPEED = DATA_RATE_MHZ(1)&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="class_w_s2801_controller.html">WS2801Controller</a>&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;::showColor </td>
- <td>(</td>
- <td class="paramtype">const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td>
- <td class="paramname"><em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>nLeds</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td>
- <td class="paramname"><em>scale</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 class="mlabel">protected</span><span class="mlabel">virtual</span></span> </td>
- </tr>
-</table>
-</div><div class="memdoc">
-
-<p>set all the leds on the controller to a given color </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">data</td><td>the crgb color to set the leds to </td></tr>
- <tr><td class="paramname">nLeds</td><td>the numner of leds to set to this color </td></tr>
- <tr><td class="paramname">scale</td><td>the rgb scaling value for outputting color </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Implements <a class="el" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">CLEDController</a>.</p>
-
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00192">192</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00122">122</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+</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 -->
@@ -484,7 +312,7 @@ template&lt;uint8_t DATA_PIN, uint8_t CLOCK_PIN, EOrder RGB_ORDER = RGB, uint8_t
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_w_s2801_controller.html">WS2801Controller</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_w_s2801_controller.js b/docs/3.1/class_w_s2801_controller.js
index d07079c2..877dcf70 100644
--- a/docs/3.1/class_w_s2801_controller.js
+++ b/docs/3.1/class_w_s2801_controller.js
@@ -1,9 +1,6 @@
var class_w_s2801_controller =
[
[ "WS2801Controller", "class_w_s2801_controller.html#add280e6800bdb41bcc6aee2f5c9d16b5", null ],
- [ "clearLeds", "class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c", null ],
[ "init", "class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4", null ],
- [ "show", "class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0", null ],
- [ "show", "class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0", null ],
- [ "showColor", "class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501", null ]
+ [ "showPixels", "class_w_s2801_controller.html#a0bb02438ec0df1f3046131194a892576", null ]
]; \ No newline at end of file
diff --git a/docs/3.1/class_w_s2801_controller__coll__graph.map b/docs/3.1/class_w_s2801_controller__coll__graph.map
index 9b1366f0..5634621e 100644
--- a/docs/3.1/class_w_s2801_controller__coll__graph.map
+++ b/docs/3.1/class_w_s2801_controller__coll__graph.map
@@ -1,4 +1,5 @@
<map id="WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
-<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/>
-<area shape="rect" id="node3" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="48,219,192,261"/>
+<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/>
+<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/>
</map>
diff --git a/docs/3.1/class_w_s2801_controller__coll__graph.md5 b/docs/3.1/class_w_s2801_controller__coll__graph.md5
index f47865c6..07f2118f 100644
--- a/docs/3.1/class_w_s2801_controller__coll__graph.md5
+++ b/docs/3.1/class_w_s2801_controller__coll__graph.md5
@@ -1 +1 @@
-15f67174055a2bc91bafcfa29a000a8b \ No newline at end of file
+91cd2dd8495cfce8a4e49364ae7ffde2 \ No newline at end of file
diff --git a/docs/3.1/class_w_s2801_controller__coll__graph.png b/docs/3.1/class_w_s2801_controller__coll__graph.png
index 059dbb3b..84b69c6d 100644
--- a/docs/3.1/class_w_s2801_controller__coll__graph.png
+++ b/docs/3.1/class_w_s2801_controller__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_w_s2801_controller__inherit__graph.map b/docs/3.1/class_w_s2801_controller__inherit__graph.map
index 19b68003..26a244e2 100644
--- a/docs/3.1/class_w_s2801_controller__inherit__graph.map
+++ b/docs/3.1/class_w_s2801_controller__inherit__graph.map
@@ -1,4 +1,5 @@
<map id="WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
-<area shape="rect" id="node3" href="$class_w_s2803_controller.html" title="WS2803Controller\&lt; DATA\l_PIN, CLOCK_PIN, RGB_ORDER,\l SPI_SPEED \&gt;" alt="" coords="5,184,235,240"/>
-<area shape="rect" id="node2" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,5,177,32"/>
+<area shape="rect" id="node4" href="$class_w_s2803_controller.html" title="WS2803Controller\&lt; DATA\l_PIN, CLOCK_PIN, RGB_ORDER,\l SPI_SPEED \&gt;" alt="" coords="5,275,235,331"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="48,81,192,122"/>
+<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,5,177,32"/>
</map>
diff --git a/docs/3.1/class_w_s2801_controller__inherit__graph.md5 b/docs/3.1/class_w_s2801_controller__inherit__graph.md5
index 21302abc..21755fc9 100644
--- a/docs/3.1/class_w_s2801_controller__inherit__graph.md5
+++ b/docs/3.1/class_w_s2801_controller__inherit__graph.md5
@@ -1 +1 @@
-8368f9027482367564dc7ba4c2f3de06 \ No newline at end of file
+4e263ae3045d49a7bcd6c4dd76ec0682 \ No newline at end of file
diff --git a/docs/3.1/class_w_s2801_controller__inherit__graph.png b/docs/3.1/class_w_s2801_controller__inherit__graph.png
index 1c4a4632..6d29b2af 100644
--- a/docs/3.1/class_w_s2801_controller__inherit__graph.png
+++ b/docs/3.1/class_w_s2801_controller__inherit__graph.png
Binary files differ
diff --git a/docs/3.1/class_w_s2803_controller-members.html b/docs/3.1/class_w_s2803_controller-members.html
index b8da8ca7..0a3f642c 100644
--- a/docs/3.1/class_w_s2803_controller-members.html
+++ b/docs/3.1/class_w_s2803_controller-members.html
@@ -115,42 +115,42 @@ $(document).ready(function(){initNavTree('class_w_s2803_controller.html','');});
<p>This is the complete list of members for <a class="el" href="class_w_s2803_controller.html">WS2803Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>, including all inherited members.</p>
<table class="directory">
<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><td class="entry"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a>(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><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 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><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 bgcolor="#f0f0f0" class="even"><td class="entry"><b>CPixelLEDController</b>() (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &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#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_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a>(const struct CRGB *data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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#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_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">showColor</a>(const struct CRGB &amp;data, int nLeds, CRGB scale)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; 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 bgcolor="#f0f0f0"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER &gt; &amp;pixels) (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><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>showPixels</b>(PixelController&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0 (defined in <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</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#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 -->
@@ -158,7 +158,7 @@ $(document).ready(function(){initNavTree('class_w_s2803_controller.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_w_s2803_controller.html b/docs/3.1/class_w_s2803_controller.html
index dbbad584..1ee9ef16 100644
--- a/docs/3.1/class_w_s2803_controller.html
+++ b/docs/3.1/class_w_s2803_controller.html
@@ -120,7 +120,7 @@ $(document).ready(function(){initNavTree('class_w_s2803_controller.html','');});
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_w_s2803_controller__inherit__graph.png" border="0" usemap="#_w_s2803_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="_w_s2803_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map" id="_w_s2803_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_inherit__map">
-<area shape="rect" id="node2" href="class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="5,80,235,136"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,5,177,32"/></map>
+<area shape="rect" id="node2" href="class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="5,171,235,227"/><area shape="rect" id="node3" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="48,81,192,122"/><area shape="rect" id="node4" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,5,177,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for WS2803Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;:</div>
@@ -129,7 +129,7 @@ $(document).ready(function(){initNavTree('class_w_s2803_controller.html','');});
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><img src="class_w_s2803_controller__coll__graph.png" border="0" usemap="#_w_s2803_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="_w_s2803_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map" id="_w_s2803_controller_3_01_d_a_t_a___p_i_n_00_01_c_l_o_c_k___p_i_n_00_01_r_g_b___o_r_d_e_r_00_01_s_p_i___s_p_e_e_d_01_4_coll__map">
-<area shape="rect" id="node2" href="class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="5,219,235,275"/><area shape="rect" id="node3" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/><area shape="rect" id="node4" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/></map>
+<area shape="rect" id="node2" href="class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="5,312,235,368"/><area shape="rect" id="node3" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="48,219,192,261"/><area shape="rect" id="node4" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/><area shape="rect" id="node5" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/></map>
<center><span class="legend">[<a target="top" 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>
@@ -139,15 +139,15 @@ Additional Inherited Members</h2></td></tr>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4">init</a> ()</td></tr>
<tr class="memdesc:ad6187b68bccb831cd5cab3cffbd6bdb4 inherit pub_methods_class_w_s2801_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the LED controller <br /></td></tr>
<tr class="separator:ad6187b68bccb831cd5cab3cffbd6bdb4 inherit pub_methods_class_w_s2801_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a867d4249b5921e0d717c6c21038bb11c inherit pub_methods_class_w_s2801_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a867d4249b5921e0d717c6c21038bb11c"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c">clearLeds</a> (int nLeds)</td></tr>
-<tr class="memdesc:a867d4249b5921e0d717c6c21038bb11c inherit pub_methods_class_w_s2801_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
-<tr class="separator:a867d4249b5921e0d717c6c21038bb11c inherit pub_methods_class_w_s2801_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_c_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_c_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memitem:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8c560c6d171f117dfd19c0f2ec780a32"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a> ()</td></tr>
<tr class="memdesc:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">create an led controller object, add it to the chain of controllers <br /></td></tr>
<tr class="separator:a8c560c6d171f117dfd19c0f2ec780a32 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd0f6ce4701e76ebc4b916e0a04134f2"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a> (int nLeds)</td></tr>
+<tr class="memdesc:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear out/zero out the given number of leds. <br /></td></tr>
+<tr class="separator:abd0f6ce4701e76ebc4b916e0a04134f2 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abe990b9a65f5bff1f391cc5c28752abb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, uint8_t brightness)</td></tr>
<tr class="memdesc:abe990b9a65f5bff1f391cc5c28752abb inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">show function w/integer brightness, will scale for color correction and temperature <br /></td></tr>
@@ -168,9 +168,6 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
<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#a06cfb05ad6e0f7982328928051f3f565">next</a> ()</td></tr>
<tr class="memdesc:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the next controller in the chain after this one. will return NULL at the end of the chain <br /></td></tr>
<tr class="separator:a06cfb05ad6e0f7982328928051f3f565 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a55f6d5b215dc14f9473faea938b4c8"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>show</b> (const struct CARGB *data, int nLeds, uint8_t brightness)</td></tr>
-<tr class="separator:a4a55f6d5b215dc14f9473faea938b4c8 inherit pub_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5b08378b29f92c5def65175ec5334037"></a>
<a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds)</td></tr>
<tr class="memdesc:a5b08378b29f92c5def65175ec5334037 inherit pub_methods_class_c_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set the default array of leds to be used by this controller <br /></td></tr>
@@ -239,19 +236,19 @@ static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</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>
-<tr class="separator:a615609bf16dd4c8fcc9ccf286ca52501 inherit pro_methods_class_w_s2801_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a69fca4db95f5f60f27d7d1a8c7fa16a0 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#a69fca4db95f5f60f27d7d1a8c7fa16a0">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:a69fca4db95f5f60f27d7d1a8c7fa16a0 inherit pro_methods_class_w_s2801_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a69fca4db95f5f60f27d7d1a8c7fa16a0">More...</a><br /></td></tr>
-<tr class="separator:a69fca4db95f5f60f27d7d1a8c7fa16a0 inherit pro_methods_class_w_s2801_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a69fca4db95f5f60f27d7d1a8c7fa16a0 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#a69fca4db95f5f60f27d7d1a8c7fa16a0">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
-<tr class="memdesc:a69fca4db95f5f60f27d7d1a8c7fa16a0 inherit pro_methods_class_w_s2801_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a69fca4db95f5f60f27d7d1a8c7fa16a0">More...</a><br /></td></tr>
-<tr class="separator:a69fca4db95f5f60f27d7d1a8c7fa16a0 inherit pro_methods_class_w_s2801_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>
-<tr class="separator:a3ae4f61fc85ef4609d65c14ca51434c4 inherit pro_methods_class_c_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0bb02438ec0df1f3046131194a892576 inherit pro_methods_class_w_s2801_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0bb02438ec0df1f3046131194a892576"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt; &amp;pixels)</td></tr>
+<tr class="separator:a0bb02438ec0df1f3046131194a892576 inherit pro_methods_class_w_s2801_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_c_pixel_l_e_d_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_c_pixel_l_e_d_controller')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER &gt;</a></td></tr>
+<tr class="memitem:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ab7248c894ba95c3a71665f5bed2a17"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>showPixels</b> (<a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER, 1, 0xFFFFFFFF &gt; &amp;pixels)=0</td></tr>
+<tr class="separator:a1ab7248c894ba95c3a71665f5bed2a17 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">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:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">set all the leds on the controller to a given color <a href="#af5569b9e92f75410e03c75bf5764e016">More...</a><br /></td></tr>
+<tr class="separator:af5569b9e92f75410e03c75bf5764e016 inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">show</a> (const struct <a class="el" href="struct_c_r_g_b.html">CRGB</a> *data, int nLeds, <a class="el" href="struct_c_r_g_b.html">CRGB</a> scale)</td></tr>
+<tr class="memdesc:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_l_e_d_controller"><td class="mdescLeft">&#160;</td><td class="mdescRight">write the passed in rgb data out to the leds managed by this controller <a href="#a36cc2a15671bae0db53df1e26b4a813c">More...</a><br /></td></tr>
+<tr class="separator:a36cc2a15671bae0db53df1e26b4a813c inherit pro_methods_class_c_pixel_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>
@@ -284,7 +281,7 @@ static <a class="el" href="class_c_l_e_d_controller.html">CLEDController</a> *&#
class WS2803Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00214">214</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00144">144</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -294,7 +291,7 @@ class WS2803Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_w_s2803_controller.html">WS2803Controller</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_w_s2803_controller__coll__graph.map b/docs/3.1/class_w_s2803_controller__coll__graph.map
index 41a6a4fa..78f64744 100644
--- a/docs/3.1/class_w_s2803_controller__coll__graph.map
+++ b/docs/3.1/class_w_s2803_controller__coll__graph.map
@@ -1,5 +1,6 @@
<map id="WS2803Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="WS2803Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
-<area shape="rect" id="node2" href="$class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="5,219,235,275"/>
-<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/>
-<area shape="rect" id="node4" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/>
+<area shape="rect" id="node2" href="$class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="5,312,235,368"/>
+<area shape="rect" id="node3" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="48,219,192,261"/>
+<area shape="rect" id="node4" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,133,177,160"/>
+<area shape="rect" id="node5" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="90,5,149,32"/>
</map>
diff --git a/docs/3.1/class_w_s2803_controller__coll__graph.md5 b/docs/3.1/class_w_s2803_controller__coll__graph.md5
index 206445ce..b8dbaa65 100644
--- a/docs/3.1/class_w_s2803_controller__coll__graph.md5
+++ b/docs/3.1/class_w_s2803_controller__coll__graph.md5
@@ -1 +1 @@
-2dab56d987a974b1bdeaa585fdab2f46 \ No newline at end of file
+5e54231eea2effc92682586dabcb610c \ No newline at end of file
diff --git a/docs/3.1/class_w_s2803_controller__coll__graph.png b/docs/3.1/class_w_s2803_controller__coll__graph.png
index 0ca83346..d7082d4f 100644
--- a/docs/3.1/class_w_s2803_controller__coll__graph.png
+++ b/docs/3.1/class_w_s2803_controller__coll__graph.png
Binary files differ
diff --git a/docs/3.1/class_w_s2803_controller__inherit__graph.map b/docs/3.1/class_w_s2803_controller__inherit__graph.map
index 1707db73..ad3255cf 100644
--- a/docs/3.1/class_w_s2803_controller__inherit__graph.map
+++ b/docs/3.1/class_w_s2803_controller__inherit__graph.map
@@ -1,4 +1,5 @@
<map id="WS2803Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;" name="WS2803Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;">
-<area shape="rect" id="node2" href="$class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="5,80,235,136"/>
-<area shape="rect" id="node3" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,5,177,32"/>
+<area shape="rect" id="node2" href="$class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="5,171,235,227"/>
+<area shape="rect" id="node3" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="48,81,192,122"/>
+<area shape="rect" id="node4" href="$class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="62,5,177,32"/>
</map>
diff --git a/docs/3.1/class_w_s2803_controller__inherit__graph.md5 b/docs/3.1/class_w_s2803_controller__inherit__graph.md5
index 09b4cd2f..9b4eee1e 100644
--- a/docs/3.1/class_w_s2803_controller__inherit__graph.md5
+++ b/docs/3.1/class_w_s2803_controller__inherit__graph.md5
@@ -1 +1 @@
-409d4f6c5c123dc3ed43b4e902bd6fb3 \ No newline at end of file
+2fdeb4066869ffa6de4b524ee3772e56 \ No newline at end of file
diff --git a/docs/3.1/class_w_s2803_controller__inherit__graph.png b/docs/3.1/class_w_s2803_controller__inherit__graph.png
index c9e4ff43..f410ffdc 100644
--- a/docs/3.1/class_w_s2803_controller__inherit__graph.png
+++ b/docs/3.1/class_w_s2803_controller__inherit__graph.png
Binary files differ
diff --git a/docs/3.1/class_w_s2811.html b/docs/3.1/class_w_s2811.html
index f9046b45..90fbcd61 100644
--- a/docs/3.1/class_w_s2811.html
+++ b/docs/3.1/class_w_s2811.html
@@ -134,7 +134,7 @@ $(document).ready(function(){initNavTree('class_w_s2811.html','');});
class WS2811&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00095">95</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00096">96</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</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>
@@ -144,7 +144,7 @@ class WS2811&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_w_s2811.html">WS2811</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_w_s2811__400.html b/docs/3.1/class_w_s2811__400.html
index 06d0ee15..7fc4137e 100644
--- a/docs/3.1/class_w_s2811__400.html
+++ b/docs/3.1/class_w_s2811__400.html
@@ -134,7 +134,7 @@ $(document).ready(function(){initNavTree('class_w_s2811__400.html','');});
class WS2811_400&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00097">97</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
+<p>Definition at line <a class="el" href="_fast_l_e_d_8h_source.html#l00098">98</a> of file <a class="el" href="_fast_l_e_d_8h_source.html">FastLED.h</a>.</p>
</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>
@@ -144,7 +144,7 @@ class WS2811_400&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_w_s2811__400.html">WS2811_400</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_w_s2811_controller400_khz.html b/docs/3.1/class_w_s2811_controller400_khz.html
index 2fac2796..6c92b353 100644
--- a/docs/3.1/class_w_s2811_controller400_khz.html
+++ b/docs/3.1/class_w_s2811_controller400_khz.html
@@ -132,7 +132,7 @@ $(document).ready(function(){initNavTree('class_w_s2811_controller400_khz.html',
class WS2811Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00520">520</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00328">328</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -142,7 +142,7 @@ class WS2811Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_w_s2811_controller400_khz.html">WS2811Controller400Khz</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_w_s2811_controller800_khz.html b/docs/3.1/class_w_s2811_controller800_khz.html
index 40755440..495c5b5d 100644
--- a/docs/3.1/class_w_s2811_controller800_khz.html
+++ b/docs/3.1/class_w_s2811_controller800_khz.html
@@ -132,7 +132,7 @@ $(document).ready(function(){initNavTree('class_w_s2811_controller800_khz.html',
class WS2811Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00517">517</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00325">325</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -142,7 +142,7 @@ class WS2811Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_w_s2811_controller800_khz.html">WS2811Controller800Khz</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_w_s2812.html b/docs/3.1/class_w_s2812.html
index 7079828e..08caad98 100644
--- a/docs/3.1/class_w_s2812.html
+++ b/docs/3.1/class_w_s2812.html
@@ -144,7 +144,7 @@ class WS2812&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_w_s2812.html">WS2812</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_w_s2812_b.html b/docs/3.1/class_w_s2812_b.html
index db2f7da9..8dfc5735 100644
--- a/docs/3.1/class_w_s2812_b.html
+++ b/docs/3.1/class_w_s2812_b.html
@@ -144,7 +144,7 @@ class WS2812B&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_w_s2812_b.html">WS2812B</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/class_w_s2812_controller800_khz.html b/docs/3.1/class_w_s2812_controller800_khz.html
index 0ec90fd8..ac367d4a 100644
--- a/docs/3.1/class_w_s2812_controller800_khz.html
+++ b/docs/3.1/class_w_s2812_controller800_khz.html
@@ -132,7 +132,7 @@ $(document).ready(function(){initNavTree('class_w_s2812_controller800_khz.html',
class WS2812Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
-<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00514">514</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
+<p>Definition at line <a class="el" href="chipsets_8h_source.html#l00322">322</a> of file <a class="el" href="chipsets_8h_source.html">chipsets.h</a>.</p>
</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>
@@ -142,7 +142,7 @@ class WS2812Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_w_s2812_controller800_khz.html">WS2812Controller800Khz</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/classes.html b/docs/3.1/classes.html
index 713ab930..809d6c27 100644
--- a/docs/3.1/classes.html
+++ b/docs/3.1/classes.html
@@ -111,67 +111,64 @@ $(document).ready(function(){initNavTree('classes.html','');});
<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_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 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_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 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 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><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_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_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 valign="top"><a class="el" href="class_fast_pin.html">FastPin</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_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 valign="top"><a class="el" href="class_fast_pin_b_b.html">FastPinBB</a>&#160;&#160;&#160;</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_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 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 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_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_s2812.html">WS2812</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_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_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_g_w6205__400.html">GW6205_400</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_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_controller400_khz.html">GW6205Controller400Khz</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_p_i_x_i_e.html">PIXIE</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_t_m1809.html">TM1809</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_d_m_x_serial_controller.html">DMXSerialController</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_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_s2903_controller.html">UCS2903Controller</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 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 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_pixie_controller.html">PixieController</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_t_m1809_controller800_khz.html">TM1809Controller800Khz</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.html">PL9823</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_t_m1812.html">TM1812</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_p_l9823_controller.html">PL9823Controller</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_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_a_p_a102_controller.html">APA102Controller</a>&#160;&#160;&#160;</td><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_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___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_a104.html">APA104</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 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_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_v_r_software_s_p_i_output.html">AVRSoftwareSPIOutput</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 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.html">FastPin</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_p9813_controller.html">P9813Controller</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 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_fast_pin_b_b.html">FastPinBB</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_w_s2811__400.html">WS2811_400</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 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 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_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_fast_l_e_d.html">CFastLED</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_p_i_x_i_e.html">PIXIE</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="struct_c_h_s_v.html">CHSV</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_pixie_controller.html">PixieController</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="class_c_h_s_v_palette16.html">CHSVPalette16</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_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_palette256.html">CHSVPalette256</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="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_palette32.html">CHSVPalette32</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_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="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 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_m1829_controller1600_khz.html">TM1829Controller1600Khz</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_t_m1829_controller800_khz.html">TM1829Controller800Khz</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="class_c_pixel_view.html">CPixelView</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_r_e_f_hardware_s_p_i_output.html">REFHardwareSPIOutput</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><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>
+<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 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_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="class_c_pixel_l_e_d_controller.html">CPixelLEDController</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 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="struct_c_r_g_b.html">CRGB</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 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>
+<tr><td valign="top"><a class="el" href="class_c_pixel_view.html">CPixelView</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="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="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 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 valign="top"><a class="el" href="class_c_r_g_b_array.html">CRGBArray</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_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
</td></tr>
-<tr><td valign="top"><a class="el" href="class_c_r_g_b_array.html">CRGBArray</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_c_pixel_view_1_1pixelset__iterator__base.html">CPixelView::pixelset_iterator_base</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="class_l_p_d1886_controller1250_khz.html">LPD1886Controller1250Khz</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="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>
+<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_l_p_d1886.html">LPD1886</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_c_r_g_b_palette256.html">CRGBPalette256</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_k6822.html">SK6822</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="class_c_pixel_view_1_1pixelset__iterator__base.html">CPixelView::pixelset_iterator_base</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</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_k6822_controller.html">SK6822Controller</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_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_palette256.html">CRGBPalette256</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_k6812.html">SK6812</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 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 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_k6812_controller.html">SK6812Controller</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_s_m16716_controller.html">SM16716Controller</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></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="struct_multi_pixel_controller.html">MultiPixelController</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_s1904.html">UCS1904</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 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.html">SPIOutput</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_serial_controller.html">DMXSerialController</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_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_s2903.html">UCS2903</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_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_m16716_controller.html">SM16716Controller</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_software_s_p_i_output.html">SoftwareSPIOutput</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="classq.html">q</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_n_e_o_p_i_x_e_l.html">NEOPIXEL</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_s1904_controller800_khz.html">UCS1904Controller800Khz</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_d_m_x_s_i_m_p_l_e.html">DMXSIMPLE</a>&#160;&#160;&#160;</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_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_s2903_controller.html">UCS2903Controller</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_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><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></tr>
-<tr><td></td><td></td><td></td><td valign="top"><a class="el" href="class_w_s2801_controller.html">WS2801Controller</a>&#160;&#160;&#160;</td><td></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_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_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_s2903.html">UCS2903</a>&#160;&#160;&#160;</td></tr>
+<tr><td></td><td></td><td></td><td></td><td valign="top"><a class="el" href="structsub4.html">sub4</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_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 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_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 -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/classq-members.html b/docs/3.1/classq-members.html
index 5b864d0c..b77e5cf7 100644
--- a/docs/3.1/classq-members.html
+++ b/docs/3.1/classq-members.html
@@ -126,7 +126,7 @@ $(document).ready(function(){initNavTree('classq.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/classq.html b/docs/3.1/classq.html
index a1c99c95..66811512 100644
--- a/docs/3.1/classq.html
+++ b/docs/3.1/classq.html
@@ -150,7 +150,7 @@ class q&lt; T, F, I &gt;</h3>
<p>Template class for represneting fractional ints. </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00743">743</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00753">753</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="lib8tion_8h_source.html">lib8tion.h</a></li>
</ul>
@@ -160,7 +160,7 @@ class q&lt; T, F, I &gt;</h3>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="classq.html">q</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/color_8h.html b/docs/3.1/color_8h.html
index 9971fd27..48e7b1af 100644
--- a/docs/3.1/color_8h.html
+++ b/docs/3.1/color_8h.html
@@ -168,7 +168,7 @@ Enumerations</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="color_8h.html">color.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/color_8h_source.html b/docs/3.1/color_8h_source.html
index 872304ef..a59667d1 100644
--- a/docs/3.1/color_8h_source.html
+++ b/docs/3.1/color_8h_source.html
@@ -112,71 +112,74 @@ $(document).ready(function(){initNavTree('color_8h_source.html','');});
<a href="color_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_COLOR_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_COLOR_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;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
-<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8"> 11</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="comment">// Color correction starting points</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
-<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8ac52fe8e181ff3c39128664fba835eae3"> 16</a></span>&#160; <a class="code" href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8ac52fe8e181ff3c39128664fba835eae3">TypicalSMD5050</a>=0xFFB0F0 <span class="comment">/* 255, 176, 240 */</span>,</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; TypicalLEDStrip=0xFFB0F0 <span class="comment">/* 255, 176, 240 */</span>,</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
-<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af617057397c2a4f89b4bf2783cdac24b"> 23</a></span>&#160; <a class="code" href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af617057397c2a4f89b4bf2783cdac24b">Typical8mmPixel</a>=0xFFE08C <span class="comment">/* 255, 224, 140 */</span>,</div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; TypicalPixelString=0xFFE08C <span class="comment">/* 255, 224, 140 */</span>,</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
-<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af964ffff5f2977a60a83aa3f9f8b4368"> 28</a></span>&#160; <a class="code" href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af964ffff5f2977a60a83aa3f9f8b4368">UncorrectedColor</a>=0xFFFFFF</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;} <a class="code" href="group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8">LEDColorCorrection</a>;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8"> 13</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="comment">// Color correction starting points</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8ac52fe8e181ff3c39128664fba835eae3"> 18</a></span>&#160; <a class="code" href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8ac52fe8e181ff3c39128664fba835eae3">TypicalSMD5050</a>=0xFFB0F0 <span class="comment">/* 255, 176, 240 */</span>,</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; TypicalLEDStrip=0xFFB0F0 <span class="comment">/* 255, 176, 240 */</span>,</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af617057397c2a4f89b4bf2783cdac24b"> 25</a></span>&#160; <a class="code" href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af617057397c2a4f89b4bf2783cdac24b">Typical8mmPixel</a>=0xFFE08C <span class="comment">/* 255, 224, 140 */</span>,</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; TypicalPixelString=0xFFE08C <span class="comment">/* 255, 224, 140 */</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"><a class="line" href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af964ffff5f2977a60a83aa3f9f8b4368"> 30</a></span>&#160; <a class="code" href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af964ffff5f2977a60a83aa3f9f8b4368">UncorrectedColor</a>=0xFFFFFF</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9"> 33</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; Candle=0xFF9329 <span class="comment">/* 1900 K, 255, 147, 41 */</span>,</div>
-<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a8f4ad60002c8856dc1f153e2eaa2de91"> 41</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a8f4ad60002c8856dc1f153e2eaa2de91">Tungsten40W</a>=0xFFC58F <span class="comment">/* 2600 K, 255, 197, 143 */</span>,</div>
-<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a631a1e96b10db9220ab27d70a320ac48"> 43</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a631a1e96b10db9220ab27d70a320ac48">Tungsten100W</a>=0xFFD6AA <span class="comment">/* 2850 K, 255, 214, 170 */</span>,</div>
-<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae5ec76aa869b51e645e9f226dfee4b79"> 45</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae5ec76aa869b51e645e9f226dfee4b79">Halogen</a>=0xFFF1E0 <span class="comment">/* 3200 K, 255, 241, 224 */</span>,</div>
-<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9aa9dab8ea30eb2a41c48956480b7014d1"> 47</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9aa9dab8ea30eb2a41c48956480b7014d1">CarbonArc</a>=0xFFFAF4 <span class="comment">/* 5200 K, 255, 250, 244 */</span>,</div>
-<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76"> 49</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76">HighNoonSun</a>=0xFFFFFB <span class="comment">/* 5400 K, 255, 255, 251 */</span>,</div>
-<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a890e0555ad95071fa4391a5775a38621"> 51</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a890e0555ad95071fa4391a5775a38621">DirectSunlight</a>=0xFFFFFF <span class="comment">/* 6000 K, 255, 255, 255 */</span>,</div>
-<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ad0aebf757f0aa8fc45ba282bd25006f7"> 53</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ad0aebf757f0aa8fc45ba282bd25006f7">OvercastSky</a>=0xC9E2FF <span class="comment">/* 7000 K, 201, 226, 255 */</span>,</div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9acb80944aa5bed3031b19f1e1101f6a9a"> 55</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9acb80944aa5bed3031b19f1e1101f6a9a">ClearBlueSky</a>=0x409CFF <span class="comment">/* 20000 K, 64, 156, 255 */</span>,</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; WarmFluorescent=0xFFF4E5 <span class="comment">/* 0 K, 255, 244, 229 */</span>,</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; StandardFluorescent=0xF4FFFA <span class="comment">/* 0 K, 244, 255, 250 */</span>,</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; CoolWhiteFluorescent=0xD4EBFF <span class="comment">/* 0 K, 212, 235, 255 */</span>,</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; FullSpectrumFluorescent=0xFFF4F2 <span class="comment">/* 0 K, 255, 244, 242 */</span>,</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GrowLightFluorescent=0xFFEFF7 <span class="comment">/* 0 K, 255, 239, 247 */</span>,</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; BlackLightFluorescent=0xA700FF <span class="comment">/* 0 K, 167, 0, 255 */</span>,</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; MercuryVapor=0xD8F7FF <span class="comment">/* 0 K, 216, 247, 255 */</span>,</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; SodiumVapor=0xFFD1B2 <span class="comment">/* 0 K, 255, 209, 178 */</span>,</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; MetalHalide=0xF2FCFF <span class="comment">/* 0 K, 242, 252, 255 */</span>,</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; HighPressureSodium=0xFFB74C <span class="comment">/* 0 K, 255, 183, 76 */</span>,</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae3d35275ab8c374612bcfbcce732b39f"> 76</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae3d35275ab8c374612bcfbcce732b39f">UncorrectedTemperature</a>=0xFFFFFF</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;} <a class="code" href="group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9">ColorTemperature</a>;</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;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;} <a class="code" href="group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8">LEDColorCorrection</a>;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9"> 35</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; Candle=0xFF9329 <span class="comment">/* 1900 K, 255, 147, 41 */</span>,</div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a8f4ad60002c8856dc1f153e2eaa2de91"> 43</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a8f4ad60002c8856dc1f153e2eaa2de91">Tungsten40W</a>=0xFFC58F <span class="comment">/* 2600 K, 255, 197, 143 */</span>,</div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a631a1e96b10db9220ab27d70a320ac48"> 45</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a631a1e96b10db9220ab27d70a320ac48">Tungsten100W</a>=0xFFD6AA <span class="comment">/* 2850 K, 255, 214, 170 */</span>,</div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae5ec76aa869b51e645e9f226dfee4b79"> 47</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae5ec76aa869b51e645e9f226dfee4b79">Halogen</a>=0xFFF1E0 <span class="comment">/* 3200 K, 255, 241, 224 */</span>,</div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9aa9dab8ea30eb2a41c48956480b7014d1"> 49</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9aa9dab8ea30eb2a41c48956480b7014d1">CarbonArc</a>=0xFFFAF4 <span class="comment">/* 5200 K, 255, 250, 244 */</span>,</div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76"> 51</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76">HighNoonSun</a>=0xFFFFFB <span class="comment">/* 5400 K, 255, 255, 251 */</span>,</div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a890e0555ad95071fa4391a5775a38621"> 53</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a890e0555ad95071fa4391a5775a38621">DirectSunlight</a>=0xFFFFFF <span class="comment">/* 6000 K, 255, 255, 255 */</span>,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ad0aebf757f0aa8fc45ba282bd25006f7"> 55</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ad0aebf757f0aa8fc45ba282bd25006f7">OvercastSky</a>=0xC9E2FF <span class="comment">/* 7000 K, 201, 226, 255 */</span>,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9acb80944aa5bed3031b19f1e1101f6a9a"> 57</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9acb80944aa5bed3031b19f1e1101f6a9a">ClearBlueSky</a>=0x409CFF <span class="comment">/* 20000 K, 64, 156, 255 */</span>,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; WarmFluorescent=0xFFF4E5 <span class="comment">/* 0 K, 255, 244, 229 */</span>,</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; StandardFluorescent=0xF4FFFA <span class="comment">/* 0 K, 244, 255, 250 */</span>,</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; CoolWhiteFluorescent=0xD4EBFF <span class="comment">/* 0 K, 212, 235, 255 */</span>,</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; FullSpectrumFluorescent=0xFFF4F2 <span class="comment">/* 0 K, 255, 244, 242 */</span>,</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GrowLightFluorescent=0xFFEFF7 <span class="comment">/* 0 K, 255, 239, 247 */</span>,</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; BlackLightFluorescent=0xA700FF <span class="comment">/* 0 K, 167, 0, 255 */</span>,</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; MercuryVapor=0xD8F7FF <span class="comment">/* 0 K, 216, 247, 255 */</span>,</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; SodiumVapor=0xFFD1B2 <span class="comment">/* 0 K, 255, 209, 178 */</span>,</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; MetalHalide=0xF2FCFF <span class="comment">/* 0 K, 242, 252, 255 */</span>,</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; HighPressureSodium=0xFFB74C <span class="comment">/* 0 K, 255, 183, 76 */</span>,</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae3d35275ab8c374612bcfbcce732b39f"> 78</a></span>&#160; <a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae3d35275ab8c374612bcfbcce732b39f">UncorrectedTemperature</a>=0xFFFFFF</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;} <a class="code" href="group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9">ColorTemperature</a>;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#endif</span></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> <a href="color_8h_source.html#l00028">color.h:28</a></div></div>
-<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76">HighNoonSun</a></div><div class="ttdoc">5400 Kelvin </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00049">color.h:49</a></div></div>
-<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9ae5ec76aa869b51e645e9f226dfee4b79"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae5ec76aa869b51e645e9f226dfee4b79">Halogen</a></div><div class="ttdoc">3200 Kelvin </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00045">color.h:45</a></div></div>
-<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9a8f4ad60002c8856dc1f153e2eaa2de91"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a8f4ad60002c8856dc1f153e2eaa2de91">Tungsten40W</a></div><div class="ttdoc">2600 Kelvin </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00041">color.h:41</a></div></div>
-<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9a631a1e96b10db9220ab27d70a320ac48"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a631a1e96b10db9220ab27d70a320ac48">Tungsten100W</a></div><div class="ttdoc">2850 Kelvin </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00043">color.h:43</a></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> <a href="color_8h_source.html#l00076">color.h:76</a></div></div>
-<div class="ttc" id="group___color_enums_html_ggadf6bcba67c9573665af20788c4431ae8ac52fe8e181ff3c39128664fba835eae3"><div class="ttname"><a href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8ac52fe8e181ff3c39128664fba835eae3">TypicalSMD5050</a></div><div class="ttdoc">typical values for SMD5050 LEDs </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00016">color.h:16</a></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> <a href="color_8h_source.html#l00011">color.h:11</a></div></div>
-<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9aa9dab8ea30eb2a41c48956480b7014d1"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9aa9dab8ea30eb2a41c48956480b7014d1">CarbonArc</a></div><div class="ttdoc">5200 Kelvin </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00047">color.h:47</a></div></div>
-<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9a890e0555ad95071fa4391a5775a38621"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a890e0555ad95071fa4391a5775a38621">DirectSunlight</a></div><div class="ttdoc">6000 Kelvin </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00051">color.h:51</a></div></div>
-<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9acb80944aa5bed3031b19f1e1101f6a9a"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9acb80944aa5bed3031b19f1e1101f6a9a">ClearBlueSky</a></div><div class="ttdoc">20000 Kelvin </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00055">color.h:55</a></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> <a href="color_8h_source.html#l00033">color.h:33</a></div></div>
-<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9ad0aebf757f0aa8fc45ba282bd25006f7"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ad0aebf757f0aa8fc45ba282bd25006f7">OvercastSky</a></div><div class="ttdoc">7000 Kelvin </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00053">color.h:53</a></div></div>
-<div class="ttc" id="group___color_enums_html_ggadf6bcba67c9573665af20788c4431ae8af617057397c2a4f89b4bf2783cdac24b"><div class="ttname"><a href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af617057397c2a4f89b4bf2783cdac24b">Typical8mmPixel</a></div><div class="ttdoc">typical values for 8mm "pixels on a string" also for many through-hole &#39;T&#39; package LEDs ...</div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00023">color.h:23</a></div></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#endif</span></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> <a href="color_8h_source.html#l00030">color.h:30</a></div></div>
+<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76">HighNoonSun</a></div><div class="ttdoc">5400 Kelvin </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00051">color.h:51</a></div></div>
+<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9ae5ec76aa869b51e645e9f226dfee4b79"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae5ec76aa869b51e645e9f226dfee4b79">Halogen</a></div><div class="ttdoc">3200 Kelvin </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00047">color.h:47</a></div></div>
+<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9a8f4ad60002c8856dc1f153e2eaa2de91"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a8f4ad60002c8856dc1f153e2eaa2de91">Tungsten40W</a></div><div class="ttdoc">2600 Kelvin </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00043">color.h:43</a></div></div>
+<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9a631a1e96b10db9220ab27d70a320ac48"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a631a1e96b10db9220ab27d70a320ac48">Tungsten100W</a></div><div class="ttdoc">2850 Kelvin </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00045">color.h:45</a></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> <a href="color_8h_source.html#l00078">color.h:78</a></div></div>
+<div class="ttc" id="group___color_enums_html_ggadf6bcba67c9573665af20788c4431ae8ac52fe8e181ff3c39128664fba835eae3"><div class="ttname"><a href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8ac52fe8e181ff3c39128664fba835eae3">TypicalSMD5050</a></div><div class="ttdoc">typical values for SMD5050 LEDs </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00018">color.h:18</a></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> <a href="color_8h_source.html#l00013">color.h:13</a></div></div>
+<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9aa9dab8ea30eb2a41c48956480b7014d1"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9aa9dab8ea30eb2a41c48956480b7014d1">CarbonArc</a></div><div class="ttdoc">5200 Kelvin </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00049">color.h:49</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
+<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9a890e0555ad95071fa4391a5775a38621"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a890e0555ad95071fa4391a5775a38621">DirectSunlight</a></div><div class="ttdoc">6000 Kelvin </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00053">color.h:53</a></div></div>
+<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9acb80944aa5bed3031b19f1e1101f6a9a"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9acb80944aa5bed3031b19f1e1101f6a9a">ClearBlueSky</a></div><div class="ttdoc">20000 Kelvin </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00057">color.h:57</a></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> <a href="color_8h_source.html#l00035">color.h:35</a></div></div>
+<div class="ttc" id="group___color_enums_html_gga251e9e8dc2c7b981786b71706522b2a9ad0aebf757f0aa8fc45ba282bd25006f7"><div class="ttname"><a href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ad0aebf757f0aa8fc45ba282bd25006f7">OvercastSky</a></div><div class="ttdoc">7000 Kelvin </div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00055">color.h:55</a></div></div>
+<div class="ttc" id="group___color_enums_html_ggadf6bcba67c9573665af20788c4431ae8af617057397c2a4f89b4bf2783cdac24b"><div class="ttname"><a href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af617057397c2a4f89b4bf2783cdac24b">Typical8mmPixel</a></div><div class="ttdoc">typical values for 8mm "pixels on a string" also for many through-hole &#39;T&#39; package LEDs ...</div><div class="ttdef"><b>Definition:</b> <a href="color_8h_source.html#l00025">color.h:25</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="color_8h.html">color.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:35 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/colorpalettes_8cpp_source.html b/docs/3.1/colorpalettes_8cpp_source.html
index 4d294f9b..a8d6f004 100644
--- a/docs/3.1/colorpalettes_8cpp_source.html
+++ b/docs/3.1/colorpalettes_8cpp_source.html
@@ -281,7 +281,7 @@ $(document).ready(function(){initNavTree('colorpalettes_8cpp_source.html','');})
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>colorpalettes.cpp</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:35 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/colorpalettes_8h.html b/docs/3.1/colorpalettes_8h.html
index 197596c2..9d9d1b27 100644
--- a/docs/3.1/colorpalettes_8h.html
+++ b/docs/3.1/colorpalettes_8h.html
@@ -140,7 +140,7 @@ Variables</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="colorpalettes_8h.html">colorpalettes.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/colorpalettes_8h_source.html b/docs/3.1/colorpalettes_8h_source.html
index 24435f75..8290982f 100644
--- a/docs/3.1/colorpalettes_8h_source.html
+++ b/docs/3.1/colorpalettes_8h_source.html
@@ -112,42 +112,44 @@ $(document).ready(function(){initNavTree('colorpalettes_8h_source.html','');});
<a href="colorpalettes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_COLORPALETTES_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_COLORPALETTES_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">#include &quot;<a class="code" href="colorutils_8h.html">colorutils.h</a>&quot;</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</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="l00017"></a><span class="lineno"> 17</span>&#160;</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="keyword">extern</span> <span class="keyword">const</span> TProgmemRGBPalette16 CloudColors_p <a class="code" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a>;</div>
-<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b"> 23</a></span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> TProgmemRGBPalette16 LavaColors_p <a class="code" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a>;</div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> TProgmemRGBPalette16 OceanColors_p <a class="code" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a>;</div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> TProgmemRGBPalette16 ForestColors_p <a class="code" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a>;</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="keyword">extern</span> <span class="keyword">const</span> TProgmemRGBPalette16 RainbowColors_p <a class="code" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a>;</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">#define RainbowStripesColors_p RainbowStripeColors_p</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> TProgmemRGBPalette16 RainbowStripeColors_p <a class="code" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a>;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> TProgmemRGBPalette16 PartyColors_p <a class="code" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a>;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> TProgmemRGBPalette16 HeatColors_p <a class="code" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a>;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</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="l00006"></a><span class="lineno"> 6</span>&#160;</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;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> TProgmemRGBPalette16 CloudColors_p <a class="code" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a>;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b"> 24</a></span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> TProgmemRGBPalette16 LavaColors_p <a class="code" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a>;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> TProgmemRGBPalette16 OceanColors_p <a class="code" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> TProgmemRGBPalette16 ForestColors_p <a class="code" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> TProgmemRGBPalette16 RainbowColors_p <a class="code" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a>;</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">#define RainbowStripesColors_p RainbowStripeColors_p</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> TProgmemRGBPalette16 RainbowStripeColors_p <a class="code" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a>;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> TProgmemRGBPalette16 PartyColors_p <a class="code" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a>;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> TProgmemRGBPalette16 HeatColors_p <a class="code" href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a>;</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;DECLARE_GRADIENT_PALETTE( Rainbow_gp);</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;FASTLED_NAMESPACE_END</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;DECLARE_GRADIENT_PALETTE( Rainbow_gp);</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </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="group___colorpalletes_html_ga57a38373661043f74b292976e83c687b"><div class="ttname"><a href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a></div><div class="ttdeci">const TProgmemRGBPalette16 CloudColors_p FL_PROGMEM</div><div class="ttdoc">Cloudy color pallete. </div><div class="ttdef"><b>Definition:</b> <a href="colorpalettes_8h_source.html#l00023">colorpalettes.h:23</a></div></div>
+<div class="ttc" id="group___colorpalletes_html_ga57a38373661043f74b292976e83c687b"><div class="ttname"><a href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a></div><div class="ttdeci">const TProgmemRGBPalette16 CloudColors_p FL_PROGMEM</div><div class="ttdoc">Cloudy color pallete. </div><div class="ttdef"><b>Definition:</b> <a href="colorpalettes_8h_source.html#l00024">colorpalettes.h:24</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="colorpalettes_8h.html">colorpalettes.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:35 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/colorutils_8cpp_source.html b/docs/3.1/colorutils_8cpp_source.html
index dc081b89..9dbdaa13 100644
--- a/docs/3.1/colorutils_8cpp_source.html
+++ b/docs/3.1/colorutils_8cpp_source.html
@@ -586,362 +586,677 @@ $(document).ready(function(){initNavTree('colorutils_8cpp_source.html','');});
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;}</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;</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;<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, uint8_t index, uint8_t brightness, TBlendType blendType)</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; uint8_t hi4 = index &gt;&gt; 4;</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; uint8_t lo4 = index &amp; 0x0F;</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">// CRGB rgb1 = pal[ hi4];</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>* entry = &amp;(pal[0]) + hi4;</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; uint8_t red1 = entry-&gt;red;</div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; uint8_t green1 = entry-&gt;green;</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; uint8_t blue1 = entry-&gt;blue;</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; uint8_t blend = lo4 &amp;&amp; (blendType != NOBLEND);</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="keywordflow">if</span>( blend ) {</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>( hi4 == 15 ) {</div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; entry = &amp;(pal[0]);</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; entry++;</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;</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; uint8_t f2 = lo4 &lt;&lt; 4;</div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; uint8_t f1 = 255 - f2;</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="comment">// rgb1.nscale8(f1);</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; red1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( red1, f1);</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; green1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( green1, f1);</div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; blue1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( blue1, f1);</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">// cleanup_R1();</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="comment">// CRGB rgb2 = pal[ hi4];</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="comment">// rgb2.nscale8(f2);</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; uint8_t red2 = entry-&gt;red;</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; uint8_t green2 = entry-&gt;green;</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; uint8_t blue2 = entry-&gt;blue;</div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; red2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( red2, f2);</div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; green2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( green2, f2);</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; blue2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( blue2, f2);</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___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="comment">// These sums can&#39;t overflow, so no qadd8 needed.</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; red1 += red2;</div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; green1 += green2;</div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; blue1 += blue2;</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; }</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="keywordflow">if</span>( brightness != 255) {</div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( red1, green1, blue1, brightness);</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; }</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( red1, green1, blue1);</div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;}</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="comment">// lsrX4: helper function to divide a number by 16, aka four LSR&#39;s.</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<span class="comment">// On avr-gcc, &quot;u8 &gt;&gt; 4&quot; generates a loop, which is big, and slow.</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;<span class="comment">// merely forcing it to be four /=2&#39;s causes avr-gcc to emit</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="comment">// a SWAP instruction followed by an AND 0x0F, which is faster, and smaller.</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="keyword">inline</span> uint8_t lsrX4( uint8_t dividend) <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;<span class="keyword">inline</span> uint8_t lsrX4( uint8_t dividend)</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="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; dividend /= 2;</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; dividend /= 2;</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; dividend /= 2;</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; dividend /= 2;</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; dividend &gt;&gt;= 4;</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">return</span> dividend;</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;</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="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, uint8_t index, uint8_t brightness, TBlendType blendType)</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">// hi4 = index &gt;&gt; 4;</span></div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; uint8_t hi4 = lsrX4(index);</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; uint8_t lo4 = index &amp; 0x0F;</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; </div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="comment">// const CRGB* entry = &amp;(pal[0]) + hi4;</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="comment">// since hi4 is always 0..15, hi4 * sizeof(CRGB) can be a single-byte value,</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="comment">// instead of the two byte &#39;int&#39; that avr-gcc defaults to.</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="comment">// So, we multiply hi4 X sizeof(CRGB), giving hi4XsizeofCRGB;</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; uint8_t hi4XsizeofCRGB = hi4 * <span class="keyword">sizeof</span>(<a class="code" href="struct_c_r_g_b.html">CRGB</a>);</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="comment">// We then add that to a base array pointer.</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>* entry = (<a class="code" href="struct_c_r_g_b.html">CRGB</a>*)( (uint8_t*)(&amp;(pal[0])) + hi4XsizeofCRGB);</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; uint8_t blend = lo4 &amp;&amp; (blendType != NOBLEND);</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; uint8_t red1 = entry-&gt;red;</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; uint8_t green1 = entry-&gt;green;</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; uint8_t blue1 = entry-&gt;blue;</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; </div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">if</span>( blend ) {</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="keywordflow">if</span>( hi4 == 15 ) {</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; entry = &amp;(pal[0]);</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; entry++;</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; uint8_t f2 = lo4 &lt;&lt; 4;</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; uint8_t f1 = 255 - f2;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; </div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="comment">// rgb1.nscale8(f1);</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; uint8_t red2 = entry-&gt;red;</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; red1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( red1, f1);</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; red2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( red2, f2);</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; red1 += red2;</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;<a class="code" href="struct_c_r_g_b.html">CRGB</a> ColorFromPalette( <span class="keyword">const</span> TProgmemRGBPalette16&amp; pal, uint8_t index, uint8_t brightness, TBlendType blendType)</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; uint8_t hi4 = index &gt;&gt; 4;</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; uint8_t lo4 = index &amp; 0x0F;</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; uint8_t green2 = entry-&gt;green;</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; green1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( green1, f1);</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; green2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( green2, f2);</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; green1 += green2;</div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="comment">// CRGB rgb1 = pal[ hi4];</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> entry = FL_PGM_READ_DWORD_NEAR( &amp;(pal[0]) + hi4 );</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; uint8_t red1 = entry.red;</div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; uint8_t green1 = entry.green;</div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; uint8_t blue1 = entry.blue;</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; uint8_t blend = lo4 &amp;&amp; (blendType != NOBLEND);</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="keywordflow">if</span>( blend ) {</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="keywordflow">if</span>( hi4 == 15 ) {</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; entry = FL_PGM_READ_DWORD_NEAR( &amp;(pal[0]) );</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; entry = FL_PGM_READ_DWORD_NEAR( &amp;(pal[1]) + hi4 );</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;</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; uint8_t f2 = lo4 &lt;&lt; 4;</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; uint8_t f1 = 255 - f2;</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="comment">// rgb1.nscale8(f1);</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; red1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( red1, f1);</div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; green1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( green1, f1);</div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; blue1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( blue1, f1);</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">// cleanup_R1();</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; uint8_t blue2 = entry-&gt;blue;</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; blue1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( blue1, f1);</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; blue2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( blue2, f2);</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; blue1 += blue2;</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; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</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="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">if</span>( brightness != 255) {</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">if</span>( brightness ) {</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; brightness++; <span class="comment">// adjust for rounding</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="comment">// Now, since brightness is nonzero, we don&#39;t need the full scale8_video logic;</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="comment">// we can just to scale8 and then add one to all nonzero inputs.</span></div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">if</span>( red1 ) { red1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( red1, brightness); red1++; }</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">if</span>( green1 ) { green1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( green1, brightness); green1++; }</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">if</span>( blue1 ) { blue1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( blue1, brightness); blue1++; }</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; red1 = 0;</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; green1 = 0;</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; blue1 = 0;</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; }</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; }</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; </div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( red1, green1, blue1);</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="comment">// CRGB rgb2 = pal[ hi4];</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="comment">// rgb2.nscale8(f2);</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; uint8_t red2 = entry.red;</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; uint8_t green2 = entry.green;</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; uint8_t blue2 = entry.blue;</div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; red2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( red2, f2);</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; green2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( green2, f2);</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; blue2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( blue2, f2);</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> ColorFromPalette( <span class="keyword">const</span> TProgmemRGBPalette16&amp; pal, uint8_t index, uint8_t brightness, TBlendType blendType)</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="comment">// hi4 = index &gt;&gt; 4;</span></div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; uint8_t hi4 = lsrX4(index);</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; uint8_t lo4 = index &amp; 0x0F;</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; <a class="code" href="struct_c_r_g_b.html">CRGB</a> entry = FL_PGM_READ_DWORD_NEAR( &amp;(pal[0]) + hi4 );</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; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</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="comment">// These sums can&#39;t overflow, so no qadd8 needed.</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; red1 += red2;</div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; green1 += green2;</div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; blue1 += blue2;</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; }</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">if</span>( brightness != 255) {</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( red1, green1, blue1, brightness);</div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; }</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> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( red1, green1, blue1);</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="l00576"></a><span class="lineno"> 576</span>&#160; uint8_t red1 = entry.red;</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; uint8_t green1 = entry.green;</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; uint8_t blue1 = entry.blue;</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; uint8_t blend = lo4 &amp;&amp; (blendType != NOBLEND);</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; <span class="keywordflow">if</span>( blend ) {</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="keywordflow">if</span>( hi4 == 15 ) {</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; entry = FL_PGM_READ_DWORD_NEAR( &amp;(pal[0]) );</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; entry = FL_PGM_READ_DWORD_NEAR( &amp;(pal[1]) + hi4 );</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;</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; uint8_t f2 = lo4 &lt;&lt; 4;</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; uint8_t f1 = 255 - f2;</div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;<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, uint8_t index, uint8_t brightness, TBlendType)</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; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>* entry = &amp;(pal[0]) + index;</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; uint8_t red2 = entry.red;</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; red1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( red1, f1);</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; red2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( red2, f2);</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; red1 += red2;</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; uint8_t red = entry-&gt;red;</div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; uint8_t green = entry-&gt;green;</div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; uint8_t blue = entry-&gt;blue;</div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;</div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">if</span>( brightness != 255) {</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( red, green, blue, brightness);</div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; }</div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;</div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( red, green, blue);</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;</div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;</div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> ColorFromPalette( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; pal, uint8_t index, uint8_t brightness, TBlendType blendType)</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;{</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; uint8_t hi4 = index &gt;&gt; 4;</div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; uint8_t lo4 = index &amp; 0x0F;</div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="comment">// CRGB rgb1 = pal[ hi4];</span></div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* entry = &amp;(pal[0]) + hi4;</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; uint8_t hue1 = entry-&gt;hue;</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; uint8_t sat1 = entry-&gt;sat;</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; uint8_t val1 = entry-&gt;val;</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; uint8_t blend = lo4 &amp;&amp; (blendType != NOBLEND);</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">if</span>( blend ) {</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">if</span>( hi4 == 15 ) {</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; entry = &amp;(pal[0]);</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; entry++;</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"> 632</span>&#160; uint8_t f2 = lo4 &lt;&lt; 4;</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; uint8_t f1 = 255 - f2;</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; uint8_t hue2 = entry-&gt;hue;</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; uint8_t sat2 = entry-&gt;sat;</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; uint8_t val2 = entry-&gt;val;</div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="comment">// Now some special casing for blending to or from</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="comment">// either black or white. Black and white don&#39;t have</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="comment">// proper &#39;hue&#39; of their own, so when ramping from</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="comment">// something else to/from black/white, we set the &#39;hue&#39;</span></div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="comment">// of the black/white color to be the same as the hue</span></div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="comment">// of the other color, so that you get the expected</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="comment">// brightness or saturation ramp, with hue staying</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="comment">// constant:</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;</div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="comment">// If we are starting from white (sat=0)</span></div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="comment">// or black (val=0), adopt the target hue.</span></div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordflow">if</span>( sat1 == 0 || val1 == 0) {</div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; hue1 = hue2;</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;</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="comment">// If we are ending at white (sat=0)</span></div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="comment">// or black (val=0), adopt the starting hue.</span></div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keywordflow">if</span>( sat2 == 0 || val2 == 0) {</div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; hue2 = hue1;</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;</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; sat1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( sat1, f1);</div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; val1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( val1, f1);</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;</div>
-<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; sat2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( sat2, f2);</div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; val2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( val2, f2);</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="comment">// cleanup_R1();</span></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; <span class="comment">// These sums can&#39;t overflow, so no qadd8 needed.</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; sat1 += sat2;</div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; val1 += val2;</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; uint8_t deltaHue = (uint8_t)(hue2 - hue1);</div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="keywordflow">if</span>( deltaHue &amp; 0x80 ) {</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="comment">// go backwards</span></div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; hue1 -= <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( 255 - deltaHue, f2);</div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="comment">// go forwards</span></div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; hue1 += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( deltaHue, f2);</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;</div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</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="keywordflow">if</span>( brightness != 255) {</div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; val1 = <a class="code" href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1">scale8_video</a>( val1, brightness);</div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; }</div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>( hue1, sat1, val1);</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;</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> ColorFromPalette( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; pal, uint8_t index, uint8_t brightness, TBlendType)</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; <a class="code" href="struct_c_h_s_v.html">CHSV</a> hsv = *( &amp;(pal[0]) + index );</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="keywordflow">if</span>( brightness != 255) {</div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; hsv.value = <a class="code" href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1">scale8_video</a>( hsv.value, brightness);</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;</div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">return</span> hsv;</div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;}</div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;</div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;</div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;<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="l00706"></a><span class="lineno"> 706</span>&#160;{</div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; destpal256[(uint8_t)(i)] = ColorFromPalette( srcpal16, i);</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;</div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</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="l00713"></a><span class="lineno"> 713</span>&#160;{</div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; destpal256[(uint8_t)(i)] = ColorFromPalette( srcpal16, i);</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;}</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="preprocessor">#if 0</span></div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;<span class="comment">// replaced by PartyColors_p</span></div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;<span class="keywordtype">void</span> SetupPartyColors(<a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; pal)</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; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( pal, 0, <a class="code" href="struct_c_h_s_v.html">CHSV</a>( HUE_PURPLE,255,255), 7, <a class="code" href="struct_c_h_s_v.html">CHSV</a>(HUE_YELLOW - 18,255,255), FORWARD_HUES);</div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( pal, 8, <a class="code" href="struct_c_h_s_v.html">CHSV</a>( HUE_ORANGE,255,255), 15, <a class="code" href="struct_c_h_s_v.html">CHSV</a>(HUE_BLUE + 18,255,255), BACKWARD_HUES);</div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;}</div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;<span class="preprocessor">#endif</span></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="keywordtype">void</span> nblendPaletteTowardPalette( <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; current, <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; target, uint8_t maxChanges)</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; uint8_t* p1;</div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; uint8_t* p2;</div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; uint8_t changes = 0;</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; p1 = (uint8_t*)current.entries;</div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; p2 = (uint8_t*)target.entries;</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="keyword">const</span> uint8_t totalChannels = <span class="keyword">sizeof</span>(<a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>);</div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; totalChannels; i++) {</div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="comment">// if the values are equal, no changes are needed</span></div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keywordflow">if</span>( p1[i] == p2[i] ) { <span class="keywordflow">continue</span>; }</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; <span class="comment">// if the current value is less than the target, increase it by one</span></div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">if</span>( p1[i] &lt; p2[i] ) { p1[i]++; changes++; }</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; <span class="comment">// if the current value is greater than the target,</span></div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="comment">// increase it by one (or two if it&#39;s still greater).</span></div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">if</span>( p1[i] &gt; p2[i] ) {</div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; p1[i]--; changes++;</div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">if</span>( p1[i] &gt; p2[i] ) { p1[i]--; }</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; <span class="comment">// if we&#39;ve hit the maximum number of changes, exit</span></div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="keywordflow">if</span>( changes &gt;= maxChanges) { <span class="keywordflow">break</span>; }</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;</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;uint8_t applyGamma_video( uint8_t brightness, <span class="keywordtype">float</span> gamma)</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; <span class="keywordtype">float</span> orig;</div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordtype">float</span> adj;</div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; orig = (float)(brightness) / (255.0);</div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; adj = pow( orig, gamma) * (255.0);</div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; uint8_t result = (uint8_t)(adj);</div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="keywordflow">if</span>( (brightness &gt; 0) &amp;&amp; (result == 0)) {</div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; result = 1; <span class="comment">// never gamma-adjust a positive number down to zero</span></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; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;}</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;<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="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="struct_c_r_g_b.html">CRGB</a> adj;</div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; adj.r = applyGamma_video( orig.r, gamma);</div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; adj.g = applyGamma_video( orig.g, gamma);</div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; adj.b = applyGamma_video( orig.b, gamma);</div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordflow">return</span> adj;</div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;}</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; uint8_t green2 = entry.green;</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; green1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( green1, f1);</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; green2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( green2, f2);</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; green1 += green2;</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; uint8_t blue2 = entry.blue;</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; blue1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( blue1, f1);</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; blue2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( blue2, f2);</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; blue1 += blue2;</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; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; }</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">if</span>( brightness != 255) {</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">if</span>( brightness ) {</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; brightness++; <span class="comment">// adjust for rounding</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="comment">// Now, since brightness is nonzero, we don&#39;t need the full scale8_video logic;</span></div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="comment">// we can just to scale8 and then add one to all nonzero inputs.</span></div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keywordflow">if</span>( red1 ) { red1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( red1, brightness); red1++; }</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keywordflow">if</span>( green1 ) { green1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( green1, brightness); green1++; }</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keywordflow">if</span>( blue1 ) { blue1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( blue1, brightness); blue1++; }</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; red1 = 0;</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; green1 = 0;</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; blue1 = 0;</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; }</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; }</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( red1, green1, blue1);</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;}</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;</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</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_palette32.html">CRGBPalette32</a>&amp; pal, uint8_t index, uint8_t brightness, TBlendType blendType)</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;{</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; uint8_t hi5 = index;</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; hi5 &gt;&gt;= 3;</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; uint8_t lo3 = index &amp; 0x07;</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; <span class="comment">// const CRGB* entry = &amp;(pal[0]) + hi5;</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="comment">// since hi5 is always 0..31, hi4 * sizeof(CRGB) can be a single-byte value,</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="comment">// instead of the two byte &#39;int&#39; that avr-gcc defaults to.</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="comment">// So, we multiply hi5 X sizeof(CRGB), giving hi5XsizeofCRGB;</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; uint8_t hi5XsizeofCRGB = hi5 * <span class="keyword">sizeof</span>(<a class="code" href="struct_c_r_g_b.html">CRGB</a>);</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="comment">// We then add that to a base array pointer.</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>* entry = (<a class="code" href="struct_c_r_g_b.html">CRGB</a>*)( (uint8_t*)(&amp;(pal[0])) + hi5XsizeofCRGB);</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; uint8_t red1 = entry-&gt;red;</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; uint8_t green1 = entry-&gt;green;</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; uint8_t blue1 = entry-&gt;blue;</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; </div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; uint8_t blend = lo3 &amp;&amp; (blendType != NOBLEND);</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; </div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keywordflow">if</span>( blend ) {</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">if</span>( hi5 == 31 ) {</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; entry = &amp;(pal[0]);</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; entry++;</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; }</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; uint8_t f2 = lo3 &lt;&lt; 5;</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; uint8_t f1 = 255 - f2;</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; uint8_t red2 = entry-&gt;red;</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; red1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( red1, f1);</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; red2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( red2, f2);</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; red1 += red2;</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; uint8_t green2 = entry-&gt;green;</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; green1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( green1, f1);</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; green2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( green2, f2);</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; green1 += green2;</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; </div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; uint8_t blue2 = entry-&gt;blue;</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; blue1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( blue1, f1);</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; blue2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( blue2, f2);</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; blue1 += blue2;</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</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; }</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="keywordflow">if</span>( brightness != 255) {</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">if</span>( brightness ) {</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; brightness++; <span class="comment">// adjust for rounding</span></div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="comment">// Now, since brightness is nonzero, we don&#39;t need the full scale8_video logic;</span></div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="comment">// we can just to scale8 and then add one to all nonzero inputs.</span></div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keywordflow">if</span>( red1 ) { red1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( red1, brightness); red1++; }</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordflow">if</span>( green1 ) { green1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( green1, brightness); green1++; }</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordflow">if</span>( blue1 ) { blue1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( blue1, brightness); blue1++; }</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; red1 = 0;</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; green1 = 0;</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; blue1 = 0;</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; </div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( red1, green1, blue1);</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;}</div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;</div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;</div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> ColorFromPalette( <span class="keyword">const</span> TProgmemRGBPalette32&amp; pal, uint8_t index, uint8_t brightness, TBlendType blendType)</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; uint8_t hi5 = index;</div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; hi5 &gt;&gt;= 3;</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; uint8_t lo3 = index &amp; 0x07;</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; <a class="code" href="struct_c_r_g_b.html">CRGB</a> entry = FL_PGM_READ_DWORD_NEAR( &amp;(pal[0]) + hi5);</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; uint8_t red1 = entry.red;</div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; uint8_t green1 = entry.green;</div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; uint8_t blue1 = entry.blue;</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; uint8_t blend = lo3 &amp;&amp; (blendType != NOBLEND);</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; <span class="keywordflow">if</span>( blend ) {</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="keywordflow">if</span>( hi5 == 31 ) {</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; entry = FL_PGM_READ_DWORD_NEAR( &amp;(pal[0]) );</div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; entry = FL_PGM_READ_DWORD_NEAR( &amp;(pal[1]) + hi5 );</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; </div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; uint8_t f2 = lo3 &lt;&lt; 5;</div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; uint8_t f1 = 255 - f2;</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; uint8_t red2 = entry.red;</div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; red1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( red1, f1);</div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; red2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( red2, f2);</div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; red1 += red2;</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; uint8_t green2 = entry.green;</div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; green1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( green1, f1);</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; green2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( green2, f2);</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; green1 += green2;</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; uint8_t blue2 = entry.blue;</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; blue1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( blue1, f1);</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; blue2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( blue2, f2);</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; blue1 += blue2;</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; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; }</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; <span class="keywordflow">if</span>( brightness != 255) {</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordflow">if</span>( brightness ) {</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; brightness++; <span class="comment">// adjust for rounding</span></div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="comment">// Now, since brightness is nonzero, we don&#39;t need the full scale8_video logic;</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="comment">// we can just to scale8 and then add one to all nonzero inputs.</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordflow">if</span>( red1 ) { red1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( red1, brightness); red1++; }</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">if</span>( green1 ) { green1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( green1, brightness); green1++; }</div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keywordflow">if</span>( blue1 ) { blue1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( blue1, brightness); blue1++; }</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; red1 = 0;</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; green1 = 0;</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; blue1 = 0;</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; }</div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; </div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( red1, green1, blue1);</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;</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;</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</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, uint8_t index, uint8_t brightness, TBlendType)</div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;{</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>* entry = &amp;(pal[0]) + index;</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;<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="l00782"></a><span class="lineno"> 782</span>&#160;{</div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> adj;</div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; adj.r = applyGamma_video( orig.r, gammaR);</div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; adj.g = applyGamma_video( orig.g, gammaG);</div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; adj.b = applyGamma_video( orig.b, gammaB);</div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="keywordflow">return</span> adj;</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="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="l00791"></a><span class="lineno"> 791</span>&#160;{</div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; rgb = applyGamma_video( rgb, gamma);</div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">return</span> rgb;</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; uint8_t red = entry-&gt;red;</div>
+<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; uint8_t green = entry-&gt;green;</div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; uint8_t blue = entry-&gt;blue;</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">if</span>( brightness != 255) {</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; brightness++; <span class="comment">// adjust for rounding</span></div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; red = <a class="code" href="group___scaling.html#gab341cef8d46232269bb70092fed9eb75">scale8_video_LEAVING_R1_DIRTY</a>( red, brightness);</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; green = <a class="code" href="group___scaling.html#gab341cef8d46232269bb70092fed9eb75">scale8_video_LEAVING_R1_DIRTY</a>( green, brightness);</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; blue = <a class="code" href="group___scaling.html#gab341cef8d46232269bb70092fed9eb75">scale8_video_LEAVING_R1_DIRTY</a>( blue, brightness);</div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</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; <span class="keywordflow">return</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( red, green, blue);</div>
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;}</div>
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;</div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;<a class="code" href="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="l00797"></a><span class="lineno"> 797</span>&#160;{</div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; rgb = applyGamma_video( rgb, gammaR, gammaG, gammaB);</div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">return</span> rgb;</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;</div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</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="l00803"></a><span class="lineno"> 803</span>&#160;{</div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; count; i++) {</div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; rgbarray[i] = applyGamma_video( rgbarray[i], gamma);</div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; }</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;<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="l00810"></a><span class="lineno"> 810</span>&#160;{</div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; count; i++) {</div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; rgbarray[i] = applyGamma_video( rgbarray[i], gammaR, gammaG, gammaB);</div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; }</div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;}</div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;</div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;</div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;FASTLED_NAMESPACE_END</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> <a href="pixeltypes_8h_source.html#l00088">pixeltypes.h:88</a></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> <a href="lib8tion_8h_source.html#l00343">lib8tion.h:343</a></div></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;<a class="code" href="struct_c_h_s_v.html">CHSV</a> ColorFromPalette( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; pal, uint8_t index, uint8_t brightness, TBlendType blendType)</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;{</div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="comment">// hi4 = index &gt;&gt; 4;</span></div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; uint8_t hi4 = lsrX4(index);</div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; uint8_t lo4 = index &amp; 0x0F;</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="comment">// CRGB rgb1 = pal[ hi4];</span></div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* entry = &amp;(pal[0]) + hi4;</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; uint8_t hue1 = entry-&gt;hue;</div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; uint8_t sat1 = entry-&gt;sat;</div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; uint8_t val1 = entry-&gt;val;</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; uint8_t blend = lo4 &amp;&amp; (blendType != NOBLEND);</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; <span class="keywordflow">if</span>( blend ) {</div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;</div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">if</span>( hi4 == 15 ) {</div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; entry = &amp;(pal[0]);</div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; entry++;</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; uint8_t f2 = lo4 &lt;&lt; 4;</div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; uint8_t f1 = 255 - f2;</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; uint8_t hue2 = entry-&gt;hue;</div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; uint8_t sat2 = entry-&gt;sat;</div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; uint8_t val2 = entry-&gt;val;</div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="comment">// Now some special casing for blending to or from</span></div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="comment">// either black or white. Black and white don&#39;t have</span></div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <span class="comment">// proper &#39;hue&#39; of their own, so when ramping from</span></div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="comment">// something else to/from black/white, we set the &#39;hue&#39;</span></div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="comment">// of the black/white color to be the same as the hue</span></div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="comment">// of the other color, so that you get the expected</span></div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="comment">// brightness or saturation ramp, with hue staying</span></div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="comment">// constant:</span></div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;</div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <span class="comment">// If we are starting from white (sat=0)</span></div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="comment">// or black (val=0), adopt the target hue.</span></div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordflow">if</span>( sat1 == 0 || val1 == 0) {</div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; hue1 = hue2;</div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; }</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; <span class="comment">// If we are ending at white (sat=0)</span></div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="comment">// or black (val=0), adopt the starting hue.</span></div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <span class="keywordflow">if</span>( sat2 == 0 || val2 == 0) {</div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; hue2 = hue1;</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;</div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; sat1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( sat1, f1);</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; val1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( val1, f1);</div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;</div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; sat2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( sat2, f2);</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; val2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( val2, f2);</div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;</div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="comment">// cleanup_R1();</span></div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;</div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <span class="comment">// These sums can&#39;t overflow, so no qadd8 needed.</span></div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; sat1 += sat2;</div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; val1 += val2;</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; uint8_t deltaHue = (uint8_t)(hue2 - hue1);</div>
+<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keywordflow">if</span>( deltaHue &amp; 0x80 ) {</div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="comment">// go backwards</span></div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; hue1 -= <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( 255 - deltaHue, f2);</div>
+<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="comment">// go forwards</span></div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; hue1 += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( deltaHue, f2);</div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; }</div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;</div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</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;</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="keywordflow">if</span>( brightness != 255) {</div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; val1 = <a class="code" href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1">scale8_video</a>( val1, brightness);</div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; }</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; <span class="keywordflow">return</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>( hue1, sat1, val1);</div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;}</div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;</div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;</div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> ColorFromPalette( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>&amp; pal, uint8_t index, uint8_t brightness, TBlendType blendType)</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; uint8_t hi5 = index;</div>
+<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; hi5 /= 2;</div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; hi5 &gt;&gt;= 3;</div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; uint8_t lo3 = index &amp; 0x07;</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; uint8_t hi5XsizeofCHSV = hi5 * <span class="keyword">sizeof</span>(<a class="code" href="struct_c_h_s_v.html">CHSV</a>);</div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* entry = (<a class="code" href="struct_c_h_s_v.html">CHSV</a>*)( (uint8_t*)(&amp;(pal[0])) + hi5XsizeofCHSV);</div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; </div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; uint8_t hue1 = entry-&gt;hue;</div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; uint8_t sat1 = entry-&gt;sat;</div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; uint8_t val1 = entry-&gt;val;</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; uint8_t blend = lo3 &amp;&amp; (blendType != NOBLEND);</div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; </div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="keywordflow">if</span>( blend ) {</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">if</span>( hi5 == 31 ) {</div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; entry = &amp;(pal[0]);</div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; entry++;</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; </div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; uint8_t f2 = lo3 &lt;&lt; 5;</div>
+<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; uint8_t f1 = 255 - f2;</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; uint8_t hue2 = entry-&gt;hue;</div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; uint8_t sat2 = entry-&gt;sat;</div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; uint8_t val2 = entry-&gt;val;</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; <span class="comment">// Now some special casing for blending to or from</span></div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <span class="comment">// either black or white. Black and white don&#39;t have</span></div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="comment">// proper &#39;hue&#39; of their own, so when ramping from</span></div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; <span class="comment">// something else to/from black/white, we set the &#39;hue&#39;</span></div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <span class="comment">// of the black/white color to be the same as the hue</span></div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="comment">// of the other color, so that you get the expected</span></div>
+<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <span class="comment">// brightness or saturation ramp, with hue staying</span></div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="comment">// constant:</span></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; <span class="comment">// If we are starting from white (sat=0)</span></div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <span class="comment">// or black (val=0), adopt the target hue.</span></div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; <span class="keywordflow">if</span>( sat1 == 0 || val1 == 0) {</div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; hue1 = hue2;</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; }</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; <span class="comment">// If we are ending at white (sat=0)</span></div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="comment">// or black (val=0), adopt the starting hue.</span></div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keywordflow">if</span>( sat2 == 0 || val2 == 0) {</div>
+<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; hue2 = hue1;</div>
+<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; }</div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; </div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; </div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; sat1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( sat1, f1);</div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; val1 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( val1, f1);</div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; </div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; sat2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( sat2, f2);</div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; val2 = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( val2, f2);</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; <span class="comment">// cleanup_R1();</span></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; <span class="comment">// These sums can&#39;t overflow, so no qadd8 needed.</span></div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; sat1 += sat2;</div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; val1 += val2;</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; uint8_t deltaHue = (uint8_t)(hue2 - hue1);</div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="keywordflow">if</span>( deltaHue &amp; 0x80 ) {</div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="comment">// go backwards</span></div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; hue1 -= <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( 255 - deltaHue, f2);</div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="comment">// go forwards</span></div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; hue1 += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( deltaHue, f2);</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; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</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; </div>
+<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <span class="keywordflow">if</span>( brightness != 255) {</div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; val1 = <a class="code" href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1">scale8_video</a>( val1, brightness);</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; </div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>( hue1, sat1, val1);</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;</div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> ColorFromPalette( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>&amp; pal, uint8_t index, uint8_t brightness, TBlendType)</div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;{</div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> hsv = *( &amp;(pal[0]) + index );</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; <span class="keywordflow">if</span>( brightness != 255) {</div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; hsv.value = <a class="code" href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1">scale8_video</a>( hsv.value, brightness);</div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; }</div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;</div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="keywordflow">return</span> hsv;</div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;}</div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;</div>
+<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;</div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</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="l00983"></a><span class="lineno"> 983</span>&#160;{</div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; destpal256[(uint8_t)(i)] = ColorFromPalette( srcpal16, i);</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;</div>
+<div class="line"><a name="l00989"></a><span class="lineno"> 989</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="l00990"></a><span class="lineno"> 990</span>&#160;{</div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; destpal256[(uint8_t)(i)] = ColorFromPalette( srcpal16, i);</div>
+<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; }</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;</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;<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_palette32.html">CRGBPalette32</a>&amp; destpal32)</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; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; uint8_t j = i * 2;</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; destpal32[j+0] = srcpal16[i];</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; destpal32[j+1] = srcpal16[i];</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; }</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;</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</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_palette32.html">CHSVPalette32</a>&amp; destpal32)</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; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; uint8_t j = i * 2;</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; destpal32[j+0] = srcpal16[i];</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; destpal32[j+1] = srcpal16[i];</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; }</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;}</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</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_palette32.html">CRGBPalette32</a>&amp; srcpal32, <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="l01016"></a><span class="lineno"> 1016</span>&#160;{</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; destpal256[(uint8_t)(i)] = ColorFromPalette( srcpal32, i);</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; }</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;</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</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_palette32.html">CHSVPalette32</a>&amp; srcpal32, <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="l01023"></a><span class="lineno"> 1023</span>&#160;{</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; destpal256[(uint8_t)(i)] = ColorFromPalette( srcpal32, i);</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;</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;</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;<span class="preprocessor">#if 0</span></div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="comment">// replaced by PartyColors_p</span></div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;<span class="keywordtype">void</span> SetupPartyColors(<a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; pal)</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;{</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( pal, 0, <a class="code" href="struct_c_h_s_v.html">CHSV</a>( HUE_PURPLE,255,255), 7, <a class="code" href="struct_c_h_s_v.html">CHSV</a>(HUE_YELLOW - 18,255,255), FORWARD_HUES);</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( pal, 8, <a class="code" href="struct_c_h_s_v.html">CHSV</a>( HUE_ORANGE,255,255), 15, <a class="code" href="struct_c_h_s_v.html">CHSV</a>(HUE_BLUE + 18,255,255), BACKWARD_HUES);</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="preprocessor">#endif</span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;<span class="keywordtype">void</span> nblendPaletteTowardPalette( <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; current, <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; target, uint8_t maxChanges)</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;{</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; uint8_t* p1;</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; uint8_t* p2;</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; uint8_t changes = 0;</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; p1 = (uint8_t*)current.entries;</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; p2 = (uint8_t*)target.entries;</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="keyword">const</span> uint8_t totalChannels = <span class="keyword">sizeof</span>(<a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>);</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; totalChannels; i++) {</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; <span class="comment">// if the values are equal, no changes are needed</span></div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; <span class="keywordflow">if</span>( p1[i] == p2[i] ) { <span class="keywordflow">continue</span>; }</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="comment">// if the current value is less than the target, increase it by one</span></div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; <span class="keywordflow">if</span>( p1[i] &lt; p2[i] ) { p1[i]++; changes++; }</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <span class="comment">// if the current value is greater than the target,</span></div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; <span class="comment">// increase it by one (or two if it&#39;s still greater).</span></div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; <span class="keywordflow">if</span>( p1[i] &gt; p2[i] ) {</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; p1[i]--; changes++;</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <span class="keywordflow">if</span>( p1[i] &gt; p2[i] ) { p1[i]--; }</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; }</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <span class="comment">// if we&#39;ve hit the maximum number of changes, exit</span></div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <span class="keywordflow">if</span>( changes &gt;= maxChanges) { <span class="keywordflow">break</span>; }</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; }</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;}</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;uint8_t applyGamma_video( uint8_t brightness, <span class="keywordtype">float</span> gamma)</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;{</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="keywordtype">float</span> orig;</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keywordtype">float</span> adj;</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; orig = (float)(brightness) / (255.0);</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; adj = pow( orig, gamma) * (255.0);</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; uint8_t result = (uint8_t)(adj);</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keywordflow">if</span>( (brightness &gt; 0) &amp;&amp; (result == 0)) {</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; result = 1; <span class="comment">// never gamma-adjust a positive number down to zero</span></div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; }</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="keywordflow">return</span> result;</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;</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</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="l01085"></a><span class="lineno"> 1085</span>&#160;{</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> adj;</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; adj.r = applyGamma_video( orig.r, gamma);</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; adj.g = applyGamma_video( orig.g, gamma);</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; adj.b = applyGamma_video( orig.b, gamma);</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; <span class="keywordflow">return</span> adj;</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;}</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;<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="l01094"></a><span class="lineno"> 1094</span>&#160;{</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> adj;</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; adj.r = applyGamma_video( orig.r, gammaR);</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; adj.g = applyGamma_video( orig.g, gammaG);</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; adj.b = applyGamma_video( orig.b, gammaB);</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; <span class="keywordflow">return</span> adj;</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;}</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</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="l01103"></a><span class="lineno"> 1103</span>&#160;{</div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; rgb = applyGamma_video( rgb, gamma);</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <span class="keywordflow">return</span> rgb;</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;}</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</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="l01109"></a><span class="lineno"> 1109</span>&#160;{</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; rgb = applyGamma_video( rgb, gammaR, gammaG, gammaB);</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; <span class="keywordflow">return</span> rgb;</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;}</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;<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="l01115"></a><span class="lineno"> 1115</span>&#160;{</div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; count; i++) {</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; rgbarray[i] = applyGamma_video( rgbarray[i], gamma);</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; }</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;}</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</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="l01122"></a><span class="lineno"> 1122</span>&#160;{</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; count; i++) {</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; rgbarray[i] = applyGamma_video( rgbarray[i], gammaR, gammaG, gammaB);</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; }</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;}</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;FASTLED_NAMESPACE_END</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> <a href="pixeltypes_8h_source.html#l00090">pixeltypes.h:90</a></div></div>
+<div class="ttc" id="class_c_r_g_b_palette32_html"><div class="ttname"><a href="class_c_r_g_b_palette32.html">CRGBPalette32</a></div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8h_source.html#l01018">colorutils.h:1018</a></div></div>
+<div class="ttc" id="group___scaling_html_gab341cef8d46232269bb70092fed9eb75"><div class="ttname"><a href="group___scaling.html#gab341cef8d46232269bb70092fed9eb75">scale8_video_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC uint8_t scale8_video_LEAVING_R1_DIRTY(uint8_t i, fract8 scale)</div><div class="ttdoc">This version of scale8_video does not clean up the R1 register on AVR If you are doing several &#39;scale...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00175">scale8.h:175</a></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> <a href="lib8tion_8h_source.html#l00353">lib8tion.h:353</a></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> <a href="scale8_8h_source.html#l00020">scale8.h:20</a></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> <a href="colorutils_8h_source.html#l00528">colorutils.h:528</a></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> <a href="colorutils_8h_source.html#l00542">colorutils.h:542</a></div></div>
<div class="ttc" id="group___scaling_html_ga333095ffa436c94d3e77ee9dc39da1c1"><div class="ttname"><a href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1">scale8_video</a></div><div class="ttdeci">LIB8STATIC uint8_t scale8_video(uint8_t i, fract8 scale)</div><div class="ttdoc">The "video" version of scale8 guarantees that the output will be only be zero if one or both of the i...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00073">scale8.h:73</a></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> <a href="colorutils_8h_source.html#l00632">colorutils.h:632</a></div></div>
-<div class="ttc" id="group___scaling_html_ga700b7f510f32e8c91385093c436c27d9"><div class="ttname"><a href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a></div><div class="ttdeci">LIB8STATIC void nscale8x3_video(uint8_t &amp;r, uint8_t &amp;g, uint8_t &amp;b, fract8 scale)</div><div class="ttdoc">scale three one byte values by a fourth one, which is treated as the numerator of a fraction whose de...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00282">scale8.h:282</a></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> <a href="lib8tion_8h_source.html#l00324">lib8tion.h:324</a></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> <a href="colorutils_8h_source.html#l00646">colorutils.h:646</a></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> <a href="lib8tion_8h_source.html#l00334">lib8tion.h:334</a></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)</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> <a href="colorutils_8cpp_source.html#l00035">colorutils.cpp:35</a></div></div>
<div class="ttc" id="group___scaling_html_ga39579fcf09743f15545fe0b831ca313c"><div class="ttname"><a href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC uint8_t scale8_LEAVING_R1_DIRTY(uint8_t i, fract8 scale)</div><div class="ttdoc">This version of scale8 does not clean up the R1 register on AVR If you are doing several &#39;scale8&#39;s in...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00121">scale8.h:121</a></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> <a href="colorutils_8h_source.html#l00093">colorutils.h:93</a></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> <a href="colorutils_8h_source.html#l00094">colorutils.h:94</a></div></div>
<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </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> <a href="colorutils_8h_source.html#l00424">colorutils.h:424</a></div></div>
+<div class="ttc" id="class_c_h_s_v_palette32_html"><div class="ttname"><a href="class_c_h_s_v_palette32.html">CHSVPalette32</a></div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8h_source.html#l00912">colorutils.h:912</a></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> <a href="colorutils_8h_source.html#l00438">colorutils.h:438</a></div></div>
<div class="ttc" id="group___scaling_html_ga572d0b441676c9d8ceb071fe8284b7e9"><div class="ttname"><a href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a></div><div class="ttdeci">LIB8STATIC void cleanup_R1()</div><div class="ttdoc">Clean up the r1 register after a series of *LEAVING_R1_DIRTY calls. </div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00244">scale8.h:244</a></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> <a href="colorutils_8h_source.html#l00874">colorutils.h:874</a></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> <a href="pixeltypes_8h_source.html#l00021">pixeltypes.h:21</a></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> <a href="colorutils_8h_source.html#l01309">colorutils.h:1309</a></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> <a href="fastled__delay_8h_source.html#l00092">fastled_delay.h:92</a></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> <a href="pixeltypes_8h_source.html#l00023">pixeltypes.h:23</a></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">FASTLED_NAMESPACE_BEGIN 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> <a href="colorutils_8cpp_source.html#l00012">colorutils.cpp:12</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
@@ -949,7 +1264,7 @@ $(document).ready(function(){initNavTree('colorutils_8cpp_source.html','');});
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>colorutils.cpp</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:35 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/colorutils_8h.html b/docs/3.1/colorutils_8h.html
index edec833f..34211532 100644
--- a/docs/3.1/colorutils_8h.html
+++ b/docs/3.1/colorutils_8h.html
@@ -130,6 +130,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_c_r_g_b_palette16.html">CRGBPalette16</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_c_h_s_v_palette32.html">CHSVPalette32</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_c_r_g_b_palette32.html">CRGBPalette32</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_c_r_g_b_palette256.html">CRGBPalette256</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
@@ -141,6 +145,12 @@ typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>TProgmemR
<tr class="memitem:ga68d7c7a5522fb7aa113e50351bd620d4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga68d7c7a5522fb7aa113e50351bd620d4"></a>
typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>TProgmemHSVPalette16</b>[16]</td></tr>
<tr class="separator:ga68d7c7a5522fb7aa113e50351bd620d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0402dc727d6a118cf426da017ff42152"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0402dc727d6a118cf426da017ff42152"></a>
+typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>TProgmemRGBPalette32</b>[32]</td></tr>
+<tr class="separator:ga0402dc727d6a118cf426da017ff42152"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4173693bfea9b72f0f73085e9a7318a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4173693bfea9b72f0f73085e9a7318a8"></a>
+typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>TProgmemHSVPalette32</b>[32]</td></tr>
+<tr class="separator:ga4173693bfea9b72f0f73085e9a7318a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5c6ee5f16c2e9dcea972adc5b582218c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5c6ee5f16c2e9dcea972adc5b582218c"></a>
typedef const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>TProgmemRGBGradientPalette_byte</b></td></tr>
<tr class="separator:ga5c6ee5f16c2e9dcea972adc5b582218c"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -285,6 +295,18 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpscalePalette</b> (c
<tr class="memitem:gae2a0641902f28723263666a128995fef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae2a0641902f28723263666a128995fef"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>UpscalePalette</b> (const struct <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> &amp;srcpal16, struct <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a> &amp;destpal256)</td></tr>
<tr class="separator:gae2a0641902f28723263666a128995fef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1916d32f04256f662ecb0f4d7cff6062"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1916d32f04256f662ecb0f4d7cff6062"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>UpscalePalette</b> (const struct <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> &amp;srcpal16, struct <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;destpal32)</td></tr>
+<tr class="separator:ga1916d32f04256f662ecb0f4d7cff6062"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab247fdb68a0ed37779c7bc11b83f6f8a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab247fdb68a0ed37779c7bc11b83f6f8a"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>UpscalePalette</b> (const struct <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> &amp;srcpal16, struct <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> &amp;destpal32)</td></tr>
+<tr class="separator:gab247fdb68a0ed37779c7bc11b83f6f8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa91cec87978562a2b22709b47d02cdd7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa91cec87978562a2b22709b47d02cdd7"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>UpscalePalette</b> (const struct <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;srcpal32, struct <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a> &amp;destpal256)</td></tr>
+<tr class="separator:gaa91cec87978562a2b22709b47d02cdd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeac1e2dbb61ff4b9f21dbed9cb0a1350"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeac1e2dbb61ff4b9f21dbed9cb0a1350"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>UpscalePalette</b> (const struct <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> &amp;srcpal32, struct <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a> &amp;destpal256)</td></tr>
+<tr class="separator:gaeac1e2dbb61ff4b9f21dbed9cb0a1350"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac46e65aff3dd6519b33e27f0998f17cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac46e65aff3dd6519b33e27f0998f17cd"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ColorFromPalette</b> (const <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> &amp;pal, uint8_t index, uint8_t brightness=255, TBlendType blendType=LINEARBLEND)</td></tr>
<tr class="separator:gac46e65aff3dd6519b33e27f0998f17cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -300,6 +322,15 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpscalePalette</b> (c
<tr class="memitem:ga79c94ea554455e72eabab172cc15456f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga79c94ea554455e72eabab172cc15456f"></a>
<a class="el" href="struct_c_h_s_v.html">CHSV</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ColorFromPalette</b> (const <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a> &amp;pal, uint8_t index, uint8_t brightness=255, TBlendType blendType=NOBLEND)</td></tr>
<tr class="separator:ga79c94ea554455e72eabab172cc15456f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae5e137a13a4b6145fe40007328d398f4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae5e137a13a4b6145fe40007328d398f4"></a>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ColorFromPalette</b> (const <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;pal, uint8_t index, uint8_t brightness=255, TBlendType blendType=LINEARBLEND)</td></tr>
+<tr class="separator:gae5e137a13a4b6145fe40007328d398f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea6bd3ab3ec62d88e2dcc7ab2486dcd4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaea6bd3ab3ec62d88e2dcc7ab2486dcd4"></a>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ColorFromPalette</b> (const TProgmemRGBPalette32 &amp;pal, uint8_t index, uint8_t brightness=255, TBlendType blendType=LINEARBLEND)</td></tr>
+<tr class="separator:gaea6bd3ab3ec62d88e2dcc7ab2486dcd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1684ed7eb860c68a915d03e94250e58a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1684ed7eb860c68a915d03e94250e58a"></a>
+<a class="el" href="struct_c_h_s_v.html">CHSV</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ColorFromPalette</b> (const <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> &amp;pal, uint8_t index, uint8_t brightness=255, TBlendType blendType=LINEARBLEND)</td></tr>
+<tr class="separator:ga1684ed7eb860c68a915d03e94250e58a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad6431776a18268d286d146158e25cb36"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad6431776a18268d286d146158e25cb36"></a>
template&lt;typename PALETTE &gt; </td></tr>
<tr class="memitem:gad6431776a18268d286d146158e25cb36"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fill_palette</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *L, uint16_t N, uint8_t startIndex, uint8_t incIndex, const PALETTE &amp;pal, uint8_t brightness, TBlendType blendType)</td></tr>
@@ -343,7 +374,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>napplyGamma_video</b>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="colorutils_8h.html">colorutils.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/colorutils_8h.js b/docs/3.1/colorutils_8h.js
index c2c13bdf..b95c815e 100644
--- a/docs/3.1/colorutils_8h.js
+++ b/docs/3.1/colorutils_8h.js
@@ -4,10 +4,12 @@ var colorutils_8h =
[ "TDynamicRGBGradientPalette_bytes", "group___colorutils.html#gae1c82c19302557ba92e9ce0ec2c9ed5b", null ],
[ "TDynamicRGBGradientPalettePtr", "group___colorutils.html#ga8ca55222f4aaa94bba41171554225f75", null ],
[ "TProgmemHSVPalette16", "group___colorutils.html#ga68d7c7a5522fb7aa113e50351bd620d4", null ],
+ [ "TProgmemHSVPalette32", "group___colorutils.html#ga4173693bfea9b72f0f73085e9a7318a8", null ],
[ "TProgmemRGBGradientPalette_byte", "group___colorutils.html#ga5c6ee5f16c2e9dcea972adc5b582218c", null ],
[ "TProgmemRGBGradientPalette_bytes", "group___colorutils.html#ga56cb3bce8ab7c903689192abedcc9699", null ],
[ "TProgmemRGBGradientPalettePtr", "group___colorutils.html#gad07b6fd5973f3c9fc4a084b206aaeabd", null ],
[ "TProgmemRGBPalette16", "group___colorutils.html#ga3ce4f8424098c820a739f95cf86d7663", null ],
+ [ "TProgmemRGBPalette32", "group___colorutils.html#ga0402dc727d6a118cf426da017ff42152", null ],
[ "TBlendType", "group___colorutils.html#ga565c04e626af4a3ec44bf97edc607b4e", [
[ "NOBLEND", "group___colorutils.html#gga565c04e626af4a3ec44bf97edc607b4ea754b67bead50dd3c843e930e9bfa2f00", null ],
[ "LINEARBLEND", "group___colorutils.html#gga565c04e626af4a3ec44bf97edc607b4ea7a36ed58acc67878c9dd1b6a83910f06", null ]
@@ -34,6 +36,9 @@ var colorutils_8h =
[ "ColorFromPalette", "group___colorutils.html#gaf65fa1b4fedbbd7b8054a71e1b6474b3", null ],
[ "ColorFromPalette", "group___colorutils.html#gafdfc20fbf9b8e4b71e010a654ec27891", null ],
[ "ColorFromPalette", "group___colorutils.html#ga79c94ea554455e72eabab172cc15456f", null ],
+ [ "ColorFromPalette", "group___colorutils.html#gae5e137a13a4b6145fe40007328d398f4", null ],
+ [ "ColorFromPalette", "group___colorutils.html#gaea6bd3ab3ec62d88e2dcc7ab2486dcd4", null ],
+ [ "ColorFromPalette", "group___colorutils.html#ga1684ed7eb860c68a915d03e94250e58a", null ],
[ "fade_raw", "group___colorutils.html#gac020b03041306ed9c859bbdfebe943cf", null ],
[ "fade_video", "group___colorutils.html#gaff656b0046fac0d40b8eb02941ce1755", null ],
[ "fadeLightBy", "group___colorutils.html#gac1e25878d16efa6112d907738f525773", null ],
@@ -66,5 +71,9 @@ var colorutils_8h =
[ "nscale8", "group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b", null ],
[ "nscale8_video", "group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83", null ],
[ "UpscalePalette", "group___colorutils.html#gaea18108bf50282f20a0ecd4213b5ac8c", null ],
- [ "UpscalePalette", "group___colorutils.html#gae2a0641902f28723263666a128995fef", null ]
+ [ "UpscalePalette", "group___colorutils.html#gae2a0641902f28723263666a128995fef", null ],
+ [ "UpscalePalette", "group___colorutils.html#ga1916d32f04256f662ecb0f4d7cff6062", null ],
+ [ "UpscalePalette", "group___colorutils.html#gab247fdb68a0ed37779c7bc11b83f6f8a", null ],
+ [ "UpscalePalette", "group___colorutils.html#gaa91cec87978562a2b22709b47d02cdd7", null ],
+ [ "UpscalePalette", "group___colorutils.html#gaeac1e2dbb61ff4b9f21dbed9cb0a1350", null ]
]; \ No newline at end of file
diff --git a/docs/3.1/colorutils_8h_source.html b/docs/3.1/colorutils_8h_source.html
index 457c3642..734f3899 100644
--- a/docs/3.1/colorutils_8h_source.html
+++ b/docs/3.1/colorutils_8h_source.html
@@ -113,1219 +113,1693 @@ $(document).ready(function(){initNavTree('colorutils_8h_source.html','');});
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_COLORUTILS_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;pixeltypes.h&quot;</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</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="l00009"></a><span class="lineno"> 9</span>&#160;</div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * leds, <span class="keywordtype">int</span> numToFill,</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; color);</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* targetArray, <span class="keywordtype">int</span> numToFill,</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; hsvColor);</div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;pixeltypes.h&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</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="l00010"></a><span class="lineno"> 10</span>&#160;</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * leds, <span class="keywordtype">int</span> numToFill,</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; color);</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* targetArray, <span class="keywordtype">int</span> numToFill,</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; hsvColor);</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2">fill_rainbow</a>( <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * pFirstLED, <span class="keywordtype">int</span> numToFill,</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; uint8_t initialhue,</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; uint8_t deltahue = 5);</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2">fill_rainbow</a>( <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a> * targetArray, <span class="keywordtype">int</span> numToFill,</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; uint8_t initialhue,</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; uint8_t deltahue = 5);</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2">fill_rainbow</a>( <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * pFirstLED, <span class="keywordtype">int</span> numToFill,</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; uint8_t initialhue,</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; uint8_t deltahue = 5);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2">fill_rainbow</a>( <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a> * targetArray, <span class="keywordtype">int</span> numToFill,</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; uint8_t initialhue,</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; uint8_t deltahue = 5);</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// fill_gradient - fill an array of colors with a smooth HSV gradient</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// between two specified HSV colors.</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// Since &#39;hue&#39; is a value around a color wheel,</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// there are always two ways to sweep from one hue</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// to another.</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// This function lets you specify which way you want</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// the hue gradient to sweep around the color wheel:</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// FORWARD_HUES: hue always goes clockwise</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// BACKWARD_HUES: hue always goes counter-clockwise</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// SHORTEST_HUES: hue goes whichever way is shortest</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// LONGEST_HUES: hue goes whichever way is longest</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// The default is SHORTEST_HUES, as this is nearly</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// always what is wanted.</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">// fill_gradient can write the gradient colors EITHER</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">// (1) into an array of CRGBs (e.g., into leds[] array, or an RGB Palette)</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">// OR</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">// (2) into an array of CHSVs (e.g. an HSV Palette).</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">// In the case of writing into a CRGB array, the gradient is</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment">// computed in HSV space, and then HSV values are converted to RGB</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment">// as they&#39;re written into the RGB array.</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="keyword">typedef</span> <span class="keyword">enum</span> { FORWARD_HUES, BACKWARD_HUES, SHORTEST_HUES, LONGEST_HUES } TGradientDirectionCode;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</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;<span class="comment">// fill_gradient - fill an array of colors with a smooth HSV gradient</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// between two specified HSV colors.</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// Since &#39;hue&#39; is a value around a color wheel,</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// there are always two ways to sweep from one hue</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// to another.</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// This function lets you specify which way you want</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// the hue gradient to sweep around the color wheel:</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// FORWARD_HUES: hue always goes clockwise</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// BACKWARD_HUES: hue always goes counter-clockwise</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// SHORTEST_HUES: hue goes whichever way is shortest</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// LONGEST_HUES: hue goes whichever way is longest</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// The default is SHORTEST_HUES, as this is nearly</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// always what is wanted.</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">// fill_gradient can write the gradient colors EITHER</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">// (1) into an array of CRGBs (e.g., into leds[] array, or an RGB Palette)</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">// OR</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">// (2) into an array of CHSVs (e.g. an HSV Palette).</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment">// In the case of writing into a CRGB array, the gradient is</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment">// computed in HSV space, and then HSV values are converted to RGB</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment">// as they&#39;re written into the RGB array.</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> { FORWARD_HUES, BACKWARD_HUES, SHORTEST_HUES, LONGEST_HUES } TGradientDirectionCode;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#define saccum87 int16_t</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98"> 93</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( T* targetArray,</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; uint16_t startpos, <a class="code" href="struct_c_h_s_v.html">CHSV</a> startcolor,</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; uint16_t endpos, <a class="code" href="struct_c_h_s_v.html">CHSV</a> endcolor,</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</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="comment">// if the points are in the wrong order, straighten them</span></div>
-<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; 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>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// then set the endhue to the starthue.</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// This lets us ramp smoothly to black or white, regardless</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// of what &#39;hue&#39; was set in the endcolor (since it doesn&#39;t matter)</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span>( endcolor.value == 0 || endcolor.saturation == 0) {</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; endcolor.hue = startcolor.hue;</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;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// Similarly, if we&#39;re fading in from black (val=0) or white (sat=0)</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// then set the starthue to the endhue.</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">// This lets us ramp smoothly up from black or white, regardless</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// of what &#39;hue&#39; was set in the startcolor (since it doesn&#39;t matter)</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">if</span>( startcolor.value == 0 || startcolor.saturation == 0) {</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; startcolor.hue = endcolor.hue;</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;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; saccum87 huedistance87;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; saccum87 satdistance87;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; saccum87 valdistance87;</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; satdistance87 = (endcolor.sat - startcolor.sat) &lt;&lt; 7;</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; valdistance87 = (endcolor.val - startcolor.val) &lt;&lt; 7;</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; uint8_t huedelta8 = endcolor.hue - startcolor.hue;</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="keywordflow">if</span>( directionCode == SHORTEST_HUES ) {</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; directionCode = FORWARD_HUES;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span>( huedelta8 &gt; 127) {</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; directionCode = BACKWARD_HUES;</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span>( directionCode == LONGEST_HUES ) {</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; directionCode = FORWARD_HUES;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span>( huedelta8 &lt; 128) {</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; directionCode = BACKWARD_HUES;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">if</span>( directionCode == FORWARD_HUES) {</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; huedistance87 = huedelta8 &lt;&lt; 7;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">else</span> <span class="comment">/* directionCode == BACKWARD_HUES */</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; {</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; huedistance87 = (uint8_t)(256 - huedelta8) &lt;&lt; 7;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; huedistance87 = -huedistance87;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; uint16_t pixeldistance = endpos - startpos;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; int16_t divisor = pixeldistance ? pixeldistance : 1;</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; saccum87 huedelta87 = huedistance87 / divisor;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; saccum87 satdelta87 = satdistance87 / divisor;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; saccum87 valdelta87 = valdistance87 / divisor;</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; huedelta87 *= 2;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; satdelta87 *= 2;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; valdelta87 *= 2;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> hue88 = startcolor.hue &lt;&lt; 8;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> sat88 = startcolor.sat &lt;&lt; 8;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> val88 = startcolor.val &lt;&lt; 8;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">for</span>( uint16_t i = startpos; i &lt;= endpos; i++) {</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; targetArray[i] = <a class="code" href="struct_c_h_s_v.html">CHSV</a>( hue88 &gt;&gt; 8, sat88 &gt;&gt; 8, val88 &gt;&gt; 8);</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; hue88 += huedelta87;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; sat88 += satdelta87;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; val88 += valdelta87;</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;</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;<span class="preprocessor">#define saccum87 int16_t</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98"> 94</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( T* targetArray,</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; uint16_t startpos, <a class="code" href="struct_c_h_s_v.html">CHSV</a> startcolor,</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; uint16_t endpos, <a class="code" href="struct_c_h_s_v.html">CHSV</a> endcolor,</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;{</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// if the points are in the wrong order, straighten them</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span>( endpos &lt; startpos ) {</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; uint16_t t = endpos;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> tc = endcolor;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; endcolor = startcolor;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; endpos = startpos;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; startpos = t;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; startcolor = tc;</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;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// If we&#39;re fading toward black (val=0) or white (sat=0),</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// then set the endhue to the starthue.</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// This lets us ramp smoothly to black or white, regardless</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// of what &#39;hue&#39; was set in the endcolor (since it doesn&#39;t matter)</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">if</span>( endcolor.value == 0 || endcolor.saturation == 0) {</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; endcolor.hue = startcolor.hue;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// Similarly, if we&#39;re fading in from black (val=0) or white (sat=0)</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">// then set the starthue to the endhue.</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// This lets us ramp smoothly up from black or white, regardless</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// of what &#39;hue&#39; was set in the startcolor (since it doesn&#39;t matter)</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span>( startcolor.value == 0 || startcolor.saturation == 0) {</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; startcolor.hue = endcolor.hue;</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; saccum87 huedistance87;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; saccum87 satdistance87;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; saccum87 valdistance87;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; satdistance87 = (endcolor.sat - startcolor.sat) &lt;&lt; 7;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; valdistance87 = (endcolor.val - startcolor.val) &lt;&lt; 7;</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; uint8_t huedelta8 = endcolor.hue - startcolor.hue;</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span>( directionCode == SHORTEST_HUES ) {</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; directionCode = FORWARD_HUES;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span>( huedelta8 &gt; 127) {</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; directionCode = BACKWARD_HUES;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span>( directionCode == LONGEST_HUES ) {</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; directionCode = FORWARD_HUES;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span>( huedelta8 &lt; 128) {</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; directionCode = BACKWARD_HUES;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span>( directionCode == FORWARD_HUES) {</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; huedistance87 = huedelta8 &lt;&lt; 7;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">else</span> <span class="comment">/* directionCode == BACKWARD_HUES */</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; {</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; huedistance87 = (uint8_t)(256 - huedelta8) &lt;&lt; 7;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; huedistance87 = -huedistance87;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; uint16_t pixeldistance = endpos - startpos;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; int16_t divisor = pixeldistance ? pixeldistance : 1;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; saccum87 huedelta87 = huedistance87 / divisor;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; saccum87 satdelta87 = satdistance87 / divisor;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; saccum87 valdelta87 = valdistance87 / divisor;</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; huedelta87 *= 2;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; satdelta87 *= 2;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; valdelta87 *= 2;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> hue88 = startcolor.hue &lt;&lt; 8;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> sat88 = startcolor.sat &lt;&lt; 8;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> val88 = startcolor.val &lt;&lt; 8;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">for</span>( uint16_t i = startpos; i &lt;= endpos; i++) {</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; targetArray[i] = <a class="code" href="struct_c_h_s_v.html">CHSV</a>( hue88 &gt;&gt; 8, sat88 &gt;&gt; 8, val88 &gt;&gt; 8);</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; hue88 += huedelta87;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; sat88 += satdelta87;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; val88 += valdelta87;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;}</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">// Convenience functions to fill an array of colors with a</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment">// two-color, three-color, or four-color gradient</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( T* targetArray, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2,</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</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; uint16_t last = numLeds - 1;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, 0, c1, last, c2, directionCode);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;}</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( T* targetArray, uint16_t numLeds,</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3,</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</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; uint16_t half = (numLeds / 2);</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; uint16_t last = numLeds - 1;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, 0, c1, half, c2, directionCode);</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, half, c2, last, c3, directionCode);</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;}</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( T* targetArray, uint16_t numLeds,</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c4,</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</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; uint16_t onethird = (numLeds / 3);</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; uint16_t twothirds = ((numLeds * 2) / 3);</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; uint16_t last = numLeds - 1;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, 0, c1, onethird, c2, directionCode);</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, onethird, c2, twothirds, c3, directionCode);</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, twothirds, c3, last, c4, directionCode);</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;}</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment">// convenience synonym</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor">#define fill_gradient_HSV fill_gradient</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</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="comment">// Convenience functions to fill an array of colors with a</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment">// two-color, three-color, or four-color gradient</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( T* targetArray, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2,</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;{</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; uint16_t last = numLeds - 1;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, 0, c1, last, c2, directionCode);</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;}</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;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( T* targetArray, uint16_t numLeds,</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3,</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</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; uint16_t half = (numLeds / 2);</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; uint16_t last = numLeds - 1;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, 0, c1, half, c2, directionCode);</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, half, c2, last, c3, directionCode);</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;}</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( T* targetArray, uint16_t numLeds,</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; c4,</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES )</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; uint16_t onethird = (numLeds / 3);</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; uint16_t twothirds = ((numLeds * 2) / 3);</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; uint16_t last = numLeds - 1;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, 0, c1, onethird, c2, directionCode);</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, onethird, c2, twothirds, c3, directionCode);</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( targetArray, twothirds, c3, last, c4, directionCode);</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;}</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="comment">// convenience synonym</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor">#define fill_gradient_HSV fill_gradient</span></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="comment">// fill_gradient_RGB - fill a range of LEDs with a smooth RGB gradient</span></div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment">// between two specified RGB colors.</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment">// Unlike HSV, there is no &#39;color wheel&#39; in RGB space,</span></div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment">// and therefore there&#39;s only one &#39;direction&#39; for the</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment">// gradient to go, and no &#39;direction code&#39; is needed.</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds,</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; uint16_t startpos, <a class="code" href="struct_c_r_g_b.html">CRGB</a> startcolor,</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; uint16_t endpos, <a class="code" href="struct_c_r_g_b.html">CRGB</a> endcolor );</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2);</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c3);</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c4);</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment">// fill_gradient_RGB - fill a range of LEDs with a smooth RGB gradient</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment">// between two specified RGB colors.</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="comment">// Unlike HSV, there is no &#39;color wheel&#39; in RGB space,</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment">// and therefore there&#39;s only one &#39;direction&#39; for the</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment">// gradient to go, and no &#39;direction code&#39; is needed.</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds,</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; uint16_t startpos, <a class="code" href="struct_c_r_g_b.html">CRGB</a> startcolor,</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; uint16_t endpos, <a class="code" href="struct_c_r_g_b.html">CRGB</a> endcolor );</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2);</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c3);</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="keywordtype">void</span> fill_gradient_RGB( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c2, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c3, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; c4);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="comment">// fadeLightBy and fade_video - reduce the brightness of an array</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="comment">// of pixels all at once. Guaranteed</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="comment">// to never fade all the way to black.</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment">// (The two names are synonyms.)</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="keywordtype">void</span> fadeLightBy( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t fadeBy);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="keywordtype">void</span> fade_video( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t fadeBy);</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment">// nscale8_video - scale down the brightness of an array of pixels</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment">// all at once. Guaranteed to never scale a pixel</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment">// all the way down to black, unless &#39;scale&#39; is zero.</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="keywordtype">void</span> nscale8_video( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t scale);</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment">// fadeToBlackBy and fade_raw - reduce the brightness of an array</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment">// of pixels all at once. These</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment">// functions will eventually fade all</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment">// the way to black.</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment">// (The two names are synonyms.)</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="keywordtype">void</span> fadeToBlackBy( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t fadeBy);</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="keywordtype">void</span> fade_raw( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t fadeBy);</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="comment">// nscale8 - scale down the brightness of an array of pixels</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="comment">// all at once. This function can scale pixels all the</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="comment">// way down to black even if &#39;scale&#39; is not zero.</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="keywordtype">void</span> nscale8( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t scale);</div>
-<div class="line"><a name="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">// fadeUsingColor - scale down the brightness of an array of pixels,</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment">// as though it were seen through a transparent</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment">// filter with the specified color.</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment">// For example, if the colormask is</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment">// CRGB( 200, 100, 50)</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="comment">// then the pixels&#39; red will be faded to 200/256ths,</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment">// their green to 100/256ths, and their blue to 50/256ths.</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment">// This particular example give a &#39;hot fade&#39; look,</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment">// with white fading to yellow, then red, then black.</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment">// You can also use colormasks like CRGB::Blue to</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment">// zero out the red and green elements, leaving blue</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="comment">// (largely) the same.</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="keywordtype">void</span> fadeUsingColor( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; colormask);</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</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="comment">// fadeLightBy and fade_video - reduce the brightness of an array</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="comment">// of pixels all at once. Guaranteed</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment">// to never fade all the way to black.</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="comment">// (The two names are synonyms.)</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="keywordtype">void</span> fadeLightBy( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t fadeBy);</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="keywordtype">void</span> fade_video( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t fadeBy);</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment">// nscale8_video - scale down the brightness of an array of pixels</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment">// all at once. Guaranteed to never scale a pixel</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="comment">// all the way down to black, unless &#39;scale&#39; is zero.</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="keywordtype">void</span> nscale8_video( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t scale);</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment">// fadeToBlackBy and fade_raw - reduce the brightness of an array</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="comment">// of pixels all at once. These</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment">// functions will eventually fade all</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment">// the way to black.</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment">// (The two names are synonyms.)</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="keywordtype">void</span> fadeToBlackBy( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t fadeBy);</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="keywordtype">void</span> fade_raw( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t fadeBy);</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="comment">// nscale8 - scale down the brightness of an array of pixels</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="comment">// all at once. This function can scale pixels all the</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment">// way down to black even if &#39;scale&#39; is not zero.</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="keywordtype">void</span> nscale8( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t num_leds, uint8_t scale);</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment">// fadeUsingColor - scale down the brightness of an array of pixels,</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment">// as though it were seen through a transparent</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment">// filter with the specified color.</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment">// For example, if the colormask is</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="comment">// CRGB( 200, 100, 50)</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment">// then the pixels&#39; red will be faded to 200/256ths,</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment">// their green to 100/256ths, and their blue to 50/256ths.</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment">// This particular example give a &#39;hot fade&#39; look,</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment">// with white fading to yellow, then red, then black.</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment">// You can also use colormasks like CRGB::Blue to</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="comment">// zero out the red and green elements, leaving blue</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="comment">// (largely) the same.</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="keywordtype">void</span> fadeUsingColor( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; colormask);</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="comment">// Pixel blending</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="comment">// blend - computes a new color blended some fraction of the way</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment">// between two other colors.</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> blend( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p2, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfP2 );</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> blend( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; p1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; p2, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfP2,</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES );</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="comment">// blend - computes a new color blended array of colors, each</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="comment">// a given fraction of the way between corresponding</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="comment">// elements of two source arrays of colors.</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="comment">// Useful for blending palettes.</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a>* blend( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>* src1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>* src2, <a class="code" href="struct_c_r_g_b.html">CRGB</a>* dest,</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2 );</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;<a class="code" href="struct_c_h_s_v.html">CHSV</a>* blend( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* src1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* src2, <a class="code" href="struct_c_h_s_v.html">CHSV</a>* dest,</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2,</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES );</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment">// nblend - destructively modifies one color, blending</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="comment">// in a given fraction of an overlay color</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; nblend( <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; existing, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; overlay, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay );</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; nblend( <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; existing, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; overlay, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay,</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES );</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="comment">// nblend - destructively blends a given fraction of</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="comment">// a new color array into an existing color array</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="keywordtype">void</span> nblend( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* existing, <a class="code" href="struct_c_r_g_b.html">CRGB</a>* overlay, uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay);</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="keywordtype">void</span> nblend( <a class="code" href="struct_c_h_s_v.html">CHSV</a>* existing, <a class="code" href="struct_c_h_s_v.html">CHSV</a>* overlay, uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay,</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES);</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</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="comment">// Pixel blending</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment">// blend - computes a new color blended some fraction of the way</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="comment">// between two other colors.</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> blend( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; p2, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfP2 );</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> blend( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; p1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; p2, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfP2,</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES );</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">// blend - computes a new color blended array of colors, each</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="comment">// a given fraction of the way between corresponding</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="comment">// elements of two source arrays of colors.</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="comment">// Useful for blending palettes.</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a>* blend( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>* src1, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>* src2, <a class="code" href="struct_c_r_g_b.html">CRGB</a>* dest,</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2 );</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a>* blend( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* src1, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* src2, <a class="code" href="struct_c_h_s_v.html">CHSV</a>* dest,</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfsrc2,</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES );</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">// nblend - destructively modifies one color, blending</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="comment">// in a given fraction of an overlay color</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; nblend( <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; existing, <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; overlay, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay );</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; nblend( <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; existing, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; overlay, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay,</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES );</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="comment">// nblend - destructively blends a given fraction of</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="comment">// a new color array into an existing color array</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="keywordtype">void</span> nblend( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* existing, <a class="code" href="struct_c_r_g_b.html">CRGB</a>* overlay, uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay);</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="keywordtype">void</span> nblend( <a class="code" href="struct_c_h_s_v.html">CHSV</a>* existing, <a class="code" href="struct_c_h_s_v.html">CHSV</a>* overlay, uint16_t count, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay,</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; TGradientDirectionCode directionCode = SHORTEST_HUES);</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;<span class="comment">// blur1d: one-dimensional blur filter. Spreads light to 2 line neighbors.</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="comment">// blur2d: two-dimensional blur filter. Spreads light to 8 XY neighbors.</span></div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="comment">// 0 = no spread at all</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="comment">// 64 = moderate spreading</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="comment">// 172 = maximum smooth, even spreading</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="comment">// 173..255 = wider spreading, but increasing flicker</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="comment">// Total light is NOT entirely conserved, so many repeated</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="comment">// calls to &#39;blur&#39; will also result in the light fading,</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="comment">// eventually all the way to black; this is by design so that</span></div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="comment">// it can be used to (slowly) clear the LEDs to black.</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="keywordtype">void</span> blur1d( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount);</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="keywordtype">void</span> blur2d( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint8_t width, uint8_t height, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount);</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="comment">// blurRows: perform a blur1d on every row of a rectangular matrix</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="keywordtype">void</span> blurRows( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint8_t width, uint8_t height, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount);</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="comment">// blurColumns: perform a blur1d on each column of a rectangular matrix</span></div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="keywordtype">void</span> blurColumns(<a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint8_t width, uint8_t height, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount);</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</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">// blur1d: one-dimensional blur filter. Spreads light to 2 line neighbors.</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="comment">// blur2d: two-dimensional blur filter. Spreads light to 8 XY neighbors.</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="comment">// 0 = no spread at all</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="comment">// 64 = moderate spreading</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="comment">// 172 = maximum smooth, even spreading</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="comment">// 173..255 = wider spreading, but increasing flicker</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="comment">// Total light is NOT entirely conserved, so many repeated</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="comment">// calls to &#39;blur&#39; will also result in the light fading,</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="comment">// eventually all the way to black; this is by design so that</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="comment">// it can be used to (slowly) clear the LEDs to black.</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="keywordtype">void</span> blur1d( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint16_t numLeds, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount);</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="keywordtype">void</span> blur2d( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint8_t width, uint8_t height, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount);</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="comment">// blurRows: perform a blur1d on every row of a rectangular matrix</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="keywordtype">void</span> blurRows( <a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint8_t width, uint8_t height, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount);</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="comment">// blurColumns: perform a blur1d on each column of a rectangular matrix</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="keywordtype">void</span> blurColumns(<a class="code" href="struct_c_r_g_b.html">CRGB</a>* leds, uint8_t width, uint8_t height, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount);</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="comment">// CRGB HeatColor( uint8_t temperature)</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="comment">// Approximates a &#39;black body radiation&#39; spectrum for</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="comment">// a given &#39;heat&#39; level. This is useful for animations of &#39;fire&#39;.</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="comment">// Heat is specified as an arbitrary scale from 0 (cool) to 255 (hot).</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="comment">// This is NOT a chromatically correct &#39;black body radiation&#39;</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="comment">// spectrum, but it&#39;s surprisingly close, and it&#39;s fast and small.</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> HeatColor( uint8_t temperature);</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</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;<span class="comment">// CRGB HeatColor( uint8_t temperature)</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="comment">// Approximates a &#39;black body radiation&#39; spectrum for</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="comment">// a given &#39;heat&#39; level. This is useful for animations of &#39;fire&#39;.</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="comment">// Heat is specified as an arbitrary scale from 0 (cool) to 255 (hot).</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="comment">// This is NOT a chromatically correct &#39;black body radiation&#39;</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="comment">// spectrum, but it&#39;s surprisingly close, and it&#39;s fast and small.</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> HeatColor( uint8_t temperature);</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="comment">// Palettes</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="comment">// RGB Palettes map an 8-bit value (0..255) to an RGB color.</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="comment">// You can create any color palette you wish; a couple of starters</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="comment">// are provided: Forest, Clouds, Lava, Ocean, Rainbow, and Rainbow Stripes.</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="comment">// Palettes come in the traditional 256-entry variety, which take</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="comment">// up 768 bytes of RAM, and lightweight 16-entry varieties. The 16-entry</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="comment">// variety automatically interpolates between its entries to produce</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="comment">// a full 256-element color map, but at a cost of only 48 bytes or RAM.</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="comment">// Basic operation is like this: (example shows the 16-entry variety)</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="comment">// 1. Declare your palette storage:</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="comment">// CRGBPalette16 myPalette;</span></div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="comment">// 2. Fill myPalette with your own 16 colors, or with a preset color scheme.</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="comment">// You can specify your 16 colors a variety of ways:</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="comment">// CRGBPalette16 myPalette(</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="comment">// CRGB::Black,</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="comment">// Palettes</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="comment">// RGB Palettes map an 8-bit value (0..255) to an RGB color.</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="comment">// You can create any color palette you wish; a couple of starters</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="comment">// are provided: Forest, Clouds, Lava, Ocean, Rainbow, and Rainbow Stripes.</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="comment">// Palettes come in the traditional 256-entry variety, which take</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="comment">// up 768 bytes of RAM, and lightweight 16-entry varieties. The 16-entry</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="comment">// variety automatically interpolates between its entries to produce</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="comment">// a full 256-element color map, but at a cost of only 48 bytes or RAM.</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="comment">// Basic operation is like this: (example shows the 16-entry variety)</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="comment">// 1. Declare your palette storage:</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="comment">// CRGBPalette16 myPalette;</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="l00354"></a><span class="lineno"> 354</span>&#160;<span class="comment">// 2. Fill myPalette with your own 16 colors, or with a preset color scheme.</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="comment">// You can specify your 16 colors a variety of ways:</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="comment">// CRGBPalette16 myPalette(</span></div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="comment">// CRGB::Black,</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="comment">// CRGB::Red,</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="comment">// CRGB::Yellow,</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="comment">// CRGB::Green,</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="comment">// CRGB::Blue,</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="comment">// CRGB::Purple,</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="comment">// CRGB::Black,</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="comment">// 0x100000,</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="comment">// 0x200000,</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="comment">// 0x400000,</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="comment">// 0x800000,</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="comment">// CHSV( 30,255,255),</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="comment">// CHSV( 50,255,255),</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="comment">// CHSV( 70,255,255),</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="comment">// CHSV( 90,255,255)</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="comment">// );</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="comment">// Or you can initiaize your palette with a preset color scheme:</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="comment">// myPalette = RainbowStripesColors_p;</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="comment">// 3. Any time you want to set a pixel to a color from your palette, use</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="comment">// &quot;ColorFromPalette(...)&quot; as shown:</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="comment">// uint8_t index = /* any value 0..255 */;</span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="comment">// leds[i] = ColorFromPalette( myPalette, index);</span></div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="comment">// Even though your palette has only 16 explicily defined entries, you</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="comment">// can use an &#39;index&#39; from 0..255. The 16 explicit palette entries will</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="comment">// be spread evenly across the 0..255 range, and the intermedate values</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="comment">// will be RGB-interpolated between adjacent explicit entries.</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="comment">// It&#39;s easier to use than it sounds.</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;<span class="keyword">class </span><a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>;</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="keyword">class </span><a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>;</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</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="l00396"></a><span class="lineno"> 396</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="l00397"></a><span class="lineno"> 397</span>&#160;<span class="keyword">typedef</span> uint32_t TProgmemRGBPalette16[16];</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="keyword">typedef</span> uint32_t TProgmemHSVPalette16[16];</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor">#define TProgmemPalette16 TProgmemRGBPalette16</span></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;<span class="keyword">typedef</span> <span class="keyword">const</span> uint8_t TProgmemRGBGradientPalette_byte ;</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="keyword">typedef</span> <span class="keyword">const</span> TProgmemRGBGradientPalette_byte *TProgmemRGBGradientPalette_bytes;</div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="keyword">typedef</span> TProgmemRGBGradientPalette_bytes TProgmemRGBGradientPalettePtr;</div>
-<div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="union_t_r_g_b_gradient_palette_entry_union.html"> 404</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; uint8_t index;</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; uint8_t r;</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; uint8_t g;</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; uint8_t b;</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; uint32_t dword;</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; uint8_t bytes[4];</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;} <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a>;</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="keyword">typedef</span> uint8_t TDynamicRGBGradientPalette_byte ;</div>
-<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;<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"><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="l00358"></a><span class="lineno"> 358</span>&#160;<span class="comment">// CRGB::Black,</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="comment">// CRGB::Red,</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="comment">// CRGB::Yellow,</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="comment">// CRGB::Green,</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="comment">// CRGB::Blue,</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="comment">// CRGB::Purple,</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="comment">// CRGB::Black,</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="comment">// 0x100000,</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="comment">// 0x200000,</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="comment">// 0x400000,</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="comment">// 0x800000,</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="comment">// CHSV( 30,255,255),</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="comment">// CHSV( 50,255,255),</span></div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="comment">// CHSV( 70,255,255),</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="comment">// CHSV( 90,255,255)</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="comment">// );</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="comment">// Or you can initiaize your palette with a preset color scheme:</span></div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="comment">// myPalette = RainbowStripesColors_p;</span></div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="comment">// 3. Any time you want to set a pixel to a color from your palette, use</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;<span class="comment">// &quot;ColorFromPalette(...)&quot; as shown:</span></div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="comment">// uint8_t index = /* any value 0..255 */;</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="comment">// leds[i] = ColorFromPalette( myPalette, index);</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="comment">// Even though your palette has only 16 explicily defined entries, you</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="comment">// can use an &#39;index&#39; from 0..255. The 16 explicit palette entries will</span></div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="comment">// be spread evenly across the 0..255 range, and the intermedate values</span></div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="comment">// will be RGB-interpolated between adjacent explicit entries.</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="comment">// It&#39;s easier to use than it sounds.</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="keyword">class </span><a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>;</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;<span class="keyword">class </span><a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>;</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</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="l00397"></a><span class="lineno"> 397</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="l00398"></a><span class="lineno"> 398</span>&#160;<span class="keyword">class </span><a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>;</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</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="l00400"></a><span class="lineno"> 400</span>&#160;<span class="keyword">typedef</span> uint32_t TProgmemRGBPalette16[16];</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="keyword">typedef</span> uint32_t TProgmemHSVPalette16[16];</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="preprocessor">#define TProgmemPalette16 TProgmemRGBPalette16</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;<span class="keyword">typedef</span> uint32_t TProgmemRGBPalette32[32];</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<span class="keyword">typedef</span> uint32_t TProgmemHSVPalette32[32];</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;<span class="preprocessor">#define TProgmemPalette32 TProgmemRGBPalette32</span></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="keyword">typedef</span> <span class="keyword">const</span> uint8_t TProgmemRGBGradientPalette_byte ;</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="keyword">typedef</span> <span class="keyword">const</span> TProgmemRGBGradientPalette_byte *TProgmemRGBGradientPalette_bytes;</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="keyword">typedef</span> TProgmemRGBGradientPalette_bytes TProgmemRGBGradientPalettePtr;</div>
+<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="union_t_r_g_b_gradient_palette_entry_union.html"> 410</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; uint8_t index;</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; uint8_t r;</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; uint8_t g;</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; uint8_t 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; uint32_t dword;</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; uint8_t bytes[4];</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;} <a class="code" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</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="keyword">typedef</span> uint8_t TDynamicRGBGradientPalette_byte ;</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="keyword">typedef</span> <span class="keyword">const</span> TDynamicRGBGradientPalette_byte *TDynamicRGBGradientPalette_bytes;</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="keyword">typedef</span> TDynamicRGBGradientPalette_bytes TDynamicRGBGradientPalettePtr;</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;<span class="comment">// Convert a 16-entry palette to a 256-entry palette</span></div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</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="l00427"></a><span class="lineno"> 427</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="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">// Convert a 16-entry palette to a 32-entry palette</span></div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</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_palette32.html">CRGBPalette32</a>&amp; destpal32);</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</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_palette32.html">CHSVPalette32</a>&amp; destpal32);</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="comment">// Convert a 32-entry palette to a 256-entry palette</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</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_palette32.html">CRGBPalette32</a>&amp; srcpal32, <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="l00435"></a><span class="lineno"> 435</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_palette32.html">CHSVPalette32</a>&amp; srcpal32, <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="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"><a class="line" href="class_c_h_s_v_palette16.html"> 438</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="l00439"></a><span class="lineno"> 439</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> entries[16];</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>() {};</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>( <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="l00443"></a><span class="lineno"> 443</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="l00444"></a><span class="lineno"> 444</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="l00445"></a><span class="lineno"> 445</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="l00446"></a><span class="lineno"> 446</span>&#160; {</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; entries[0]=c00; entries[1]=c01; entries[2]=c02; entries[3]=c03;</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; entries[4]=c04; entries[5]=c05; entries[6]=c06; entries[7]=c07;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; entries[8]=c08; entries[9]=c09; entries[10]=c10; entries[11]=c11;</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; entries[12]=c12; entries[13]=c13; entries[14]=c14; entries[15]=c15;</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;</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</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="l00454"></a><span class="lineno"> 454</span>&#160; {</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a>&amp; rhs)</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; {</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; }</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</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="l00464"></a><span class="lineno"> 464</span>&#160; {</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</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="l00467"></a><span class="lineno"> 467</span>&#160; entries[i].hue = xyz.red;</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; entries[i].sat = xyz.green;</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; entries[i].val = xyz.blue;</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; }</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</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="l00473"></a><span class="lineno"> 473</span>&#160; {</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</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="l00476"></a><span class="lineno"> 476</span>&#160; entries[i].hue = xyz.red;</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; entries[i].sat = xyz.green;</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; entries[i].val = xyz.blue;</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> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; }</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="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="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> <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="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[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; <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="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="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">return</span> entries[x];</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="l00492"></a><span class="lineno"> 492</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="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;};</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="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</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="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="l00497"></a><span class="lineno"> 497</span>&#160; {</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</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="keyword">operator</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>*()</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; {</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; }</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <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="l00507"></a><span class="lineno"> 507</span>&#160; {</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</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="l00509"></a><span class="lineno"> 509</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="l00510"></a><span class="lineno"> 510</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="l00511"></a><span class="lineno"> 511</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="l00512"></a><span class="lineno"> 512</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="l00513"></a><span class="lineno"> 513</span>&#160; p++;</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; q++;</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="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; }</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="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="l00519"></a><span class="lineno"> 519</span>&#160; {</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</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; <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="l00524"></a><span class="lineno"> 524</span>&#160; {</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</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; <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="l00528"></a><span class="lineno"> 528</span>&#160; {</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</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="l00530"></a><span class="lineno"> 530</span>&#160; }</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</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="l00532"></a><span class="lineno"> 532</span>&#160; {</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</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="l00534"></a><span class="lineno"> 534</span>&#160; }</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</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="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="l00537"></a><span class="lineno"> 537</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="l00538"></a><span class="lineno"> 538</span>&#160; }</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;};</div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <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; 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;</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="l00542"></a><span class="lineno"><a class="line" href="class_c_h_s_v_palette256.html"> 542</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="l00543"></a><span class="lineno"> 543</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> entries[256];</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="class_c_h_s_v_palette256.html">CHSVPalette256</a>() {};</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> <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="l00547"></a><span class="lineno"> 547</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="l00548"></a><span class="lineno"> 548</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="l00549"></a><span class="lineno"> 549</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="l00550"></a><span class="lineno"> 550</span>&#160; {</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> p16(c00,c01,c02,c03,c04,c05,c06,c07,</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; c08,c09,c10,c11,c12,c13,c14,c15);</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; *<span class="keyword">this</span> = p16;</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; <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="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; <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; <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="l00558"></a><span class="lineno"> 558</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</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; <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="l00561"></a><span class="lineno"> 561</span>&#160; {</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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; <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="l00567"></a><span class="lineno"> 567</span>&#160; {</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; }</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</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="l00571"></a><span class="lineno"> 571</span>&#160; {</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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; <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="l00577"></a><span class="lineno"> 577</span>&#160; {</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; *<span class="keyword">this</span> = p16;</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>&amp; operator=( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; {</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <a class="code" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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="l00587"></a><span class="lineno"> 587</span>&#160;</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</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="l00589"></a><span class="lineno"> 589</span>&#160; {</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordflow">return</span> entries[x];</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">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="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="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">return</span> entries[x];</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="l00597"></a><span class="lineno"> 597</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="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; <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_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; <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;};</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; <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;</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="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; }</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</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="l00602"></a><span class="lineno"> 602</span>&#160; {</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; }</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keyword">operator</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>*()</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; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; }</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</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="l00612"></a><span class="lineno"> 612</span>&#160; {</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</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="l00614"></a><span class="lineno"> 614</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="l00615"></a><span class="lineno"> 615</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="l00616"></a><span class="lineno"> 616</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="l00617"></a><span class="lineno"> 617</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="l00618"></a><span class="lineno"> 618</span>&#160; p++;</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; q++;</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; }</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</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; <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="l00624"></a><span class="lineno"> 624</span>&#160; {</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; }</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; </div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <a class="code" href="class_c_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="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="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</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; <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="l00633"></a><span class="lineno"> 633</span>&#160; {</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2);</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; }</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <a class="code" href="class_c_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="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="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2, c3);</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; }</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <a class="code" href="class_c_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="l00641"></a><span class="lineno"> 641</span>&#160; {</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 256, c1, c2, c3, c4);</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;};</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"><a class="line" href="class_c_r_g_b_palette16.html"> 646</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="l00647"></a><span class="lineno"> 647</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> entries[16];</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>() {};</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</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="l00651"></a><span class="lineno"> 651</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="l00652"></a><span class="lineno"> 652</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="l00653"></a><span class="lineno"> 653</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="l00654"></a><span class="lineno"> 654</span>&#160; {</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; entries[0]=c00; entries[1]=c01; entries[2]=c02; entries[3]=c03;</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; entries[4]=c04; entries[5]=c05; entries[6]=c06; entries[7]=c07;</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; entries[8]=c08; entries[9]=c09; entries[10]=c10; entries[11]=c11;</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; entries[12]=c12; entries[13]=c13; entries[14]=c14; entries[15]=c15;</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; <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="l00662"></a><span class="lineno"> 662</span>&#160; {</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</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; <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> rhs[16])</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; memmove8( &amp;(entries[0]), &amp;(rhs[0]), <span class="keyword">sizeof</span>( entries));</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; <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="l00670"></a><span class="lineno"> 670</span>&#160; {</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> rhs[16])</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; memmove8( &amp;(entries[0]), &amp;(rhs[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</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="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">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></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; }</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</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> rhs[16])</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; {</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; entries[i] = rhs[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></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>&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="l00693"></a><span class="lineno"> 693</span>&#160; {</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</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="keywordflow">return</span> *<span class="keyword">this</span>;</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; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a> rhs[16])</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; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; entries[i] = rhs[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></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> *<span class="keyword">this</span>;</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="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="class_c_r_g_b_palette16.html">CRGBPalette16</a>( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</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; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; entries[i] = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; }</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; <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="l00714"></a><span class="lineno"> 714</span>&#160; {</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 16; i++) {</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; entries[i] = FL_PGM_READ_DWORD_NEAR( rhs + i);</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> *<span class="keyword">this</span>;</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="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="l00722"></a><span class="lineno"> 722</span>&#160; {</div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</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="l00724"></a><span class="lineno"> 724</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="l00725"></a><span class="lineno"> 725</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="l00726"></a><span class="lineno"> 726</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="l00727"></a><span class="lineno"> 727</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="l00728"></a><span class="lineno"> 728</span>&#160; p++;</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; q++;</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="keywordflow">return</span> <span class="keyword">true</span>;</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="l00733"></a><span class="lineno"> 733</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="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="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</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="l00737"></a><span class="lineno"> 737</span>&#160; </div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</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="l00739"></a><span class="lineno"> 739</span>&#160; {</div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">return</span> entries[x];</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; <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="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="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">return</span> entries[x];</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="l00746"></a><span class="lineno"> 746</span>&#160;</div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</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="l00748"></a><span class="lineno"> 748</span>&#160; {</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; }</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="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="l00752"></a><span class="lineno"> 752</span>&#160; {</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; }</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; <span class="keyword">operator</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>*()</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; <span class="keywordflow">return</span> &amp;(entries[0]);</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;</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</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="l00762"></a><span class="lineno"> 762</span>&#160; {</div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; }</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <a class="code" href="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="l00766"></a><span class="lineno"> 766</span>&#160; {</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</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="l00768"></a><span class="lineno"> 768</span>&#160; }</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</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="l00770"></a><span class="lineno"> 770</span>&#160; {</div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</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="l00772"></a><span class="lineno"> 772</span>&#160; }</div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <a class="code" href="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="l00774"></a><span class="lineno"> 774</span>&#160; {</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</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="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="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="l00779"></a><span class="lineno"> 779</span>&#160; {</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 16, c1);</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="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="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="l00784"></a><span class="lineno"> 784</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 16, c1, c2);</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="l00786"></a><span class="lineno"> 786</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="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;};</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; 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; <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;</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="l00788"></a><span class="lineno"> 788</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 16, c1, c2, c3);</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="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="l00791"></a><span class="lineno"> 791</span>&#160; {</div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 16, c1, c2, c3, c4);</div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; }</div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;</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="comment">// Gradient palettes are loaded into CRGB16Palettes in such a way</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="comment">// that, if possible, every color represented in the gradient palette</span></div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="comment">// is also represented in the CRGBPalette16.</span></div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="comment">// For example, consider a gradient palette that is all black except</span></div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</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="l00801"></a><span class="lineno"> 801</span>&#160; <span class="comment">// 0, 0,0,0</span></div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="comment">// 124, 0,0,0</span></div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="comment">// 125, 255,0,0 // one 1/256th-palette-wide red stripe</span></div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="comment">// 126, 0,0,0</span></div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="comment">// 255, 0,0,0</span></div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</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="l00807"></a><span class="lineno"> 807</span>&#160; <span class="comment">// might accidentally completely eliminate the red spike, rendering the</span></div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <span class="comment">// palette completely black.</span></div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="comment">// However, the conversions provided here would attempt to include a</span></div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</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="l00811"></a><span class="lineno"> 811</span>&#160; <span class="comment">// So in this case, the resulting CRGBPalette16 palette would have a red</span></div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</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="l00813"></a><span class="lineno"> 813</span>&#160; <span class="comment">// narrowest possible in a CRGBPalette16.</span></div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="comment">// This means that the relative width of stripes in a CRGBPalette16</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="comment">// will be, by definition, different from the widths in the gradient</span></div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</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="l00817"></a><span class="lineno"> 817</span>&#160; <span class="comment">// the exact stripe widths at the expense of dropping some colors.</span></div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>( TProgmemRGBGradientPalette_bytes progpal )</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; *<span class="keyword">this</span> = progpal;</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; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; operator=( TProgmemRGBGradientPalette_bytes progpal )</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="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="l00825"></a><span class="lineno"> 825</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="l00826"></a><span class="lineno"> 826</span>&#160;</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="comment">// Count entries</span></div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; uint8_t count = 0;</div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR(progent + count);</div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; count++;;</div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; } <span class="keywordflow">while</span> ( u.index != 255);</div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;</div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; int8_t lastSlotUsed = -1;</div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;</div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</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="l00838"></a><span class="lineno"> 838</span>&#160;</div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; uint8_t istart8 = 0;</div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; uint8_t iend8 = 0;</div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; progent++;</div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</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="l00847"></a><span class="lineno"> 847</span>&#160; istart8 = indexstart / 16;</div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; iend8 = indexend / 16;</div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">if</span>( count &lt; 16) {</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="keywordflow">if</span>( (istart8 &lt;= lastSlotUsed) &amp;&amp; (lastSlotUsed &lt; 15)) {</div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; istart8 = lastSlotUsed + 1;</div>
+<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="keywordflow">if</span>( iend8 &lt; istart8) {</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; iend8 = istart8;</div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; }</div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; }</div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; lastSlotUsed = iend8;</div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; }</div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; fill_gradient_RGB( &amp;(entries[0]), istart8, rgbstart, iend8, rgbend);</div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; rgbstart = rgbend;</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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; }</div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; loadDynamicGradientPalette( TDynamicRGBGradientPalette_bytes gpal )</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="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="l00867"></a><span class="lineno"> 867</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="l00868"></a><span class="lineno"> 868</span>&#160;</div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <span class="comment">// Count entries</span></div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; uint8_t count = 0;</div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; u = *(ent + count);</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; count++;;</div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; } <span class="keywordflow">while</span> ( u.index != 255);</div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;</div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; int8_t lastSlotUsed = -1;</div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;</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; u = *ent;</div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</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="l00881"></a><span class="lineno"> 881</span>&#160;</div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; uint8_t istart8 = 0;</div>
+<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; uint8_t iend8 = 0;</div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; ent++;</div>
+<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; u = *ent;</div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</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="l00890"></a><span class="lineno"> 890</span>&#160; istart8 = indexstart / 16;</div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; iend8 = indexend / 16;</div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <span class="keywordflow">if</span>( count &lt; 16) {</div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">if</span>( (istart8 &lt;= lastSlotUsed) &amp;&amp; (lastSlotUsed &lt; 15)) {</div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; istart8 = lastSlotUsed + 1;</div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keywordflow">if</span>( iend8 &lt; istart8) {</div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; iend8 = istart8;</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; }</div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; lastSlotUsed = iend8;</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; fill_gradient_RGB( &amp;(entries[0]), istart8, rgbstart, iend8, rgbend);</div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; rgbstart = rgbend;</div>
+<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; }</div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</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;</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;</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="l00912"></a><span class="lineno"><a class="line" href="class_c_h_s_v_palette32.html"> 912</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> {</div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <a class="code" href="struct_c_h_s_v.html">CHSV</a> entries[32];</div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>() {};</div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</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="l00917"></a><span class="lineno"> 917</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="l00918"></a><span class="lineno"> 918</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="l00919"></a><span class="lineno"> 919</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="l00920"></a><span class="lineno"> 920</span>&#160; {</div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 2; i++) {</div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; entries[0+i]=c00; entries[2+i]=c01; entries[4+i]=c02; entries[6+i]=c03;</div>
+<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; entries[8+i]=c04; entries[10+i]=c05; entries[12+i]=c06; entries[14+i]=c07;</div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; entries[16+i]=c08; entries[18+i]=c09; entries[20+i]=c10; entries[22+i]=c11;</div>
+<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; entries[24+i]=c12; entries[26+i]=c13; entries[28+i]=c14; entries[30+i]=c15;</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; };</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_h_s_v_palette32.html">CHSVPalette32</a>( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>&amp; rhs)</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; {</div>
+<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</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; <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; <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="l00933"></a><span class="lineno"> 933</span>&#160; <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>&amp; rhs)</div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; {</div>
+<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; }</div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; </div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>( <span class="keyword">const</span> TProgmemHSVPalette32&amp; rhs)</div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; {</div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 32; i++) {</div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</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="l00943"></a><span class="lineno"> 943</span>&#160; entries[i].hue = xyz.red;</div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; entries[i].sat = xyz.green;</div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; entries[i].val = xyz.blue;</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; }</div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>&amp; operator=( <span class="keyword">const</span> TProgmemHSVPalette32&amp; 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; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 32; i++) {</div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</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="l00952"></a><span class="lineno"> 952</span>&#160; entries[i].hue = xyz.red;</div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; entries[i].sat = xyz.green;</div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; entries[i].val = xyz.blue;</div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; }</div>
+<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; }</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; </div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</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="l00960"></a><span class="lineno"> 960</span>&#160; {</div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; }</div>
+<div class="line"><a name="l00963"></a><span class="lineno"> 963</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="l00964"></a><span class="lineno"> 964</span>&#160; {</div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; }</div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; </div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</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="l00969"></a><span class="lineno"> 969</span>&#160; {</div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; }</div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</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="l00973"></a><span class="lineno"> 973</span>&#160; {</div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</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; </div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</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="l00978"></a><span class="lineno"> 978</span>&#160; {</div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; }</div>
+<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; </div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="keywordtype">bool</span> operator==( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> rhs)</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="l00984"></a><span class="lineno"> 984</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="l00985"></a><span class="lineno"> 985</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="l00986"></a><span class="lineno"> 986</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="l00987"></a><span class="lineno"> 987</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="l00988"></a><span class="lineno"> 988</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="l00989"></a><span class="lineno"> 989</span>&#160; p++;</div>
+<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; q++;</div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; }</div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; }</div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <span class="keywordtype">bool</span> operator!=( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> rhs)</div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; {</div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</div>
+<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; }</div>
+<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; </div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</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="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="l01001"></a><span class="lineno"> 1001</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 32, c1);</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="l01003"></a><span class="lineno"> 1003</span>&#160; <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</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="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="l01005"></a><span class="lineno"> 1005</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 32, c1, c2);</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> <a href="pixeltypes_8h_source.html#l00088">pixeltypes.h:88</a></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> <a href="lib8tion_8h_source.html#l00343">lib8tion.h:343</a></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> <a href="colorutils_8h_source.html#l00528">colorutils.h:528</a></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> <a href="colorutils_8h_source.html#l00632">colorutils.h:632</a></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> <a href="lib8tion_8h_source.html#l00324">lib8tion.h:324</a></div></div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</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="l01008"></a><span class="lineno"> 1008</span>&#160; {</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 32, c1, c2, c3);</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; }</div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</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="l01012"></a><span class="lineno"> 1012</span>&#160; {</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 32, c1, c2, c3, c4);</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;};</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;</div>
+<div class="line"><a name="l01018"></a><span class="lineno"><a class="line" href="class_c_r_g_b_palette32.html"> 1018</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> {</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> entries[32];</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>() {};</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</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="l01023"></a><span class="lineno"> 1023</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="l01024"></a><span class="lineno"> 1024</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="l01025"></a><span class="lineno"> 1025</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="l01026"></a><span class="lineno"> 1026</span>&#160; {</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 2; i++) {</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; entries[0+i]=c00; entries[2+i]=c01; entries[4+i]=c02; entries[6+i]=c03;</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; entries[8+i]=c04; entries[10+i]=c05; entries[12+i]=c06; entries[14+i]=c07;</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; entries[16+i]=c08; entries[18+i]=c09; entries[20+i]=c10; entries[22+i]=c11;</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; entries[24+i]=c12; entries[26+i]=c13; entries[28+i]=c14; entries[30+i]=c15;</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; };</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; </div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>&amp; rhs)</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; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; }</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> rhs[32])</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; {</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; }</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>&amp; rhs)</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; {</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> rhs[32])</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; memmove8( &amp;(entries[0]), &amp;(rhs[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>&amp; rhs)</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; {</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 32; i++) {</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; }</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; }</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a> rhs[32])</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; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 32; i++) {</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; entries[i] = rhs[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; }</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; }</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="class_c_h_s_v_palette32.html">CHSVPalette32</a>&amp; rhs)</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; {</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 32; i++) {</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; }</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; }</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a> rhs[32])</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; {</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; <span class="keywordflow">for</span>( uint8_t i = 0; i &lt; 32; i++) {</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; entries[i] = rhs[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; }</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</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; </div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>( <span class="keyword">const</span> TProgmemRGBPalette32&amp; rhs)</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="keywordflow">for</span>( uint8_t i = 0; i &lt; 32; i++) {</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; entries[i] = FL_PGM_READ_DWORD_NEAR( rhs + i);</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; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>&amp; operator=( <span class="keyword">const</span> TProgmemRGBPalette32&amp; rhs)</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="keywordflow">for</span>( uint8_t i = 0; i &lt; 32; i++) {</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; entries[i] = FL_PGM_READ_DWORD_NEAR( rhs + i);</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; }</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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="keywordtype">bool</span> operator==( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> rhs)</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; {</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</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="l01098"></a><span class="lineno"> 1098</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="l01099"></a><span class="lineno"> 1099</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="l01100"></a><span class="lineno"> 1100</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="l01101"></a><span class="lineno"> 1101</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="l01102"></a><span class="lineno"> 1102</span>&#160; p++;</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; q++;</div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; }</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; }</div>
+<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <span class="keywordtype">bool</span> operator!=( <span class="keyword">const</span> <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> rhs)</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; {</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; }</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; </div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</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="l01113"></a><span class="lineno"> 1113</span>&#160; {</div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <span class="keywordflow">return</span> entries[x];</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; <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="l01117"></a><span class="lineno"> 1117</span>&#160; {</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; }</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; </div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</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="l01122"></a><span class="lineno"> 1122</span>&#160; {</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; }</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</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="l01126"></a><span class="lineno"> 1126</span>&#160; {</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; }</div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; </div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; <span class="keyword">operator</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>*()</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="keywordflow">return</span> &amp;(entries[0]);</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; }</div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; </div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</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="l01136"></a><span class="lineno"> 1136</span>&#160; {</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 32, c1);</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; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</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="l01140"></a><span class="lineno"> 1140</span>&#160; {</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 32, c1, c2);</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; }</div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</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="l01144"></a><span class="lineno"> 1144</span>&#160; {</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 32, c1, c2, c3);</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; }</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</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="l01148"></a><span class="lineno"> 1148</span>&#160; {</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; <a class="code" href="group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98">fill_gradient</a>( &amp;(entries[0]), 32, c1, c2, c3, c4);</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; }</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; </div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</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="l01153"></a><span class="lineno"> 1153</span>&#160; {</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 32, c1);</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; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</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="l01157"></a><span class="lineno"> 1157</span>&#160; {</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 32, c1, c2);</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; }</div>
+<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</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="l01161"></a><span class="lineno"> 1161</span>&#160; {</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 32, c1, c2, c3);</div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; }</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</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="l01165"></a><span class="lineno"> 1165</span>&#160; {</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 32, c1, c2, c3, c4);</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; }</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; </div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; </div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</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="l01171"></a><span class="lineno"> 1171</span>&#160; {</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; }</div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</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="l01175"></a><span class="lineno"> 1175</span>&#160; {</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; }</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; </div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; {</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; }</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>&amp; operator=( <span class="keyword">const</span> TProgmemRGBPalette16&amp; rhs)</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; {</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; }</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; </div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; </div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <span class="comment">// Gradient palettes are loaded into CRGB16Palettes in such a way</span></div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; <span class="comment">// that, if possible, every color represented in the gradient palette</span></div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="comment">// is also represented in the CRGBPalette32.</span></div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; <span class="comment">// For example, consider a gradient palette that is all black except</span></div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</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="l01198"></a><span class="lineno"> 1198</span>&#160; <span class="comment">// 0, 0,0,0</span></div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <span class="comment">// 124, 0,0,0</span></div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; <span class="comment">// 125, 255,0,0 // one 1/256th-palette-wide red stripe</span></div>
+<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; <span class="comment">// 126, 0,0,0</span></div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; <span class="comment">// 255, 0,0,0</span></div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</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="l01204"></a><span class="lineno"> 1204</span>&#160; <span class="comment">// might accidentally completely eliminate the red spike, rendering the</span></div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <span class="comment">// palette completely black.</span></div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; <span class="comment">// However, the conversions provided here would attempt to include a</span></div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</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="l01208"></a><span class="lineno"> 1208</span>&#160; <span class="comment">// So in this case, the resulting CRGBPalette32 palette would have a red</span></div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</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="l01210"></a><span class="lineno"> 1210</span>&#160; <span class="comment">// narrowest possible in a CRGBPalette32.</span></div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; <span class="comment">// This means that the relative width of stripes in a CRGBPalette32</span></div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; <span class="comment">// will be, by definition, different from the widths in the gradient</span></div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</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="l01214"></a><span class="lineno"> 1214</span>&#160; <span class="comment">// the exact stripe widths at the expense of dropping some colors.</span></div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>( TProgmemRGBGradientPalette_bytes progpal )</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; {</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; *<span class="keyword">this</span> = progpal;</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; }</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>&amp; operator=( TProgmemRGBGradientPalette_bytes progpal )</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; {</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</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="l01222"></a><span class="lineno"> 1222</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="l01223"></a><span class="lineno"> 1223</span>&#160; </div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; <span class="comment">// Count entries</span></div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; uint8_t count = 0;</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR(progent + count);</div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; count++;;</div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; } <span class="keywordflow">while</span> ( u.index != 255);</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; </div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; int8_t lastSlotUsed = -1;</div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; </div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</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="l01235"></a><span class="lineno"> 1235</span>&#160; </div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; uint8_t istart8 = 0;</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; uint8_t iend8 = 0;</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160; progent++;</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</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="l01244"></a><span class="lineno"> 1244</span>&#160; istart8 = indexstart / 8;</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; iend8 = indexend / 8;</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; <span class="keywordflow">if</span>( count &lt; 16) {</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; <span class="keywordflow">if</span>( (istart8 &lt;= lastSlotUsed) &amp;&amp; (lastSlotUsed &lt; 31)) {</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; istart8 = lastSlotUsed + 1;</div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; <span class="keywordflow">if</span>( iend8 &lt; istart8) {</div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; iend8 = istart8;</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; }</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; }</div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; lastSlotUsed = iend8;</div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; }</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; fill_gradient_RGB( &amp;(entries[0]), istart8, rgbstart, iend8, rgbend);</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; rgbstart = rgbend;</div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; }</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; }</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; <a class="code" href="class_c_r_g_b_palette32.html">CRGBPalette32</a>&amp; loadDynamicGradientPalette( TDynamicRGBGradientPalette_bytes gpal )</div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; {</div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</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="l01264"></a><span class="lineno"> 1264</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="l01265"></a><span class="lineno"> 1265</span>&#160; </div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; <span class="comment">// Count entries</span></div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; uint8_t count = 0;</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; u = *(ent + count);</div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; count++;;</div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; } <span class="keywordflow">while</span> ( u.index != 255);</div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; </div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; int8_t lastSlotUsed = -1;</div>
+<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; </div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; </div>
+<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; u = *ent;</div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</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="l01278"></a><span class="lineno"> 1278</span>&#160; </div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; uint8_t istart8 = 0;</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; uint8_t iend8 = 0;</div>
+<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; ent++;</div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; u = *ent;</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l01286"></a><span class="lineno"> 1286</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="l01287"></a><span class="lineno"> 1287</span>&#160; istart8 = indexstart / 8;</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; iend8 = indexend / 8;</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; <span class="keywordflow">if</span>( count &lt; 16) {</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160; <span class="keywordflow">if</span>( (istart8 &lt;= lastSlotUsed) &amp;&amp; (lastSlotUsed &lt; 31)) {</div>
+<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; istart8 = lastSlotUsed + 1;</div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; <span class="keywordflow">if</span>( iend8 &lt; istart8) {</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; iend8 = istart8;</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; }</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; }</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; lastSlotUsed = iend8;</div>
+<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; }</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; fill_gradient_RGB( &amp;(entries[0]), istart8, rgbstart, iend8, rgbend);</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; rgbstart = rgbend;</div>
+<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; }</div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; }</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; </div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;};</div>
+<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;</div>
+<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;</div>
+<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;</div>
+<div class="line"><a name="l01309"></a><span class="lineno"><a class="line" href="class_c_r_g_b_palette256.html"> 1309</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="l01310"></a><span class="lineno"> 1310</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> entries[256];</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>() {};</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</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="l01314"></a><span class="lineno"> 1314</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="l01315"></a><span class="lineno"> 1315</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="l01316"></a><span class="lineno"> 1316</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="l01317"></a><span class="lineno"> 1317</span>&#160; {</div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</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="l01319"></a><span class="lineno"> 1319</span>&#160; c08,c09,c10,c11,c12,c13,c14,c15);</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; };</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;</div>
+<div class="line"><a name="l01323"></a><span class="lineno"> 1323</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="l01324"></a><span class="lineno"> 1324</span>&#160; {</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; }</div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</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> rhs[256])</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; {</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; }</div>
+<div class="line"><a name="l01331"></a><span class="lineno"> 1331</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="l01332"></a><span class="lineno"> 1332</span>&#160; {</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs.entries[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; }</div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</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="struct_c_r_g_b.html">CRGB</a> rhs[256])</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; {</div>
+<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; memmove8( &amp;(entries[0]), &amp;(rhs[0]), <span class="keyword">sizeof</span>( entries));</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160; }</div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;</div>
+<div class="line"><a name="l01342"></a><span class="lineno"> 1342</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="l01343"></a><span class="lineno"> 1343</span>&#160; {</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160; }</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; }</div>
+<div class="line"><a name="l01348"></a><span class="lineno"> 1348</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> rhs[256])</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; {</div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; entries[i] = rhs[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; }</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; }</div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</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="l01355"></a><span class="lineno"> 1355</span>&#160; {</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; entries[i] = rhs.entries[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; }</div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; }</div>
+<div class="line"><a name="l01361"></a><span class="lineno"> 1361</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="struct_c_h_s_v.html">CHSV</a> rhs[256])</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; {</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; 256; i++) {</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; entries[i] = rhs[i]; <span class="comment">// implicit HSV-to-RGB conversion</span></div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; }</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; }</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</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="l01370"></a><span class="lineno"> 1370</span>&#160; {</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; }</div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</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="l01374"></a><span class="lineno"> 1374</span>&#160; {</div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; UpscalePalette( rhs16, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; }</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;</div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</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="l01380"></a><span class="lineno"> 1380</span>&#160; {</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; }</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</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="l01385"></a><span class="lineno"> 1385</span>&#160; {</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> p16(rhs);</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; *<span class="keyword">this</span> = p16;</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; }</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</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="l01392"></a><span class="lineno"> 1392</span>&#160; {</div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</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="l01394"></a><span class="lineno"> 1394</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="l01395"></a><span class="lineno"> 1395</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="l01396"></a><span class="lineno"> 1396</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="l01397"></a><span class="lineno"> 1397</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="l01398"></a><span class="lineno"> 1398</span>&#160; p++;</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; q++;</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; }</div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160; }</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</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="l01404"></a><span class="lineno"> 1404</span>&#160; {</div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; <span class="keywordflow">return</span> !( *<span class="keyword">this</span> == rhs);</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; }</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; </div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</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="l01409"></a><span class="lineno"> 1409</span>&#160; {</div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; }</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</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="l01413"></a><span class="lineno"> 1413</span>&#160; {</div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160; <span class="keywordflow">return</span> entries[x];</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; }</div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;</div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</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="l01418"></a><span class="lineno"> 1418</span>&#160; {</div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; }</div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</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="l01422"></a><span class="lineno"> 1422</span>&#160; {</div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; <span class="keywordflow">return</span> entries[(uint8_t)x];</div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; }</div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;</div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</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="l01427"></a><span class="lineno"> 1427</span>&#160; {</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; <span class="keywordflow">return</span> &amp;(entries[0]);</div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; }</div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;</div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</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="l01432"></a><span class="lineno"> 1432</span>&#160; {</div>
+<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; }</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</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="l01436"></a><span class="lineno"> 1436</span>&#160; {</div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</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="l01438"></a><span class="lineno"> 1438</span>&#160; }</div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</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="l01440"></a><span class="lineno"> 1440</span>&#160; {</div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</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="l01442"></a><span class="lineno"> 1442</span>&#160; }</div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</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="l01444"></a><span class="lineno"> 1444</span>&#160; {</div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</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="l01446"></a><span class="lineno"> 1446</span>&#160; }</div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;</div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</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="l01449"></a><span class="lineno"> 1449</span>&#160; {</div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160; <a class="code" href="group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b">fill_solid</a>( &amp;(entries[0]), 256, c1);</div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; }</div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</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="l01453"></a><span class="lineno"> 1453</span>&#160; {</div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 256, c1, c2);</div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; }</div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</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="l01457"></a><span class="lineno"> 1457</span>&#160; {</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 256, c1, c2, c3);</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160; }</div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</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="l01461"></a><span class="lineno"> 1461</span>&#160; {</div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160; fill_gradient_RGB( &amp;(entries[0]), 256, c1, c2, c3, c4);</div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; }</div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;</div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160; <a class="code" href="class_c_r_g_b_palette256.html">CRGBPalette256</a>( TProgmemRGBGradientPalette_bytes progpal )</div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; {</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; *<span class="keyword">this</span> = progpal;</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; }</div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</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="l01470"></a><span class="lineno"> 1470</span>&#160; {</div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</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="l01472"></a><span class="lineno"> 1472</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="l01473"></a><span class="lineno"> 1473</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</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="l01475"></a><span class="lineno"> 1475</span>&#160;</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; progent++;</div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; u.dword = FL_PGM_READ_DWORD_NEAR( progent);</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</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="l01482"></a><span class="lineno"> 1482</span>&#160; fill_gradient_RGB( &amp;(entries[0]), indexstart, rgbstart, indexend, rgbend);</div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; rgbstart = rgbend;</div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; }</div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; }</div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</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="l01489"></a><span class="lineno"> 1489</span>&#160; {</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</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="l01491"></a><span class="lineno"> 1491</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="l01492"></a><span class="lineno"> 1492</span>&#160; u = *ent;</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</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="l01494"></a><span class="lineno"> 1494</span>&#160;</div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160; <span class="keywordtype">int</span> indexstart = 0;</div>
+<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160; <span class="keywordflow">while</span>( indexstart &lt; 255) {</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160; ent++;</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160; u = *ent;</div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; <span class="keywordtype">int</span> indexend = u.index;</div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</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="l01501"></a><span class="lineno"> 1501</span>&#160; fill_gradient_RGB( &amp;(entries[0]), indexstart, rgbstart, indexend, rgbend);</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160; indexstart = indexend;</div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160; rgbstart = rgbend;</div>
+<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; }</div>
+<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160; }</div>
+<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;};</div>
+<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;</div>
+<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;</div>
+<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;</div>
+<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> { NOBLEND=0, LINEARBLEND=1 } TBlendType;</div>
+<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;</div>
+<div class="line"><a name="l01513"></a><span class="lineno"> 1513</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="l01514"></a><span class="lineno"> 1514</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;</div>
+<div class="line"><a name="l01518"></a><span class="lineno"> 1518</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="l01519"></a><span class="lineno"> 1519</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;</div>
+<div class="line"><a name="l01523"></a><span class="lineno"> 1523</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="l01524"></a><span class="lineno"> 1524</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160; TBlendType blendType=NOBLEND );</div>
+<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;</div>
+<div class="line"><a name="l01528"></a><span class="lineno"> 1528</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="l01529"></a><span class="lineno"> 1529</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;</div>
+<div class="line"><a name="l01533"></a><span class="lineno"> 1533</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="l01534"></a><span class="lineno"> 1534</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160; TBlendType blendType=NOBLEND );</div>
+<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;</div>
+<div class="line"><a name="l01538"></a><span class="lineno"> 1538</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_palette32.html">CRGBPalette32</a>&amp; pal,</div>
+<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;</div>
+<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160;<a class="code" href="struct_c_r_g_b.html">CRGB</a> ColorFromPalette( <span class="keyword">const</span> TProgmemRGBPalette32&amp; pal,</div>
+<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;</div>
+<div class="line"><a name="l01548"></a><span class="lineno"> 1548</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_palette32.html">CHSVPalette32</a>&amp; pal,</div>
+<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; uint8_t index,</div>
+<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160; TBlendType blendType=LINEARBLEND);</div>
+<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;</div>
+<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;</div>
+<div class="line"><a name="l01554"></a><span class="lineno"> 1554</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="l01555"></a><span class="lineno"> 1555</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> PALETTE&gt;</div>
+<div class="line"><a name="l01556"></a><span class="lineno"> 1556</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="l01557"></a><span class="lineno"> 1557</span>&#160; <span class="keyword">const</span> PALETTE&amp; pal, uint8_t brightness, TBlendType blendType)</div>
+<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;{</div>
+<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160; uint8_t colorIndex = startIndex;</div>
+<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; N; i++) {</div>
+<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160; L[i] = ColorFromPalette( pal, colorIndex, brightness, blendType);</div>
+<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160; colorIndex += incIndex;</div>
+<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160; }</div>
+<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;}</div>
+<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;</div>
+<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> PALETTE&gt;</div>
+<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;<span class="keywordtype">void</span> map_data_into_colors_through_palette(</div>
+<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160; uint8_t *dataArray, uint16_t dataCount,</div>
+<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a>* targetColorArray,</div>
+<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; <span class="keyword">const</span> PALETTE&amp; pal,</div>
+<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; uint8_t brightness=255,</div>
+<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; uint8_t opacity=255,</div>
+<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; TBlendType blendType=LINEARBLEND)</div>
+<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160;{</div>
+<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160; <span class="keywordflow">for</span>( uint16_t i = 0; i &lt; dataCount; i++) {</div>
+<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; uint8_t d = dataArray[i];</div>
+<div class="line"><a name="l01577"></a><span class="lineno"> 1577</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="l01578"></a><span class="lineno"> 1578</span>&#160; <span class="keywordflow">if</span>( opacity == 255 ) {</div>
+<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; targetColorArray[i] = rgb;</div>
+<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160; targetColorArray[i].nscale8( 256 - opacity);</div>
+<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160; rgb.nscale8_video( opacity);</div>
+<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160; targetColorArray[i] += rgb;</div>
+<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160; }</div>
+<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160; }</div>
+<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;}</div>
+<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;</div>
+<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;<span class="comment">// nblendPaletteTowardPalette:</span></div>
+<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;<span class="comment">// Alter one palette by making it slightly more like</span></div>
+<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;<span class="comment">// a &#39;target palette&#39;, used for palette cross-fades.</span></div>
+<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01592"></a><span class="lineno"> 1592</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="l01593"></a><span class="lineno"> 1593</span>&#160;<span class="comment">// of each entry in the current palette to the corresponding</span></div>
+<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;<span class="comment">// entry in the target palette and making small adjustments:</span></div>
+<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;<span class="comment">// If the Red channel is too low, it will be increased.</span></div>
+<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;<span class="comment">// If the Red channel is too high, it will be slightly reduced.</span></div>
+<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;<span class="comment">// ... and likewise for Green and Blue channels.</span></div>
+<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;<span class="comment">// Additionally, there are two significant visual improvements</span></div>
+<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;<span class="comment">// to this algorithm implemented here. First is this:</span></div>
+<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;<span class="comment">// When increasing a channel, it is stepped up by ONE.</span></div>
+<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;<span class="comment">// When decreasing a channel, it is stepped down by TWO.</span></div>
+<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;<span class="comment">// Due to the way the eye perceives light, and the way colors</span></div>
+<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;<span class="comment">// are represented in RGB, this produces a more uniform apparent</span></div>
+<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;<span class="comment">// brightness when cross-fading between most palette colors.</span></div>
+<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;<span class="comment">// The second visual tweak is limiting the number of changes</span></div>
+<div class="line"><a name="l01608"></a><span class="lineno"> 1608</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="l01609"></a><span class="lineno"> 1609</span>&#160;<span class="comment">// entries are changed at once, it can give a muddled appearance.</span></div>
+<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;<span class="comment">// However, if only a few palette entries are changed at once,</span></div>
+<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;<span class="comment">// you get a visually smoother transition: in the middle of the</span></div>
+<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;<span class="comment">// cross-fade your current palette will actually contain some</span></div>
+<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;<span class="comment">// colors from the old palette, a few blended colors, and some</span></div>
+<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;<span class="comment">// colors from the new palette.</span></div>
+<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;<span class="comment">// The maximum number of possible palette changes per call</span></div>
+<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;<span class="comment">// is 48 (sixteen color entries time three channels each).</span></div>
+<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;<span class="comment">// The default &#39;maximim number of changes&#39; here is 12, meaning</span></div>
+<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;<span class="comment">// that only approximately a quarter of the palette entries</span></div>
+<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;<span class="comment">// will be changed per call.</span></div>
+<div class="line"><a name="l01620"></a><span class="lineno"> 1620</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="l01621"></a><span class="lineno"> 1621</span>&#160; <a class="code" href="class_c_r_g_b_palette16.html">CRGBPalette16</a>&amp; targetPalette,</div>
+<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160; uint8_t maxChanges=24);</div>
+<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;</div>
+<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;</div>
+<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;</div>
+<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;</div>
+<div class="line"><a name="l01627"></a><span class="lineno"> 1627</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="l01628"></a><span class="lineno"> 1628</span>&#160;<span class="comment">// of connected color gradients.</span></div>
+<div class="line"><a name="l01629"></a><span class="lineno"> 1629</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="l01630"></a><span class="lineno"> 1630</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="l01631"></a><span class="lineno"> 1631</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="l01632"></a><span class="lineno"> 1632</span>&#160;<span class="comment">// starting black point (at index 0), the red midpoint (at index 192),</span></div>
+<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;<span class="comment">// and the final white point (at index 255). It looks like this:</span></div>
+<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;<span class="comment">// index: 0 192 255</span></div>
+<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;<span class="comment">// |----------r-r-r-rrrrrrrrRrRrRrRrRRRR-|-RRWRWWRWWW-|</span></div>
+<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;<span class="comment">// color: (0,0,0) (255,0,0) (255,255,255)</span></div>
+<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;<span class="comment">// Here&#39;s how you&#39;d define that gradient palette:</span></div>
+<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;<span class="comment">// DEFINE_GRADIENT_PALETTE( black_to_red_to_white_p ) {</span></div>
+<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;<span class="comment">// 0, 0, 0, 0, /* at index 0, black(0,0,0) */</span></div>
+<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;<span class="comment">// 192, 255, 0, 0, /* at index 192, red(255,0,0) */</span></div>
+<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;<span class="comment">// 255, 255,255,255 /* at index 255, white(255,255,255) */</span></div>
+<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;<span class="comment">// };</span></div>
+<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;<span class="comment">// This format is designed for compact storage. The example palette here</span></div>
+<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;<span class="comment">// takes up just 12 bytes of PROGMEM (flash) storage, and zero bytes</span></div>
+<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;<span class="comment">// of SRAM when not currently in use.</span></div>
+<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;<span class="comment">// To use one of these gradient palettes, simply assign it into a</span></div>
+<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;<span class="comment">// CRGBPalette16 or a CRGBPalette256, like this:</span></div>
+<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;<span class="comment">// CRGBPalette16 pal = black_to_red_to_white_p;</span></div>
+<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;<span class="comment">// When the assignment is made, the gradients are expanded out into</span></div>
+<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;<span class="comment">// either 16 or 256 palette entries, depending on the kind of palette</span></div>
+<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;<span class="comment">// object they&#39;re assigned to.</span></div>
+<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;<span class="comment">// IMPORTANT NOTES &amp; CAVEATS:</span></div>
+<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01662"></a><span class="lineno"> 1662</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="l01663"></a><span class="lineno"> 1663</span>&#160;<span class="comment">// index 255 will result in program hangs or crashes.</span></div>
+<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;<span class="comment">// - At this point, these gradient palette definitions MUST BE</span></div>
+<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;<span class="comment">// stored in PROGMEM on AVR-based Arduinos. If you use the</span></div>
+<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;<span class="comment">// DEFINE_GRADIENT_PALETTE macro, this is taken care of automatically.</span></div>
+<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;</div>
+<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;<span class="preprocessor">#define DEFINE_GRADIENT_PALETTE(X) \</span></div>
+<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;<span class="preprocessor"> extern const TProgmemRGBGradientPalette_byte X[] FL_PROGMEM =</span></div>
+<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;</div>
+<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;<span class="preprocessor">#define DECLARE_GRADIENT_PALETTE(X) \</span></div>
+<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;<span class="preprocessor"> extern const TProgmemRGBGradientPalette_byte X[] FL_PROGMEM</span></div>
+<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;</div>
+<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;</div>
+<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;<span class="comment">// Functions to apply gamma adjustments, either:</span></div>
+<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;<span class="comment">// - a single gamma adjustment to a single scalar value,</span></div>
+<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;<span class="comment">// - a single gamma adjustment to each channel of a CRGB color, or</span></div>
+<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;<span class="comment">// - different gamma adjustments for each channel of a CRFB color.</span></div>
+<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;<span class="comment">// Note that the gamma is specified as a traditional floating point value</span></div>
+<div class="line"><a name="l01683"></a><span class="lineno"> 1683</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="l01684"></a><span class="lineno"> 1684</span>&#160;<span class="comment">// your innermost pixel loops, or in animations that are extremely</span></div>
+<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;<span class="comment">// low on program storage space. Nevertheless, if you need these</span></div>
+<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;<span class="comment">// functions, here they are.</span></div>
+<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;<span class="comment">// Furthermore, bear in mind that CRGB leds have only eight bits</span></div>
+<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;<span class="comment">// per channel of color resolution, and that very small, subtle shadings</span></div>
+<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;<span class="comment">// may not be visible.</span></div>
+<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160;uint8_t applyGamma_video( uint8_t brightness, <span class="keywordtype">float</span> gamma);</div>
+<div class="line"><a name="l01692"></a><span class="lineno"> 1692</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="l01693"></a><span class="lineno"> 1693</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="l01694"></a><span class="lineno"> 1694</span>&#160;<span class="comment">// The &quot;n&quot; versions below modify their arguments in-place.</span></div>
+<div class="line"><a name="l01695"></a><span class="lineno"> 1695</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="l01696"></a><span class="lineno"> 1696</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="l01697"></a><span class="lineno"> 1697</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="l01698"></a><span class="lineno"> 1698</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="l01699"></a><span class="lineno"> 1699</span>&#160;</div>
+<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;</div>
+<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160;</div>
+<div class="line"><a name="l01704"></a><span class="lineno"> 1704</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> <a href="pixeltypes_8h_source.html#l00090">pixeltypes.h:90</a></div></div>
+<div class="ttc" id="class_c_r_g_b_palette32_html"><div class="ttname"><a href="class_c_r_g_b_palette32.html">CRGBPalette32</a></div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8h_source.html#l01018">colorutils.h:1018</a></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> <a href="lib8tion_8h_source.html#l00353">lib8tion.h:353</a></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> <a href="colorutils_8h_source.html#l00542">colorutils.h:542</a></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> <a href="colorutils_8h_source.html#l00646">colorutils.h:646</a></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> <a href="lib8tion_8h_source.html#l00334">lib8tion.h:334</a></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> <a href="colorutils_8cpp_source.html#l00035">colorutils.cpp:35</a></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> <a href="colorutils_8h_source.html#l00093">colorutils.h:93</a></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> <a href="colorutils_8h_source.html#l00424">colorutils.h:424</a></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> <a href="colorutils_8h_source.html#l00874">colorutils.h:874</a></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> <a href="fastled__delay_8h_source.html#l00085">fastled_delay.h:85</a></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> <a href="pixeltypes_8h_source.html#l00021">pixeltypes.h:21</a></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> <a href="colorutils_8h_source.html#l00094">colorutils.h:94</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
+<div class="ttc" id="class_c_h_s_v_palette32_html"><div class="ttname"><a href="class_c_h_s_v_palette32.html">CHSVPalette32</a></div><div class="ttdef"><b>Definition:</b> <a href="colorutils_8h_source.html#l00912">colorutils.h:912</a></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> <a href="colorutils_8h_source.html#l00438">colorutils.h:438</a></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> <a href="colorutils_8h_source.html#l01309">colorutils.h:1309</a></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> <a href="fastled__delay_8h_source.html#l00092">fastled_delay.h:92</a></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> <a href="pixeltypes_8h_source.html#l00023">pixeltypes.h:23</a></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> <a href="colorutils_8cpp_source.html#l00012">colorutils.cpp:12</a></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> <a href="lib8tion_8h_source.html#l00743">lib8tion.h:743</a></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> <a href="lib8tion_8h_source.html#l00753">lib8tion.h:753</a></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> <a href="colorutils_8h_source.html#l00404">colorutils.h:404</a></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> <a href="colorutils_8h_source.html#l00410">colorutils.h:410</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="colorutils_8h.html">colorutils.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:35 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/controller_8h.html b/docs/3.1/controller_8h.html
index 3fa09f3b..1743b952 100644
--- a/docs/3.1/controller_8h.html
+++ b/docs/3.1/controller_8h.html
@@ -123,10 +123,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_c_l_e_d_controller.html">CLEDController</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base definition for an LED controller. <a href="class_c_l_e_d_controller.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td></tr>
-<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pixel controller class. <a href="struct_pixel_controller.html#details">More...</a><br /></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &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">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_multi_pixel_controller.html">MultiPixelController&lt; LANES, MASK, RGB_ORDER &gt;</a></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_c_pixel_l_e_d_controller.html">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;</a></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>
@@ -145,7 +144,7 @@ typedef uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>EDitherMod
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="controller_8h.html">controller.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/controller_8h.js b/docs/3.1/controller_8h.js
index 728ecb93..2a49e5c4 100644
--- a/docs/3.1/controller_8h.js
+++ b/docs/3.1/controller_8h.js
@@ -2,6 +2,6 @@ var controller_8h =
[
[ "CLEDController", "class_c_l_e_d_controller.html", "class_c_l_e_d_controller" ],
[ "PixelController", "struct_pixel_controller.html", "struct_pixel_controller" ],
- [ "MultiPixelController", "struct_multi_pixel_controller.html", "struct_multi_pixel_controller" ],
+ [ "CPixelLEDController", "class_c_pixel_l_e_d_controller.html", "class_c_pixel_l_e_d_controller" ],
[ "EDitherMode", "controller_8h.html#a685662f0b6e22bfab012e574168ba5c9", null ]
]; \ No newline at end of file
diff --git a/docs/3.1/controller_8h_source.html b/docs/3.1/controller_8h_source.html
index a1f76edd..64af6c16 100644
--- a/docs/3.1/controller_8h_source.html
+++ b/docs/3.1/controller_8h_source.html
@@ -113,582 +113,404 @@ $(document).ready(function(){initNavTree('controller_8h_source.html','');});
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_CONTROLLER_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;led_sysdefs.h&quot;</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;pixeltypes.h&quot;</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="color_8h.html">color.h</a>&quot;</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;FASTLED_NAMESPACE_BEGIN</div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define RO(X) RGB_BYTE(RGB_ORDER, X)</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#define RGB_BYTE(RO,X) (((RO)&gt;&gt;(3*(2-(X)))) &amp; 0x3)</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define RGB_BYTE0(RO) ((RO&gt;&gt;6) &amp; 0x3)</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define RGB_BYTE1(RO) ((RO&gt;&gt;3) &amp; 0x3)</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#define RGB_BYTE2(RO) ((RO) &amp; 0x3)</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// operator byte *(struct CRGB[] arr) { return (byte*)arr; }</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#define DISABLE_DITHER 0x00</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#define BINARY_DITHER 0x01</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">typedef</span> uint8_t EDitherMode;</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="comment">//</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// LED Controller interface definition</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html"> 37</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_c_fast_l_e_d.html">CFastLED</a>;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> *m_Data;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *m_pNext;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> m_ColorCorrection;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> m_ColorTemperature;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; EDitherMode m_DitherMode;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">int</span> m_nLeds;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *m_pHead;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *m_pTail;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">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) = 0;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">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) = 0;</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="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// as above, but every 4th uint8_t is assumed to be alpha channel data, and will be skipped</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">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) = 0;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32"> 67</a></span>&#160; <a class="code" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a>() : m_Data(NULL), m_ColorCorrection(<a class="code" href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af964ffff5f2977a60a83aa3f9f8b4368">UncorrectedColor</a>), m_ColorTemperature(<a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae3d35275ab8c374612bcfbcce732b39f">UncorrectedTemperature</a>), m_DitherMode(BINARY_DITHER), m_nLeds(0) {</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_pNext = NULL;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(m_pHead==NULL) { m_pHead = <span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span>(m_pTail != NULL) { m_pTail-&gt;m_pNext = <span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_pTail = <span class="keyword">this</span>;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;led_sysdefs.h&quot;</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;pixeltypes.h&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="color_8h.html">color.h</a>&quot;</span></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 RO(X) RGB_BYTE(RGB_ORDER, X)</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define RGB_BYTE(RO,X) (((RO)&gt;&gt;(3*(2-(X)))) &amp; 0x3)</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define RGB_BYTE0(RO) ((RO&gt;&gt;6) &amp; 0x3)</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#define RGB_BYTE1(RO) ((RO&gt;&gt;3) &amp; 0x3)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define RGB_BYTE2(RO) ((RO) &amp; 0x3)</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">// operator byte *(struct CRGB[] arr) { return (byte*)arr; }</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#define DISABLE_DITHER 0x00</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#define BINARY_DITHER 0x01</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">typedef</span> uint8_t EDitherMode;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</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">// LED Controller interface definition</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="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html"> 38</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_c_fast_l_e_d.html">CFastLED</a>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> *m_Data;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *m_pNext;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> m_ColorCorrection;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> m_ColorTemperature;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; EDitherMode m_DitherMode;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">int</span> m_nLeds;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *m_pHead;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *m_pTail;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">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) = 0;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">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) = 0;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32"> 64</a></span>&#160; <a class="code" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a>() : m_Data(NULL), m_ColorCorrection(<a class="code" href="group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af964ffff5f2977a60a83aa3f9f8b4368">UncorrectedColor</a>), m_ColorTemperature(<a class="code" href="group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae3d35275ab8c374612bcfbcce732b39f">UncorrectedTemperature</a>), m_DitherMode(BINARY_DITHER), m_nLeds(0) {</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; m_pNext = NULL;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(m_pHead==NULL) { m_pHead = <span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span>(m_pTail != NULL) { m_pTail-&gt;m_pNext = <span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_pTail = <span class="keyword">this</span>;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#af877a15a5ec452780fbd1d359b8a9913">init</a>() = 0;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#af877a15a5ec452780fbd1d359b8a9913">init</a>() = 0;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2"> 75</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">clearLeds</a>(<span class="keywordtype">int</span> nLeds) { <a class="code" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">showColor</a>(CRGB::Black, nLeds, CRGB::Black); }</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#adfa6601c84fefd733904b32ac98b6dae">clearLeds</a>(<span class="keywordtype">int</span> nLeds) = 0;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb"> 81</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">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, uint8_t brightness) {</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">show</a>(data, nLeds, <a class="code" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(brightness));</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="l00086"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b"> 86</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">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, uint8_t brightness) {</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">showColor</a>(data, nLeds, <a class="code" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(brightness));</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;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076"> 91</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255) {</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">show</a>(m_Data, m_nLeds, <a class="code" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(brightness));</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;</div>
-<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4"> 96</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">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, uint8_t brightness=255) {</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">showColor</a>(data, m_nLeds, <a class="code" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(brightness));</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="l00101"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0"> 101</a></span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *<a class="code" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>() { <span class="keywordflow">return</span> m_pHead; }</div>
-<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565"> 103</a></span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *<a class="code" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>() { <span class="keywordflow">return</span> m_pNext; }</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"> #ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// as above, but every 4th uint8_t is assumed to be alpha channel data, and will be skipped</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> CARGB *data, <span class="keywordtype">int</span> nLeds, uint8_t brightness) {</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">show</a>(data, nLeds, <a class="code" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(brightness))</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="preprocessor">#endif</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037"> 113</a></span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp; <a class="code" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; m_Data = data;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_nLeds = nLeds;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb"> 78</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb">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, uint8_t brightness) {</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">show</a>(data, nLeds, <a class="code" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(brightness));</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b"> 83</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b">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, uint8_t brightness) {</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">showColor</a>(data, nLeds, <a class="code" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(brightness));</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="l00088"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076"> 88</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">showLeds</a>(uint8_t brightness=255) {</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">show</a>(m_Data, m_nLeds, <a class="code" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(brightness));</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;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4"> 93</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">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, uint8_t brightness=255) {</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">showColor</a>(data, m_nLeds, <a class="code" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb">getAdjustment</a>(brightness));</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0"> 98</a></span>&#160; <span class="keyword">static</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *<a class="code" href="class_c_l_e_d_controller.html#a75a5a6ea50899409d875d72393323ca0">head</a>() { <span class="keywordflow">return</span> m_pHead; }</div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565"> 100</a></span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> *<a class="code" href="class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565">next</a>() { <span class="keywordflow">return</span> m_pNext; }</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037"> 103</a></span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp; <a class="code" href="class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037">setLeds</a>(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds) {</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; m_Data = data;</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; m_nLeds = nLeds;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</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;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52"> 110</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a>() {</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">if</span>(m_Data) {</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; memset8((<span class="keywordtype">void</span>*)m_Data, 0, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>) * m_nLeds);</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e"> 117</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="l00118"></a><span class="lineno"> 118</span>&#160;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52"> 120</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">clearLedData</a>() {</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span>(m_Data) {</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; memset8((<span class="keywordtype">void</span>*)m_Data, 0, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>) * m_nLeds);</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;</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>
-<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a"> 133</a></span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp;<a class="code" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(<span class="keywordtype">int</span> x) { <span class="keywordflow">return</span> m_Data[x]; }</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517"> 136</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp; <a class="code" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode = BINARY_DITHER) { m_DitherMode = ditherMode; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7"> 138</a></span>&#160; <span class="keyword">inline</span> uint8_t <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>() { <span class="keywordflow">return</span> m_DitherMode; }</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
-<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8"> 141</a></span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp; <a class="code" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(<a class="code" href="struct_c_r_g_b.html">CRGB</a> correction) { m_ColorCorrection = correction; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9"> 143</a></span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp; <a class="code" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(<a class="code" href="group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8">LEDColorCorrection</a> correction) { m_ColorCorrection = correction; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c"> 145</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#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>() { <span class="keywordflow">return</span> m_ColorCorrection; }</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
-<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883"> 148</a></span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp; <a class="code" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(<a class="code" href="struct_c_r_g_b.html">CRGB</a> temperature) { m_ColorTemperature = temperature; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4"> 150</a></span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp; <a class="code" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(<a class="code" href="group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9">ColorTemperature</a> temperature) { m_ColorTemperature = temperature; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<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="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="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="l00120"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399"> 120</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="l00121"></a><span class="lineno"> 121</span>&#160;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a"> 123</a></span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp;<a class="code" href="class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a">operator[]</a>(<span class="keywordtype">int</span> x) { <span class="keywordflow">return</span> m_Data[x]; }</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517"> 126</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp; <a class="code" href="class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517">setDither</a>(uint8_t ditherMode = BINARY_DITHER) { m_DitherMode = ditherMode; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7"> 128</a></span>&#160; <span class="keyword">inline</span> uint8_t <a class="code" href="class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7">getDither</a>() { <span class="keywordflow">return</span> m_DitherMode; }</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8"> 131</a></span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp; <a class="code" href="class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8">setCorrection</a>(<a class="code" href="struct_c_r_g_b.html">CRGB</a> correction) { m_ColorCorrection = correction; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9"> 133</a></span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp; <a class="code" href="class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9">setCorrection</a>(<a class="code" href="group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8">LEDColorCorrection</a> correction) { m_ColorCorrection = correction; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c"> 135</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#a168c661bb9b4a5dfc797b69d3900b26c">getCorrection</a>() { <span class="keywordflow">return</span> m_ColorCorrection; }</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883"> 138</a></span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp; <a class="code" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">setTemperature</a>(<a class="code" href="struct_c_r_g_b.html">CRGB</a> temperature) { m_ColorTemperature = temperature; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4"> 140</a></span>&#160; <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> &amp; <a class="code" href="class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4">setTemperature</a>(<a class="code" href="group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9">ColorTemperature</a> temperature) { m_ColorTemperature = temperature; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d"> 142</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="l00143"></a><span class="lineno"> 143</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb"> 145</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="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> computeAdjustment(scale, m_ColorCorrection, m_ColorTemperature);</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="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="l00150"></a><span class="lineno"> 150</span>&#160;<span class="preprocessor"> #if defined(NO_CORRECTION) &amp;&amp; (NO_CORRECTION==1)</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</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="l00152"></a><span class="lineno"> 152</span>&#160;<span class="preprocessor"> #else</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> adj(0,0,0);</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span>(scale &gt; 0) {</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">for</span>(uint8_t i = 0; i &lt; 3; i++) {</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; uint8_t cc = colorCorrection.raw[i];</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; uint8_t ct = colorTemperature.raw[i];</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">if</span>(cc &gt; 0 &amp;&amp; ct &gt; 0) {</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; uint32_t work = (((uint32_t)cc)+1) * (((uint32_t)ct)+1) * scale;</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; work /= 0x10000L;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; adj.raw[i] = work &amp; 0xFF;</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; }</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> adj;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor"> #endif</span></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; <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="l00171"></a><span class="lineno"> 171</span>&#160;};</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment">// 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="l00174"></a><span class="lineno"> 174</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="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">// centralize 8/12/16 conversions here as well.</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="keyword">template</span>&lt;EOrder RGB_ORDER, <span class="keywordtype">int</span> LANES=1, u<span class="keywordtype">int</span>32_t MASK=0xFFFFFFFF&gt;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="struct_pixel_controller.html"> 177</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_pixel_controller.html">PixelController</a> {</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">const</span> uint8_t *mData;</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordtype">int</span> mLen,mLenRemaining;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; uint8_t d[3];</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; uint8_t e[3];</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> mScale;</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; int8_t mAdvance;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordtype">int</span> mOffsets[LANES];</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <a class="code" href="struct_pixel_controller.html">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="l00187"></a><span class="lineno"> 187</span>&#160; d[0] = other.d[0];</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; d[1] = other.d[1];</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; d[2] = other.d[2];</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; e[0] = other.e[0];</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; e[1] = other.e[1];</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; e[2] = other.e[2];</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; mData = other.mData;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; mScale = other.mScale;</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; mAdvance = other.mAdvance;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; mLenRemaining = mLen = other.mLen;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</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="l00198"></a><span class="lineno"> 198</span>&#160;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">void</span> initOffsets(<span class="keywordtype">int</span> len) {</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordtype">int</span> nOffset = 0;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; LANES; i++) {</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; mOffsets[i] = nOffset;</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span>((1&lt;&lt;i) &amp; MASK) { nOffset += (len * mAdvance); }</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;</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="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="struct_pixel_controller.html">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), mLenRemaining(len), mScale(s) {</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; enable_dithering(dither);</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; mData += skip;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; mAdvance = (advance) ? 3+skip : 0;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; initOffsets(len);</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;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="struct_pixel_controller.html">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((<span class="keyword">const</span> uint8_t*)d), mLen(len), mLenRemaining(len), mScale(s) {</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; enable_dithering(dither);</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; mAdvance = 3;</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; initOffsets(len);</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="struct_pixel_controller.html">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((<span class="keyword">const</span> uint8_t*)&amp;d), mLen(len), mLenRemaining(len), mScale(s) {</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; enable_dithering(dither);</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; mAdvance = 0;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; initOffsets(len);</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordtype">void</span> init_binary_dithering() {</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor">#if !defined(NO_DITHERING) || (NO_DITHERING != 1)</span></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="comment">// Set &#39;virtual bits&#39; of dithering to the highest level</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">// that is not likely to cause excessive flickering at</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="comment">// low brightness levels + low update rates.</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// These pre-set values are a little ambitious, since</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="comment">// a 400Hz update rate for WS2811-family LEDs is only</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="comment">// possible with 85 pixels or fewer.</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="comment">// Once we have a &#39;number of milliseconds since last update&#39;</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="comment">// value available here, we can quickly calculate the correct</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</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="l00240"></a><span class="lineno"> 240</span>&#160; <span class="comment">// statements -- no division required. At this point,</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</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="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">// cost, but the values are still hard-coded.</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor">#define MAX_LIKELY_UPDATE_RATE_HZ 400</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor">#define MIN_ACCEPTABLE_DITHER_RATE_HZ 50</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</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="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor">#define RECOMMENDED_VIRTUAL_BITS ((UPDATES_PER_FULL_DITHER_CYCLE&gt;1) + \</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;2) + \</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;4) + \</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;8) + \</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;16) + \</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;32) + \</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;64) + \</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor"> (UPDATES_PER_FULL_DITHER_CYCLE&gt;128) )</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor">#define VIRTUAL_BITS RECOMMENDED_VIRTUAL_BITS</span></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="comment">// R is the digther signal &#39;counter&#39;.</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">static</span> byte R = 0;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; R++;</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// R is wrapped around at 2^ditherBits,</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</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="l00262"></a><span class="lineno"> 262</span>&#160; byte ditherBits = VIRTUAL_BITS;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; R &amp;= (0x01 &lt;&lt; ditherBits) - 1;</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="comment">// Q is the &quot;unscaled dither signal&quot; itself.</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="comment">// It&#39;s initialized to the reversed bits of R.</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</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="l00268"></a><span class="lineno"> 268</span>&#160; byte Q = 0;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">// Reverse bits in a byte</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x01) { Q |= 0x80; }</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x02) { Q |= 0x40; }</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x04) { Q |= 0x20; }</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x08) { Q |= 0x10; }</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x10) { Q |= 0x08; }</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x20) { Q |= 0x04; }</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x40) { Q |= 0x02; }</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">if</span>(R &amp; 0x80) { Q |= 0x01; }</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// Now we adjust Q to fall in the center of each range,</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="comment">// instead of at the start of the range.</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</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="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// and this adjustment makes it (31, 159, 95, 223).</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">if</span>( ditherBits &lt; 8) {</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; Q += 0x01 &lt;&lt; (7 - ditherBits);</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="comment">// D and E form the &quot;scaled dither signal&quot;</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="comment">// which is added to pixel values to affect the</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">// actual dithering.</span></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#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#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="l00294"></a><span class="lineno"> 294</span>&#160; <span class="comment">// Setup the initial D and E values</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 3; i++) {</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; byte s = mScale.raw[i];</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; e[i] = s ? (256/s) + 1 : 0;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; d[i] = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(Q, e[i]);</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span>(e[i]) e[i]--;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="preprocessor">#endif</span></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;</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">// Do we have n pixels left to process?</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</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="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">return</span> mLenRemaining &gt;= n;</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;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// toggle dithering enable</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordtype">void</span> enable_dithering(EDitherMode dither) {</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">switch</span>(dither) {</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">case</span> BINARY_DITHER: init_binary_dithering(); <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</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="l00314"></a><span class="lineno"> 314</span>&#160; }</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;</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">int</span> size() { <span class="keywordflow">return</span> mLen; }</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="comment">// get the amount to advance the pointer by</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</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="l00321"></a><span class="lineno"> 321</span>&#160;</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="comment">// advance the data pointer forward, adjust position counter</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">void</span> advanceData() { mData += mAdvance; mLenRemaining--;}</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="comment">// step the dithering forward</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">void</span> stepDithering() {</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="comment">// IF UPDATING HERE, BE SURE TO UPDATE THE ASM VERSION IN</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="comment">// clockless_trinket.h!</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; d[0] = e[0] - d[0];</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; d[1] = e[1] - d[1];</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; d[2] = e[2] - d[2];</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;</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</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="l00335"></a><span class="lineno"> 335</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">void</span> preStepFirstByteDithering() {</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; d[RO(0)] = e[RO(0)] - d[RO(0)];</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="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_pixel_controller.html">PixelController</a> &amp; pc) { <span class="keywordflow">return</span> pc.mData[RO(SLOT)]; }</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</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_pixel_controller.html">PixelController</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="l00341"></a><span class="lineno"> 341</span>&#160; </div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</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_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="l00343"></a><span class="lineno"> 343</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_pixel_controller.html">PixelController</a> &amp; , 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="l00344"></a><span class="lineno"> 344</span>&#160; </div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</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_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="l00346"></a><span class="lineno"> 346</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_pixel_controller.html">PixelController</a> &amp; , 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="l00347"></a><span class="lineno"> 347</span>&#160;</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="comment">// composite shortcut functions for loading, dithering, and scaling</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</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_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="l00350"></a><span class="lineno"> 350</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_pixel_controller.html">PixelController</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="l00351"></a><span class="lineno"> 351</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_pixel_controller.html">PixelController</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="l00352"></a><span class="lineno"> 352</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_pixel_controller.html">PixelController</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="l00353"></a><span class="lineno"> 353</span>&#160;</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</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_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="l00355"></a><span class="lineno"> 355</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_pixel_controller.html">PixelController</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="l00356"></a><span class="lineno"> 356</span>&#160;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</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_pixel_controller.html">PixelController</a> &amp; pc) { <span class="keywordflow">return</span> pc.d[RO(SLOT)]; }</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; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> uint8_t getscale(<a class="code" href="struct_pixel_controller.html">PixelController</a> &amp; pc) { <span class="keywordflow">return</span> pc.mScale.raw[RO(SLOT)]; }</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">// Helper functions to get around gcc stupidities</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</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="l00362"></a><span class="lineno"> 362</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="l00363"></a><span class="lineno"> 363</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="l00364"></a><span class="lineno"> 364</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="l00365"></a><span class="lineno"> 365</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="l00366"></a><span class="lineno"> 366</span>&#160;</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> 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; __attribute__((always_inline)) <span class="keyword">inline</span> 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; __attribute__((always_inline)) <span class="keyword">inline</span> 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; __attribute__((always_inline)) <span class="keyword">inline</span> 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; __attribute__((always_inline)) <span class="keyword">inline</span> 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"><a class="line" href="class_c_pixel_l_e_d_controller.html"> 374</a></span>&#160;<span class="keyword">template</span>&lt;EOrder RGB_ORDER, <span class="keywordtype">int</span> LANES=1, u<span class="keywordtype">int</span>32_t MASK=0xFFFFFFFF&gt; <span class="keyword">class </span><a class="code" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController</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="l00375"></a><span class="lineno"> 375</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> showPixels(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER,LANES,MASK&gt;</a> &amp; pixels) = 0;</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div>
+<div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016"> 382</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">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="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER, LANES, MASK&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="l00384"></a><span class="lineno"> 384</span>&#160; showPixels(pixels);</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; }</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div>
+<div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c"> 391</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">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="l00392"></a><span class="lineno"> 392</span>&#160; <a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER, LANES, MASK&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="l00393"></a><span class="lineno"> 393</span>&#160; showPixels(pixels);</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">public</span>:</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <a class="code" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController</a>() : <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a>() {}</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;</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;FASTLED_NAMESPACE_END</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="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">// 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">// 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="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> <a href="controller_8h_source.html#l00155">controller.h:155</a></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> <a href="controller_8h_source.html#l00091">controller.h:91</a></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> <a href="pixeltypes_8h_source.html#l00088">pixeltypes.h:88</a></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> <a href="controller_8h_source.html#l00145">controller.h:145</a></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> <a href="color_8h_source.html#l00028">color.h:28</a></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> <a href="controller_8h_source.html#l00037">controller.h:37</a></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> <a href="controller_8h_source.html#l00348">controller.h:348</a></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> <a href="controller_8h_source.html#l00120">controller.h:120</a></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> <a href="controller_8h_source.html#l00148">controller.h:148</a></div></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</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> <a href="controller_8h_source.html#l00145">controller.h:145</a></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> <a href="controller_8h_source.html#l00088">controller.h:88</a></div></div>
+<div class="ttc" id="class_c_pixel_l_e_d_controller_html_a36cc2a15671bae0db53df1e26b4a813c"><div class="ttname"><a href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">CPixelLEDController::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> <a href="controller_8h_source.html#l00391">controller.h:391</a></div></div>
+<div class="ttc" id="class_c_l_e_d_controller_html_abd0f6ce4701e76ebc4b916e0a04134f2"><div class="ttname"><a href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">CLEDController::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> <a href="controller_8h_source.html#l00075">controller.h:75</a></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> <a href="pixeltypes_8h_source.html#l00090">pixeltypes.h:90</a></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> <a href="controller_8h_source.html#l00135">controller.h:135</a></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> <a href="color_8h_source.html#l00030">color.h:30</a></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> <a href="controller_8h_source.html#l00038">controller.h:38</a></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> <a href="controller_8h_source.html#l00110">controller.h:110</a></div></div>
+<div class="ttc" id="class_c_pixel_l_e_d_controller_html_af5569b9e92f75410e03c75bf5764e016"><div class="ttname"><a href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">CPixelLEDController::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> <a href="controller_8h_source.html#l00382">controller.h:382</a></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> <a href="controller_8h_source.html#l00138">controller.h:138</a></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> <a href="scale8_8h_source.html#l00020">scale8.h:20</a></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> <a href="controller_8h_source.html#l00113">controller.h:113</a></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> <a href="controller_8h_source.html#l00357">controller.h:357</a></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> <a href="controller_8h_source.html#l00381">controller.h:381</a></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> <a href="controller_8h_source.html#l00196">controller.h:196</a></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> <a href="_fast_l_e_d_8h_source.html#l00144">FastLED.h:144</a></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> <a href="controller_8h_source.html#l00086">controller.h:86</a></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> <a href="controller_8h_source.html#l00141">controller.h:141</a></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> <a href="controller_8h_source.html#l00103">controller.h:103</a></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> <a href="_fast_l_e_d_8h_source.html#l00145">FastLED.h:145</a></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> <a href="controller_8h_source.html#l00083">controller.h:83</a></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> <a href="controller_8h_source.html#l00131">controller.h:131</a></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> <a href="controller_8h_source.html#l00152">controller.h:152</a></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> <a href="controller_8h_source.html#l00187">controller.h:187</a></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> <a href="controller_8h_source.html#l00142">controller.h:142</a></div></div>
+<div class="ttc" id="struct_pixel_controller_html"><div class="ttname"><a href="struct_pixel_controller.html">PixelController</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_8h_source.html#l00177">controller.h:177</a></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> <a href="math8_8h_source.html#l00021">math8.h:21</a></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> <a href="controller_8h_source.html#l00345">controller.h:345</a></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> <a href="controller_8h_source.html#l00096">controller.h:96</a></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> <a href="controller_8h_source.html#l00218">controller.h:218</a></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> <a href="controller_8h_source.html#l00150">controller.h:150</a></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> <a href="controller_8h_source.html#l00103">controller.h:103</a></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> <a href="color_8h_source.html#l00076">color.h:76</a></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> <a href="controller_8h_source.html#l00136">controller.h:136</a></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> <a href="controller_8h_source.html#l00130">controller.h:130</a></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> <a href="color_8h_source.html#l00011">color.h:11</a></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> <a href="controller_8h_source.html#l00334">controller.h:334</a></div></div>
+<div class="ttc" id="class_c_pixel_l_e_d_controller_html"><div class="ttname"><a href="class_c_pixel_l_e_d_controller.html">CPixelLEDController</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_8h_source.html#l00374">controller.h:374</a></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> <a href="controller_8h_source.html#l00093">controller.h:93</a></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> <a href="controller_8h_source.html#l00140">controller.h:140</a></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> <a href="controller_8h_source.html#l00100">controller.h:100</a></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> <a href="color_8h_source.html#l00078">color.h:78</a></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> <a href="controller_8h_source.html#l00126">controller.h:126</a></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> <a href="controller_8h_source.html#l00120">controller.h:120</a></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> <a href="color_8h_source.html#l00013">color.h:13</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </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> <a href="controller_8h_source.html#l00329">controller.h:329</a></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> <a href="controller_8h_source.html#l00067">controller.h:67</a></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> <a href="controller_8h_source.html#l00064">controller.h:64</a></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> <a href="controller_8h_source.html#l00127">controller.h:127</a></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> <a href="controller_8h_source.html#l00138">controller.h:138</a></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> <a href="controller_8h_source.html#l00143">controller.h:143</a></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> <a href="controller_8h_source.html#l00081">controller.h:81</a></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> <a href="controller_8h_source.html#l00252">controller.h:252</a></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> <a href="controller_8h_source.html#l00133">controller.h:133</a></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> <a href="color_8h_source.html#l00033">color.h:33</a></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> <a href="controller_8h_source.html#l00101">controller.h:101</a></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> <a href="controller_8h_source.html#l00342">controller.h:342</a></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> <a href="controller_8h_source.html#l00117">controller.h:117</a></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> <a href="controller_8h_source.html#l00128">controller.h:128</a></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> <a href="controller_8h_source.html#l00133">controller.h:133</a></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> <a href="controller_8h_source.html#l00078">controller.h:78</a></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> <a href="controller_8h_source.html#l00123">controller.h:123</a></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> <a href="color_8h_source.html#l00035">color.h:35</a></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> <a href="controller_8h_source.html#l00098">controller.h:98</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="controller_8h.html">controller.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/cpp__compat_8h_source.html b/docs/3.1/cpp__compat_8h_source.html
index b83f8892..499afd3e 100644
--- a/docs/3.1/cpp__compat_8h_source.html
+++ b/docs/3.1/cpp__compat_8h_source.html
@@ -112,24 +112,27 @@ $(document).ready(function(){initNavTree('cpp__compat_8h_source.html','');});
<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="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&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">#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="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#if __cplusplus &lt;= 199711L</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#define static_assert(expression, message)</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define constexpr const</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="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// things that we can turn on if we&#39;re in a C++11 environment</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>cpp_compat.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html b/docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html
index 2183d647..c4117032 100644
--- a/docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html
+++ b/docs/3.1/dir_fbb9e787cf27434374136273d35a9c17.html
@@ -130,7 +130,7 @@ Files</h2></td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_fbb9e787cf27434374136273d35a9c17.html">lib8tion</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/dmx_8h_source.html b/docs/3.1/dmx_8h_source.html
index 23ae737e..bb3cd982 100644
--- a/docs/3.1/dmx_8h_source.html
+++ b/docs/3.1/dmx_8h_source.html
@@ -112,132 +112,79 @@ $(document).ready(function(){initNavTree('dmx_8h_source.html','');});
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_DMX_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_DMX_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;</div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#ifdef DmxSimple_h</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include&lt;DmxSimple.h&gt;</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#define HAS_DMX_SIMPLE</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// note - dmx simple must be included before FastSPI for this code to be enabled</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html"> 14</a></span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt; <span class="keyword">class </span><a class="code" href="class_d_m_x_simple_controller.html">DMXSimpleController</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="comment">// initialize the LED controller</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3"> 17</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3">init</a>() { DmxSimple.usePin(DATA_PIN); }</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="comment">// clear out/zero out the given number of leds.</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e"> 20</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">int</span> count = min(nLeds * 3, DMX_SIZE);</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> iChannel = 1; iChannel &lt;= count; iChannel++) { DmxSimple.write(iChannel, 0); }</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; }</div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// set all the leds on the controller to a given color</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1"> 27</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">int</span> count = min(nLeds, DMX_SIZE / 3);</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">int</span> iChannel = 1;</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; count; i++) {</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE0(RGB_ORDER)], scale.raw[RGB_BYTE0(RGB_ORDER)]));</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE1(RGB_ORDER)], scale.raw[RGB_BYTE1(RGB_ORDER)]));</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE2(RGB_ORDER)], scale.raw[RGB_BYTE2(RGB_ORDER)]));</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; }</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; }</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&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">#ifdef DmxSimple_h</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include&lt;DmxSimple.h&gt;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#define HAS_DMX_SIMPLE</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</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="comment">// note - dmx simple must be included before FastSPI for this code to be enabled</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html"> 15</a></span>&#160;<span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t DATA_PIN, EOrder RGB_ORDER = RGB&gt; <span class="keyword">class </span><a class="code" href="class_d_m_x_simple_controller.html">DMXSimpleController</a> : <span class="keyword">public</span> <a class="code" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController</a>&lt;RGB_ORDER&gt; {</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="comment">// initialize the LED controller</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3"> 18</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3">init</a>() { DmxSimple.usePin(DATA_PIN); }</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">protected</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> showPixels(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> &amp; pixels) {</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">int</span> iChannel = 1;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">while</span>(pixels.has(1)) {</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; DmxSimple.write(iChannel++, pixels.loadAndScale0());</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; DmxSimple.write(iChannel++, pixels.loadAndScale1());</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; DmxSimple.write(iChannel++, pixels.loadAndScale2());</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; pixels.advanceData();</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; pixels.stepDithering();</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; }</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; }</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;};</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;FASTLED_NAMESPACE_END</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">#endif</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="comment">// note that the uint8_ts will be in the order that you want them sent out to the device.</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">// nLeds is the number of RGB leds being written to</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186"> 39</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">int</span> count = min(nLeds, DMX_SIZE / 3);</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordtype">int</span> iChannel = 1;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; count; i++) {</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE0(RGB_ORDER)], scale.raw[RGB_BYTE0(RGB_ORDER)]));</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE1(RGB_ORDER)], scale.raw[RGB_BYTE1(RGB_ORDER)]));</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; DmxSimple.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE2(RGB_ORDER)], scale.raw[RGB_BYTE2(RGB_ORDER)]));</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; }</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// as above, but every 4th uint8_t is assumed to be alpha channel data, and will be skipped</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> CARGB *data, <span class="keywordtype">int</span> nLeds, uint8_t scale = 255) = 0;</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;FASTLED_NAMESPACE_END</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#ifdef DmxSerial_h</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include&lt;DMXSerial.h&gt;</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#ifdef DmxSerial_h</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include&lt;DMXSerial.h&gt;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;FASTLED_NAMESPACE_BEGIN</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"><a class="line" href="class_d_m_x_serial_controller.html"> 42</a></span>&#160;<span class="keyword">template</span> &lt;EOrder RGB_ORDER = RGB&gt; <span class="keyword">class </span><a class="code" href="class_d_m_x_serial_controller.html">DMXSerialController</a> : <span class="keyword">public</span> <a class="code" href="class_c_pixel_l_e_d_controller.html">CPixelLEDController</a>&lt;RGB_ORDER&gt; {</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// initialize the LED controller</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27"> 45</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27">init</a>() { DMXSerial.init(DMXController); }</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> showPixels(<a class="code" href="struct_pixel_controller.html">PixelController&lt;RGB_ORDER&gt;</a> &amp; pixels) {</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">int</span> iChannel = 1;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">while</span>(pixels.has(1)) {</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; DMXSerial.write(iChannel++, pixels.loadAndScale0());</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; DMXSerial.write(iChannel++, pixels.loadAndScale1());</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; DMXSerial.write(iChannel++, pixels.loadAndScale2());</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; pixels.advanceData();</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; pixels.stepDithering();</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;};</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;FASTLED_NAMESPACE_END</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 HAS_DMX_SERIAL</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_d_m_x_serial_controller.html"> 65</a></span>&#160;<span class="keyword">template</span> &lt;EOrder RGB_ORDER = RGB&gt; <span class="keyword">class </span><a class="code" href="class_d_m_x_serial_controller.html">DMXSerialController</a> : <span class="keyword">public</span> <a class="code" href="class_c_l_e_d_controller.html">CLEDController</a> {</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// initialize the LED controller</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27"> 68</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27">init</a>() { DMXSerial.init(DMXController); }</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">// clear out/zero out the given number of leds.</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129"> 71</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129">clearLeds</a>(<span class="keywordtype">int</span> nLeds) {</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">int</span> count = min(nLeds * 3, DMXSERIAL_MAX);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> iChannel = 0; iChannel &lt; count; iChannel++) { DMXSerial.write(iChannel, 0); }</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// set all the leds on the controller to a given color</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b"> 77</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b">showColor</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">int</span> count = min(nLeds, DMXSERIAL_MAX / 3);</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">int</span> iChannel = 0;</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; count; i++) {</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE0(RGB_ORDER)], scale.raw[RGB_BYTE0(RGB_ORDER)]));</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE1(RGB_ORDER)], scale.raw[RGB_BYTE1(RGB_ORDER)]));</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[RGB_BYTE2(RGB_ORDER)], scale.raw[RGB_BYTE2(RGB_ORDER)]));</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// note that the uint8_ts will be in the order that you want them sent out to the device.</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// nLeds is the number of RGB leds being written to</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1"> 89</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> *data, <span class="keywordtype">int</span> nLeds, <a class="code" href="struct_c_r_g_b.html">CRGB</a> scale) {</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">int</span> count = min(nLeds, DMXSERIAL_MAX / 3);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">int</span> iChannel = 0;</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; count; i++) {</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE0(RGB_ORDER)], scale.raw[RGB_BYTE0(RGB_ORDER)]));</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE1(RGB_ORDER)], scale.raw[RGB_BYTE1(RGB_ORDER)]));</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; DMXSerial.write(iChannel++, <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(data[i][RGB_BYTE2(RGB_ORDER)], scale.raw[RGB_BYTE2(RGB_ORDER)]));</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#ifdef SUPPORT_ARGB</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// as above, but every 4th uint8_t is assumed to be alpha channel data, and will be skipped</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">show</a>(<span class="keyword">const</span> <span class="keyword">struct</span> CARGB *data, <span class="keywordtype">int</span> nLeds, uint8_t scale = 255) = 0;</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;};</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;FASTLED_NAMESPACE_END</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#define HAS_DMX_SERIAL</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="class_d_m_x_simple_controller_html_a66deae70caf1d43a8692fff6540d1f1e"><div class="ttname"><a href="class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e">DMXSimpleController::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)</div><div class="ttdoc">clear out/zero out the given number of leds. </div><div class="ttdef"><b>Definition:</b> <a href="dmx_8h_source.html#l00020">dmx.h:20</a></div></div>
-<div class="ttc" id="class_d_m_x_serial_controller_html_a04689efea1c1daf74905f87692caa129"><div class="ttname"><a href="class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129">DMXSerialController::clearLeds</a></div><div class="ttdeci">virtual void clearLeds(int nLeds)</div><div class="ttdoc">clear out/zero out the given number of leds. </div><div class="ttdef"><b>Definition:</b> <a href="dmx_8h_source.html#l00071">dmx.h:71</a></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> <a href="pixeltypes_8h_source.html#l00088">pixeltypes.h:88</a></div></div>
-<div class="ttc" id="class_d_m_x_serial_controller_html_a0cd937424d4f6eedb90acec81ca1fa27"><div class="ttname"><a href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27">DMXSerialController::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> <a href="dmx_8h_source.html#l00068">dmx.h:68</a></div></div>
-<div class="ttc" id="class_d_m_x_serial_controller_html_a3f3f3e606e495fd1bdcfd25c6bed7fe1"><div class="ttname"><a href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">DMXSerialController::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div><div class="ttdef"><b>Definition:</b> <a href="dmx_8h_source.html#l00089">dmx.h:89</a></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> <a href="controller_8h_source.html#l00037">controller.h:37</a></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> <a href="scale8_8h_source.html#l00020">scale8.h:20</a></div></div>
-<div class="ttc" id="class_d_m_x_simple_controller_html_a251c7d09383870337853c360996871c3"><div class="ttname"><a href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3">DMXSimpleController::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> <a href="dmx_8h_source.html#l00017">dmx.h:17</a></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> <a href="dmx_8h_source.html#l00014">dmx.h:14</a></div></div>
-<div class="ttc" id="class_d_m_x_simple_controller_html_a3fb3a0501aae1d7a6aefb89f77168bd1"><div class="ttname"><a href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1">DMXSimpleController::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)</div><div class="ttdoc">set all the leds on the controller to a given color </div><div class="ttdef"><b>Definition:</b> <a href="dmx_8h_source.html#l00027">dmx.h:27</a></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> <a href="dmx_8h_source.html#l00065">dmx.h:65</a></div></div>
-<div class="ttc" id="class_d_m_x_serial_controller_html_a3d6285e65af8862eb4b0d36d6d3df22b"><div class="ttname"><a href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b">DMXSerialController::showColor</a></div><div class="ttdeci">virtual void showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)</div><div class="ttdoc">set all the leds on the controller to a given color </div><div class="ttdef"><b>Definition:</b> <a href="dmx_8h_source.html#l00077">dmx.h:77</a></div></div>
-<div class="ttc" id="class_d_m_x_simple_controller_html_a29df92ccb41090893fa3c49f22b47186"><div class="ttname"><a href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186">DMXSimpleController::show</a></div><div class="ttdeci">virtual void show(const struct CRGB *data, int nLeds, CRGB scale)</div><div class="ttdoc">write the passed in rgb data out to the leds managed by this controller </div><div class="ttdef"><b>Definition:</b> <a href="dmx_8h_source.html#l00039">dmx.h:39</a></div></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="class_d_m_x_serial_controller_html_a0cd937424d4f6eedb90acec81ca1fa27"><div class="ttname"><a href="class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27">DMXSerialController::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> <a href="dmx_8h_source.html#l00045">dmx.h:45</a></div></div>
+<div class="ttc" id="class_d_m_x_simple_controller_html_a251c7d09383870337853c360996871c3"><div class="ttname"><a href="class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3">DMXSimpleController::init</a></div><div class="ttdeci">virtual void init()</div><div class="ttdoc">initialize the LED controller </div><div class="ttdef"><b>Definition:</b> <a href="dmx_8h_source.html#l00018">dmx.h:18</a></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> <a href="dmx_8h_source.html#l00015">dmx.h:15</a></div></div>
+<div class="ttc" id="struct_pixel_controller_html"><div class="ttname"><a href="struct_pixel_controller.html">PixelController</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_8h_source.html#l00177">controller.h:177</a></div></div>
+<div class="ttc" id="class_c_pixel_l_e_d_controller_html"><div class="ttname"><a href="class_c_pixel_l_e_d_controller.html">CPixelLEDController</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_8h_source.html#l00374">controller.h:374</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </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> <a href="dmx_8h_source.html#l00042">dmx.h:42</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>dmx.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/fastled__config_8h.html b/docs/3.1/fastled__config_8h.html
index ac44b528..3163d9ff 100644
--- a/docs/3.1/fastled__config_8h.html
+++ b/docs/3.1/fastled__config_8h.html
@@ -124,7 +124,7 @@ $(document).ready(function(){initNavTree('fastled__config_8h.html','');});
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="fastled__config_8h.html">fastled_config.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/fastled__config_8h_source.html b/docs/3.1/fastled__config_8h_source.html
index ad548639..289cd895 100644
--- a/docs/3.1/fastled__config_8h_source.html
+++ b/docs/3.1/fastled__config_8h_source.html
@@ -112,30 +112,41 @@ $(document).ready(function(){initNavTree('fastled__config_8h_source.html','');})
<a href="fastled__config_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_FASTLED_CONFIG_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_FASTLED_CONFIG_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// Use this option only for debugging pin access and forcing software pin access. Note that</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// software pin access only works in Arduino based environments. Forces use of digitalWrite</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// methods for pin access vs. direct hardware port access</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// #define FASTLED_FORCE_SOFTWARE_PINS</span></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;<span class="comment">// Use this option only for debugging bitbang&#39;d spi access or to work around bugs in hardware</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// spi access. Forces use of bit-banged spi, even on pins that has hardware SPI available.</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// #define FASTLED_FORCE_SOFTWARE_SPI</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Use this to force FastLED to allow interrupts in the clockless chipsets (or to force it to</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// disallow), overriding the default on platforms that support this. Set the value to 1 to</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// allow interrupts or 0 to disallow them.</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// #define FASTLED_ALLOW_INTERRUPTS 1</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// #define FASTLED_ALLOW_INTERRUPTS 0</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</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="comment">// Use this option only for debugging pin access and forcing software pin access. Note that</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// software pin access only works in Arduino based environments. Forces use of digitalWrite</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// methods for pin access vs. direct hardware port access</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// #define FASTLED_FORCE_SOFTWARE_PINS</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="comment">// Use this option only for debugging bitbang&#39;d spi access or to work around bugs in hardware</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// spi access. Forces use of bit-banged spi, even on pins that has hardware SPI available.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// #define FASTLED_FORCE_SOFTWARE_SPI</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// Use this to force FastLED to allow interrupts in the clockless chipsets (or to force it to</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// disallow), overriding the default on platforms that support this. Set the value to 1 to</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// allow interrupts or 0 to disallow them.</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// #define FASTLED_ALLOW_INTERRUPTS 1</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// #define FASTLED_ALLOW_INTERRUPTS 0</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;<span class="comment">// Use this to allow some integer overflows/underflows in the inoise functions.</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">// The original implementions allowed this, and had some discontinuties in the noise</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// output. It&#39;s technically an implementation bug, and was fixed, but you may wish</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// to preserve the old look and feel of the inoise functions in your existing animations.</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// The default is 0: NO overflow, and &#39;continuous&#39; noise output, aka the fixed way.</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">// #define FASTLED_NOISE_ALLOW_AVERAGE_TO_OVERFLOW 0</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">// #define FASTLED_NOISE_ALLOW_AVERAGE_TO_OVERFLOW 1</span></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">#endif</span></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="fastled__config_8h.html">fastled_config.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/fastled__delay_8h.html b/docs/3.1/fastled__delay_8h.html
index f408da50..a689f04f 100644
--- a/docs/3.1/fastled__delay_8h.html
+++ b/docs/3.1/fastled__delay_8h.html
@@ -130,6 +130,10 @@ Functions</h2></td></tr>
template&lt;int CYCLES&gt; </td></tr>
<tr class="memitem:acdd14fccd97b45d3d566c95bff28ed76"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>delaycycles</b> ()</td></tr>
<tr class="separator:acdd14fccd97b45d3d566c95bff28ed76"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a76328edb9ea1a1f017567ff835247d2d"><td class="memTemplParams" colspan="2"><a class="anchor" id="a76328edb9ea1a1f017567ff835247d2d"></a>
+template&lt;int CYCLES&gt; </td></tr>
+<tr class="memitem:a76328edb9ea1a1f017567ff835247d2d"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>delaycycles_min1</b> ()</td></tr>
+<tr class="separator:a76328edb9ea1a1f017567ff835247d2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f73ec33563da273f06487a797e10eae"><td class="memTemplParams" colspan="2"><a class="anchor" id="a9f73ec33563da273f06487a797e10eae"></a>
template&lt;int LOOP, int PAD&gt; </td></tr>
<tr class="memitem:a9f73ec33563da273f06487a797e10eae"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>_delaycycles_AVR</b> ()</td></tr>
@@ -141,7 +145,7 @@ template&lt;int CYCLES&gt; </td></tr>
<tr class="separator:gad47d9c821aeaaa0123d125a18ff961d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad47d9c821aeaaa0123d125a18ff961d5"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad47d9c821aeaaa0123d125a18ff961d5"></a>
template&lt;&gt; </td></tr>
-<tr class="memitem:gad47d9c821aeaaa0123d125a18ff961d5"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a> ((always_inline)) inline void delaycycles&lt;-6 &gt;()</td></tr>
+<tr class="memitem:gad47d9c821aeaaa0123d125a18ff961d5"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a> ((always_inline)) inline void delaycycles&lt;-10 &gt;()</td></tr>
<tr class="memdesc:gad47d9c821aeaaa0123d125a18ff961d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do an 8byte by 8bit rotation. <br /></td></tr>
<tr class="separator:gad47d9c821aeaaa0123d125a18ff961d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
@@ -155,7 +159,7 @@ template&lt;&gt; </td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="fastled__delay_8h.html">fastled_delay.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/fastled__delay_8h.js b/docs/3.1/fastled__delay_8h.js
index 44641a05..a52c112b 100644
--- a/docs/3.1/fastled__delay_8h.js
+++ b/docs/3.1/fastled__delay_8h.js
@@ -4,5 +4,6 @@ var fastled__delay_8h =
[ "__attribute__", "group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5", null ],
[ "__attribute__", "group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5", null ],
[ "_delaycycles_AVR", "fastled__delay_8h.html#a9f73ec33563da273f06487a797e10eae", null ],
- [ "delaycycles", "fastled__delay_8h.html#acdd14fccd97b45d3d566c95bff28ed76", null ]
+ [ "delaycycles", "fastled__delay_8h.html#acdd14fccd97b45d3d566c95bff28ed76", null ],
+ [ "delaycycles_min1", "fastled__delay_8h.html#a76328edb9ea1a1f017567ff835247d2d", null ]
]; \ No newline at end of file
diff --git a/docs/3.1/fastled__delay_8h_source.html b/docs/3.1/fastled__delay_8h_source.html
index cd2e2525..c2fa4acc 100644
--- a/docs/3.1/fastled__delay_8h_source.html
+++ b/docs/3.1/fastled__delay_8h_source.html
@@ -112,127 +112,139 @@ $(document).ready(function(){initNavTree('fastled__delay_8h_source.html','');});
<a href="fastled__delay_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_FL_DELAY_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_FL_DELAY_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div>
-<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="class_c_min_wait.html"> 11</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> WAIT&gt; <span class="keyword">class </span><a class="code" href="class_c_min_wait.html">CMinWait</a> {</div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; uint16_t mLastMicros;</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; <a class="code" href="class_c_min_wait.html">CMinWait</a>() { mLastMicros = 0; }</div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordtype">void</span> wait() {</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; uint16_t diff;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordflow">do</span> {</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; diff = (micros() &amp; 0xFFFF) - mLastMicros;</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; } <span class="keywordflow">while</span>(diff &lt; WAIT);</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; }</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordtype">void</span> mark() { mLastMicros = micros() &amp; 0xFFFF; }</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;</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">// Clock cycle counted delay loop</span></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="l00013"></a><span class="lineno"><a class="line" href="class_c_min_wait.html"> 13</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> WAIT&gt; <span class="keyword">class </span><a class="code" href="class_c_min_wait.html">CMinWait</a> {</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; uint16_t mLastMicros;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <a class="code" href="class_c_min_wait.html">CMinWait</a>() { mLastMicros = 0; }</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordtype">void</span> wait() {</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; uint16_t diff;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; diff = (micros() &amp; 0xFFFF) - mLastMicros;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; } <span class="keywordflow">while</span>(diff &lt; WAIT);</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="keywordtype">void</span> mark() { mLastMicros = micros() &amp; 0xFFFF; }</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;</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="comment">//</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">// Default is now just &#39;nop&#39;, with special case for AVR</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"># define NOP __asm__ __volatile__ (&quot;cp r0,r0\n&quot;);</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"># define NOP2 __asm__ __volatile__ (&quot;rjmp .+0&quot;);</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"># define NOP __asm__ __volatile__ (&quot;nop\n&quot;);</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"># define NOP2 __asm__ __volatile__ (&quot;nop\n\t nop\n&quot;);</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#endif</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="comment">// predeclaration to not upset the compiler</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> CYCLES&gt; <span class="keyword">inline</span> <span class="keywordtype">void</span> delaycycles();</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="comment">// TODO: ARM version of _delaycycles_</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="comment">// usable definition</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#if defined(FASTLED_AVR)</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// worker template - this will nop for LOOP * 3 + PAD cycles total</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> LOOP, <span class="keywordtype">int</span> PAD&gt; <span class="keyword">inline</span> <span class="keywordtype">void</span> _delaycycles_AVR() {</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; delaycycles&lt;PAD&gt;();</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// the loop below is 3 cycles * LOOP. the LDI is one cycle,</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">// the DEC is 1 cycle, the BRNE is 2 cycles if looping back and</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// 1 if not (the LDI balances out the BRNE being 1 cycle on exit)</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; __asm__ __volatile__ (</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="stringliteral">&quot; LDI R16, %0\n&quot;</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="stringliteral">&quot;L_%=: DEC R16\n&quot;</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="stringliteral">&quot; BRNE L_%=\n&quot;</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; : <span class="comment">/* no outputs */</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; : <span class="stringliteral">&quot;M&quot;</span> (LOOP)</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; : <span class="stringliteral">&quot;r16&quot;</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; );</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5"> 65</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> CYCLES&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles() {</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; _delaycycles_AVR&lt;CYCLES / 3, CYCLES % 3&gt;();</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="preprocessor">#else</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment">// template&lt;int LOOP, int PAD&gt; inline void _delaycycles_ARM() {</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment">// delaycycles&lt;PAD&gt;();</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">// // the loop below is 3 cycles * LOOP. the LDI is one cycle,</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment">// // the DEC is 1 cycle, the BRNE is 2 cycles if looping back and</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment">// // 1 if not (the LDI balances out the BRNE being 1 cycle on exit)</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">// __asm__ __volatile__ (</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment">// &quot; mov.w r9, %0\n&quot;</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">// &quot;L_%=: subs.w r9, r9, #1\n&quot;</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment">// &quot; bne.n L_%=\n&quot;</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">// : /* no outputs */</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment">// : &quot;M&quot; (LOOP)</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment">// : &quot;r9&quot;</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment">// );</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">// }</span></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"><a class="line" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5"> 85</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> CYCLES&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles() {</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// _delaycycles_ARM&lt;CYCLES / 3, CYCLES % 3&gt;();</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; NOP; delaycycles&lt;CYCLES-1&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">#endif</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">// Clock cycle counted delay loop</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="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">// Default is now just &#39;nop&#39;, with special case for AVR</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"># define NOP __asm__ __volatile__ (&quot;cp r0,r0\n&quot;);</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"># define NOP2 __asm__ __volatile__ (&quot;rjmp .+0&quot;);</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"># define NOP __asm__ __volatile__ (&quot;nop\n&quot;);</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor"># define NOP2 __asm__ __volatile__ (&quot;nop\n\t nop\n&quot;);</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#endif</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="comment">// predeclaration to not upset the compiler</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> CYCLES&gt; <span class="keyword">inline</span> <span class="keywordtype">void</span> delaycycles();</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> CYCLES&gt; <span class="keyword">inline</span> <span class="keywordtype">void</span> delaycycles_min1() {</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; delaycycles&lt;1&gt;();</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; delaycycles&lt;CYCLES-1&gt;();</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;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// TODO: ARM version of _delaycycles_</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="comment">// usable definition</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#if defined(FASTLED_AVR)</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">// worker template - this will nop for LOOP * 3 + PAD cycles total</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> LOOP, <span class="keywordtype">int</span> PAD&gt; <span class="keyword">inline</span> <span class="keywordtype">void</span> _delaycycles_AVR() {</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; delaycycles&lt;PAD&gt;();</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// the loop below is 3 cycles * LOOP. the LDI is one cycle,</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// the DEC is 1 cycle, the BRNE is 2 cycles if looping back and</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// 1 if not (the LDI balances out the BRNE being 1 cycle on exit)</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; __asm__ __volatile__ (</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="stringliteral">&quot; LDI R16, %0\n&quot;</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="stringliteral">&quot;L_%=: DEC R16\n&quot;</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="stringliteral">&quot; BRNE L_%=\n&quot;</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; : <span class="comment">/* no outputs */</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; : <span class="stringliteral">&quot;M&quot;</span> (LOOP)</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; : <span class="stringliteral">&quot;r16&quot;</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; );</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5"> 72</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> CYCLES&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles() {</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; _delaycycles_AVR&lt;CYCLES / 3, CYCLES % 3&gt;();</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">// template&lt;int LOOP, int PAD&gt; inline void _delaycycles_ARM() {</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment">// delaycycles&lt;PAD&gt;();</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">// // the loop below is 3 cycles * LOOP. the LDI is one cycle,</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment">// // the DEC is 1 cycle, the BRNE is 2 cycles if looping back and</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment">// // 1 if not (the LDI balances out the BRNE being 1 cycle on exit)</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment">// __asm__ __volatile__ (</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">// &quot; mov.w r9, %0\n&quot;</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment">// &quot;L_%=: subs.w r9, r9, #1\n&quot;</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment">// &quot; bne.n L_%=\n&quot;</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">// : /* no outputs */</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment">// : &quot;M&quot; (LOOP)</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment">// : &quot;r9&quot;</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment">// );</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment">// }</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">// pre-instantiations for values small enough to not need the loop, as well as sanity holders</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment">// for some negative values.</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5"> 93</a></span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-6&gt;() {}</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-5&gt;() {}</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-4&gt;() {}</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-3&gt;() {}</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-2&gt;() {}</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-1&gt;() {}</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;0&gt;() {}</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;1&gt;() {NOP;}</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;2&gt;() {NOP2;}</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;3&gt;() {NOP;NOP2;}</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;4&gt;() {NOP2;NOP2;}</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;5&gt;() {NOP2;NOP2;NOP;}</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">// Some timing related macros/definitions</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="comment">// Macro to convert from nano-seconds to clocks and clocks to nano-seconds</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment">// #define NS(_NS) (_NS / (1000 / (F_CPU / 1000000L)))</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#define F_CPU_MHZ (F_CPU / 1000000L)</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment">// #define NS(_NS) ( (_NS * (F_CPU / 1000000L))) / 1000</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor">#define NS(_NS) (((_NS * F_CPU_MHZ) + 999) / 1000)</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor">#define CLKS_TO_MICROS(_CLKS) ((long)(_CLKS)) / (F_CPU / 1000000L)</span></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="comment">// Macro for making sure there&#39;s enough time available</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#define NO_TIME(A, B, C) (NS(A) &lt; 3 || NS(B) &lt; 3 || NS(C) &lt; 6)</span></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"><a class="line" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5"> 92</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> CYCLES&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles() {</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// _delaycycles_ARM&lt;CYCLES / 3, CYCLES % 3&gt;();</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; NOP; delaycycles&lt;CYCLES-1&gt;();</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">#endif</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="comment">// pre-instantiations for values small enough to not need the loop, as well as sanity holders</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment">// for some negative values.</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5"> 100</a></span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-10&gt;() {}</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-9&gt;() {}</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-8&gt;() {}</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-7&gt;() {}</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-6&gt;() {}</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-5&gt;() {}</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-4&gt;() {}</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-3&gt;() {}</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-2&gt;() {}</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;-1&gt;() {}</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;0&gt;() {}</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;1&gt;() {NOP;}</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;2&gt;() {NOP2;}</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;3&gt;() {NOP;NOP2;}</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;4&gt;() {NOP2;NOP2;}</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keyword">template</span>&lt;&gt; <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline)) inline <span class="keywordtype">void</span> delaycycles&lt;5&gt;() {NOP2;NOP2;NOP;}</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment">// Some timing related macros/definitions</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_c_min_wait_html"><div class="ttname"><a href="class_c_min_wait.html">CMinWait</a></div><div class="ttdoc">Class to ensure that a minimum amount of time has kicked since the last time run - and delay if not e...</div><div class="ttdef"><b>Definition:</b> <a href="fastled__delay_8h_source.html#l00011">fastled_delay.h:11</a></div></div>
-<div class="ttc" id="group___pixeltypes_html_gad47d9c821aeaaa0123d125a18ff961d5"><div class="ttname"><a href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline void delaycycles()</div><div class="ttdoc">Do an 8byte by 8bit rotation. </div><div class="ttdef"><b>Definition:</b> <a href="fastled__delay_8h_source.html#l00065">fastled_delay.h:65</a></div></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment">// Macro to convert from nano-seconds to clocks and clocks to nano-seconds</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment">// #define NS(_NS) (_NS / (1000 / (F_CPU / 1000000L)))</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor">#define F_CPU_MHZ (F_CPU / 1000000L)</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment">// #define NS(_NS) ( (_NS * (F_CPU / 1000000L))) / 1000</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#define NS(_NS) (((_NS * F_CPU_MHZ) + 999) / 1000)</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="preprocessor">#define CLKS_TO_MICROS(_CLKS) ((long)(_CLKS)) / (F_CPU / 1000000L)</span></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;<span class="comment">// Macro for making sure there&#39;s enough time available</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="preprocessor">#define NO_TIME(A, B, C) (NS(A) &lt; 3 || NS(B) &lt; 3 || NS(C) &lt; 6)</span></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;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="class_c_min_wait_html"><div class="ttname"><a href="class_c_min_wait.html">CMinWait</a></div><div class="ttdoc">Class to ensure that a minimum amount of time has kicked since the last time run - and delay if not e...</div><div class="ttdef"><b>Definition:</b> <a href="fastled__delay_8h_source.html#l00013">fastled_delay.h:13</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
+<div class="ttc" id="group___pixeltypes_html_gad47d9c821aeaaa0123d125a18ff961d5"><div class="ttname"><a href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) inline void delaycycles()</div><div class="ttdoc">Do an 8byte by 8bit rotation. </div><div class="ttdef"><b>Definition:</b> <a href="fastled__delay_8h_source.html#l00072">fastled_delay.h:72</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="fastled__delay_8h.html">fastled_delay.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/fastled__progmem_8h.html b/docs/3.1/fastled__progmem_8h.html
index 05c33b85..7a0f2a1e 100644
--- a/docs/3.1/fastled__progmem_8h.html
+++ b/docs/3.1/fastled__progmem_8h.html
@@ -124,7 +124,7 @@ $(document).ready(function(){initNavTree('fastled__progmem_8h.html','');});
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="fastled__progmem_8h.html">fastled_progmem.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/fastled__progmem_8h_source.html b/docs/3.1/fastled__progmem_8h_source.html
index 4ef91323..a0d23d31 100644
--- a/docs/3.1/fastled__progmem_8h_source.html
+++ b/docs/3.1/fastled__progmem_8h_source.html
@@ -112,72 +112,75 @@ $(document).ready(function(){initNavTree('fastled__progmem_8h_source.html','');}
<a href="fastled__progmem_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_FL_PROGMEM_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_FL_PROGMEM_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&quot;</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</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="comment">// Compatibility layer for devices that do or don&#39;t</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// have &quot;PROGMEM&quot; and the associated pgm_ accessors.</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// If a platform supports PROGMEM, it should define</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// &quot;FASTLED_USE_PROGMEM&quot; as 1, otherwise FastLED will</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// fall back to NOT using PROGMEM.</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;<span class="comment">// Whether or not pgmspace.h is #included is separately</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// controllable by FASTLED_INCLUDE_PGMSPACE, if needed.</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// If FASTLED_USE_PROGMEM is 1, we&#39;ll map FL_PROGMEM</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// and the FL_PGM_* accessors to the Arduino equivalents.</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if FASTLED_USE_PROGMEM == 1</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#ifndef FASTLED_INCLUDE_PGMSPACE</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#define FASTLED_INCLUDE_PGMSPACE 1</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></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="preprocessor">#if FASTLED_INCLUDE_PGMSPACE == 1</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &lt;avr/pgmspace.h&gt;</span></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="preprocessor">#define FL_PROGMEM PROGMEM</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// Compatibility layer for devices that do or don&#39;t</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// have &quot;PROGMEM&quot; and the associated pgm_ accessors.</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// If a platform supports PROGMEM, it should define</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// &quot;FASTLED_USE_PROGMEM&quot; as 1, otherwise FastLED will</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// fall back to NOT using PROGMEM.</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// Whether or not pgmspace.h is #included is separately</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// controllable by FASTLED_INCLUDE_PGMSPACE, if needed.</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;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// If FASTLED_USE_PROGMEM is 1, we&#39;ll map FL_PROGMEM</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// and the FL_PGM_* accessors to the Arduino equivalents.</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#if FASTLED_USE_PROGMEM == 1</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#ifndef FASTLED_INCLUDE_PGMSPACE</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#define FASTLED_INCLUDE_PGMSPACE 1</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#if FASTLED_INCLUDE_PGMSPACE == 1</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;avr/pgmspace.h&gt;</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#endif</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="comment">// Note: only the &#39;near&#39; memory wrappers are provided.</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">// If you&#39;re using &#39;far&#39; memory, you already have</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// portability issues to work through, but you could</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// add more support here if needed.</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#define FL_PGM_READ_BYTE_NEAR(x) (pgm_read_byte_near(x))</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#define FL_PGM_READ_WORD_NEAR(x) (pgm_read_word_near(x))</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#define FL_PGM_READ_DWORD_NEAR(x) (pgm_read_dword_near(x))</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="comment">// Workaround for http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34734</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#ifdef FASTLED_AVR</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#ifdef PROGMEM</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#undef PROGMEM</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#define PROGMEM __attribute__((section(&quot;.progmem.data&quot;)))</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// If FASTLED_USE_PROGMEM is 0 or undefined,</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// we&#39;ll use regular memory (RAM) access.</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="comment">//empty PROGMEM simulation</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#define FL_PROGMEM</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#define FL_PGM_READ_BYTE_NEAR(x) (*((const uint8_t*)(x)))</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#define FL_PGM_READ_WORD_NEAR(x) (*((const uint16_t*)(x)))</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#define FL_PGM_READ_DWORD_NEAR(x) (*((const uint32_t*)(x)))</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;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#define FL_PROGMEM PROGMEM</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Note: only the &#39;near&#39; memory wrappers are provided.</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// If you&#39;re using &#39;far&#39; memory, you already have</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// portability issues to work through, but you could</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// add more support here if needed.</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#define FL_PGM_READ_BYTE_NEAR(x) (pgm_read_byte_near(x))</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#define FL_PGM_READ_WORD_NEAR(x) (pgm_read_word_near(x))</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#define FL_PGM_READ_DWORD_NEAR(x) (pgm_read_dword_near(x))</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Workaround for http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34734</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#ifdef FASTLED_AVR</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#ifdef PROGMEM</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#undef PROGMEM</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#define PROGMEM __attribute__((section(&quot;.progmem.data&quot;)))</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#endif</span></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="preprocessor">#else</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// If FASTLED_USE_PROGMEM is 0 or undefined,</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">// we&#39;ll use regular memory (RAM) access.</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="comment">//empty PROGMEM simulation</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#define FL_PROGMEM</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#define FL_PGM_READ_BYTE_NEAR(x) (*((const uint8_t*)(x)))</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#define FL_PGM_READ_WORD_NEAR(x) (*((const uint16_t*)(x)))</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#define FL_PGM_READ_DWORD_NEAR(x) (*((const uint32_t*)(x)))</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="fastled__progmem_8h.html">fastled_progmem.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/fastpin_8h.html b/docs/3.1/fastpin_8h.html
index 8b2161e5..5e84df23 100644
--- a/docs/3.1/fastpin_8h.html
+++ b/docs/3.1/fastpin_8h.html
@@ -162,7 +162,7 @@ typedef volatile uint32_t *&#160;</td><td class="memItemRight" valign="bottom"><
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="fastpin_8h.html">fastpin.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/fastpin_8h_source.html b/docs/3.1/fastpin_8h_source.html
index 78d7cd5c..0f8bb0e6 100644
--- a/docs/3.1/fastpin_8h_source.html
+++ b/docs/3.1/fastpin_8h_source.html
@@ -112,244 +112,247 @@ $(document).ready(function(){initNavTree('fastpin_8h_source.html','');});
<a href="fastpin_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_FASTPIN_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_FASTPIN_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">#include &quot;led_sysdefs.h&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&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="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="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;led_sysdefs.h&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#pragma GCC diagnostic push</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#pragma GCC diagnostic ignored &quot;-Wignored-qualifiers&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</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="l00014"></a><span class="lineno"> 14</span>&#160;FASTLED_NAMESPACE_BEGIN</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="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define NO_PIN 255</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</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="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// Pin access class - needs to tune for various platforms (naive fallback solution?)</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="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="class_selectable.html"> 24</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_selectable.html">Selectable</a> {</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> select() = 0;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() = 0;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> isSelected() = 0;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;};</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
-<div class="line"><a name="l00031"></a><span class="lineno"><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 = (<span class="keyword">volatile</span> RwReg*)portOutputRegister(digitalPinToPort(mPin));</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; mInPort = (<span class="keyword">volatile</span> RoReg*)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">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> 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> 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> 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="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#if !defined(FASTLED_NO_PINMAP)</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"><a class="line" href="class_pin.html"> 33</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="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">volatile</span> RwReg *mPort;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">volatile</span> RoReg *mInPort;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; RwReg mPinMask;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; uint8_t 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="keywordtype">void</span> _init() {</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; mPinMask = digitalPinToBitMask(mPin);</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; mPort = (<span class="keyword">volatile</span> RwReg*)portOutputRegister(digitalPinToPort(mPin));</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; mInPort = (<span class="keyword">volatile</span> RoReg*)portInputRegister(digitalPinToPort(mPin));</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="keyword">public</span>:</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</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="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">typedef</span> <span class="keyword">volatile</span> RwReg * port_ptr_t;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">typedef</span> RwReg port_t;</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">inline</span> <span class="keywordtype">void</span> setOutput() { pinMode(mPin, OUTPUT); }</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> setInput() { pinMode(mPin, INPUT); }</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">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="l00054"></a><span class="lineno"> 54</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="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">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="l00057"></a><span class="lineno"> 57</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="l00058"></a><span class="lineno"> 58</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</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="l00060"></a><span class="lineno"> 60</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="l00061"></a><span class="lineno"> 61</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="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="l00063"></a><span class="lineno"> 63</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="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</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="l00066"></a><span class="lineno"> 66</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="l00067"></a><span class="lineno"> 67</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="l00068"></a><span class="lineno"> 68</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="l00069"></a><span class="lineno"> 69</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> select() { hi(); }</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() { lo(); }</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</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="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_output_pin.html"> 75</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="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_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="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"><a class="line" href="class_input_pin.html"> 80</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="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</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="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="preprocessor">#else</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</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="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment">// available on a new platform</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</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="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">volatile</span> RwReg *mPort;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">volatile</span> RoReg *mInPort;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; RwReg mPinMask;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; uint8_t mPin;</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="keywordtype">void</span> _init() {</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// TODO: fill in init on a new platform</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; mPinMask = 0;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; mPort = NULL;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; mInPort = NULL;</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">public</span>:</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</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="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">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> 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> 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> 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="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">void</span> setPin(<span class="keywordtype">int</span> pin) { mPin = pin; _init(); }</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="keyword">typedef</span> <span class="keyword">volatile</span> RwReg * port_ptr_t;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">typedef</span> RwReg port_t;</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="keyword">inline</span> <span class="keywordtype">void</span> setOutput() { <span class="comment">/* TODO: Set pin output */</span> }</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</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="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</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="l00112"></a><span class="lineno"> 112</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="l00113"></a><span class="lineno"> 113</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</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="l00115"></a><span class="lineno"> 115</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="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</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="l00118"></a><span class="lineno"> 118</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="l00119"></a><span class="lineno"> 119</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="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="l00121"></a><span class="lineno"> 121</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="l00122"></a><span class="lineno"> 122</span>&#160;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</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="l00124"></a><span class="lineno"> 124</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="l00125"></a><span class="lineno"> 125</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="l00126"></a><span class="lineno"> 126</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="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">virtual</span> <span class="keywordtype">void</span> select() { hi(); }</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> release() { lo(); }</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</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="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_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="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_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="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="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="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</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="l00141"></a><span class="lineno"> 141</span>&#160;};</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
-<div class="line"><a name="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> strobe() <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((always_inline)) { toggle(); toggle(); }</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#ifdef FASTLED_FORCE_SOFTWARE_PINS</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_fast_pin.html"> 160</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="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">static</span> RwReg sPinMask;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">static</span> <span class="keyword">volatile</span> RwReg *sPort;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">static</span> <span class="keyword">volatile</span> RoReg *sInPort;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> _init() {</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#if !defined(FASTLED_NO_PINMAP)</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; sPinMask = digitalPinToBitMask(PIN);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; sPort = portOutputRegister(digitalPinToPort(PIN));</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; sInPort = portInputRegister(digitalPinToPort(PIN));</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="preprocessor">#endif</span></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;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">typedef</span> <span class="keyword">volatile</span> RwReg * port_ptr_t;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">typedef</span> RwReg port_t;</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> setOutput() { _init(); pinMode(PIN, OUTPUT); }</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> setInput() { _init(); pinMode(PIN, INPUT); }</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">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="l00179"></a><span class="lineno"> 179</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="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="l00181"></a><span class="lineno"> 181</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="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> 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="l00183"></a><span class="lineno"> 183</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="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">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="l00186"></a><span class="lineno"> 186</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="l00187"></a><span class="lineno"> 187</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="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"> 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="l00189"></a><span class="lineno"> 189</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="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">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="l00192"></a><span class="lineno"> 192</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="l00193"></a><span class="lineno"> 193</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="l00194"></a><span class="lineno"> 194</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="l00195"></a><span class="lineno"> 195</span>&#160;};</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">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="l00198"></a><span class="lineno"> 198</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="l00199"></a><span class="lineno"> 199</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="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="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="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="l00204"></a><span class="lineno"> 204</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="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="l00206"></a><span class="lineno"> 206</span>&#160; static_assert(validpin(), <span class="stringliteral">&quot;Invalid pin specified&quot;</span>);</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">static</span> <span class="keywordtype">void</span> _init() {</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">typedef</span> <span class="keyword">volatile</span> RwReg * port_ptr_t;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">typedef</span> RwReg port_t;</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> setOutput() { }</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> setInput() { }</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">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="l00218"></a><span class="lineno"> 218</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="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="l00220"></a><span class="lineno"> 220</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="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="l00222"></a><span class="lineno"> 222</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="l00223"></a><span class="lineno"> 223</span>&#160;</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> 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="l00225"></a><span class="lineno"> 225</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="l00226"></a><span class="lineno"> 226</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="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="l00228"></a><span class="lineno"> 228</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="l00229"></a><span class="lineno"> 229</span>&#160;</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</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="l00231"></a><span class="lineno"> 231</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="l00232"></a><span class="lineno"> 232</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="l00233"></a><span class="lineno"> 233</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="l00234"></a><span class="lineno"> 234</span>&#160;};</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"><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="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<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="l00238"></a><span class="lineno"><a class="line" href="class_fast_pin_b_b.html"> 238</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="l00239"></a><span class="lineno"> 239</span>&#160;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="keyword">typedef</span> <span class="keyword">volatile</span> uint32_t &amp; reg32_t;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="keyword">typedef</span> <span class="keyword">volatile</span> uint32_t * ptr_reg32_t;</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="l00243"></a><span class="lineno"> 243</span>&#160;FASTLED_NAMESPACE_END</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> <a href="fastpin_8h_source.html#l00031">fastpin.h:31</a></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> <a href="fastpin_8h_source.html#l00073">fastpin.h:73</a></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> <a href="fastpin_8h_source.html#l00236">fastpin.h:236</a></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> <a href="fastpin_8h_source.html#l00022">fastpin.h:22</a></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> <a href="fastpin_8h_source.html#l00158">fastpin.h:158</a></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> <a href="fastled__delay_8h_source.html#l00085">fastled_delay.h:85</a></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> <a href="fastpin_8h_source.html#l00078">fastpin.h:78</a></div></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor">#pragma GCC diagnostic pop</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<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> <a href="fastpin_8h_source.html#l00033">fastpin.h:33</a></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> <a href="fastpin_8h_source.html#l00075">fastpin.h:75</a></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> <a href="fastpin_8h_source.html#l00238">fastpin.h:238</a></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> <a href="fastpin_8h_source.html#l00024">fastpin.h:24</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </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> <a href="fastpin_8h_source.html#l00160">fastpin.h:160</a></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> <a href="fastled__delay_8h_source.html#l00092">fastled_delay.h:92</a></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> <a href="fastpin_8h_source.html#l00080">fastpin.h:80</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="fastpin_8h.html">fastpin.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/fastspi_8h_source.html b/docs/3.1/fastspi_8h_source.html
index 864b1dbf..5f792cce 100644
--- a/docs/3.1/fastspi_8h_source.html
+++ b/docs/3.1/fastspi_8h_source.html
@@ -112,133 +112,136 @@ $(document).ready(function(){initNavTree('fastspi_8h_source.html','');});
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_FASTSPI_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_FASTSPI_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">#include &quot;<a class="code" href="controller_8h.html">controller.h</a>&quot;</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;lib8tion.h&quot;</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;fastspi_bitbang.h&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&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">#include &quot;<a class="code" href="controller_8h.html">controller.h</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;lib8tion.h&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="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;fastspi_bitbang.h&quot;</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="preprocessor">#if defined(FASTLED_TEENSY3) &amp;&amp; (F_CPU &gt; 48000000)</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#define DATA_RATE_MHZ(X) (((48000000L / 1000000L) / X))</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define DATA_RATE_KHZ(X) (((48000000L / 1000L) / X))</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define DATA_RATE_MHZ(X) ((F_CPU / 1000000L) / X)</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define DATA_RATE_KHZ(X) ((F_CPU / 1000L) / X)</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// External SPI template definition with partial instantiation(s) to map to hardware SPI ports on platforms/builds where the pin</span></div>
-<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="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="l00011"></a><span class="lineno"> 11</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#if defined(FASTLED_TEENSY3) &amp;&amp; (F_CPU &gt; 48000000)</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#define DATA_RATE_MHZ(X) (((48000000L / 1000000L) / X))</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define DATA_RATE_KHZ(X) (((48000000L / 1000L) / X))</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define DATA_RATE_MHZ(X) ((F_CPU / 1000000L) / X)</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#define DATA_RATE_KHZ(X) ((F_CPU / 1000L) / X)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// External SPI template definition with partial instantiation(s) to map to hardware SPI ports on platforms/builds where the pin</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// mappings are known at compile time.</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="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#if !defined(FASTLED_ALL_PINS_HARDWARE_SPI)</span></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_s_p_i_output.html"> 30</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="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#endif</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="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="l00034"></a><span class="lineno"><a class="line" href="class_software_s_p_i_output.html"> 34</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="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="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#ifndef FASTLED_FORCE_SOFTWARE_SPI</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">#if defined(NRF51) &amp;&amp; defined(FASTLED_ALL_PINS_HARDWARE_SPI)</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</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="l00040"></a><span class="lineno"> 40</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="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#endif</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="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#if defined(SPI_DATA) &amp;&amp; defined(SPI_CLOCK)</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_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="preprocessor">#if defined(SPI2_DATA)</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#if defined(FASTLED_TEENSY3) &amp;&amp; defined(ARM_HARDWARE_SPI)</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="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
+<div class="line"><a name="l00048"></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"> 48</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="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="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#if defined(SPI2_DATA)</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
+<div class="line"><a name="l00053"></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"> 53</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="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
+<div class="line"><a name="l00056"></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"> 56</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="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">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
+<div class="line"><a name="l00059"></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"> 59</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="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#endif</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="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#elif defined(FASTLED_TEENSYLC) &amp;&amp; defined(ARM_HARDWARE_SPI)</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#define DECLARE_SPI0(__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, 0x40076000&gt; {};</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor"> #define DECLARE_SPI1(__DATA,__CLOCK) template&lt;uint8_t SPI_SPEED&gt;\</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</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="l00068"></a><span class="lineno"> 68</span>&#160;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;DECLARE_SPI0(7,13);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;DECLARE_SPI0(8,13);</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;DECLARE_SPI0(11,13);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;DECLARE_SPI0(12,13);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;DECLARE_SPI0(7,14);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;DECLARE_SPI0(8,14);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;DECLARE_SPI0(11,14);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;DECLARE_SPI0(12,14);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;DECLARE_SPI1(0,20);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;DECLARE_SPI1(1,20);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;DECLARE_SPI1(21,20);</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="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="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#elif defined(__SAM3X8E__)</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"> 84</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="l00085"></a><span class="lineno"> 85</span>&#160;</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="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#elif defined(AVR_HARDWARE_SPI)</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="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</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="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="l00091"></a><span class="lineno"> 91</span>&#160;<span class="preprocessor">#if defined(SPI_UART0_DATA)</span></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="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
+<div class="line"><a name="l00094"></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"> 94</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="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="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;</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="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#if defined(SPI_UART1_DATA)</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="keyword">template</span>&lt;u<span class="keywordtype">int</span>8_t SPI_SPEED&gt;</div>
+<div class="line"><a name="l00101"></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"> 101</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="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="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;</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;No hardware SPI pins defined. All SPI access will default to bitbanged output&quot;</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="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment">// #if defined(USART_DATA) &amp;&amp; defined(USART_CLOCK)</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment">// template&lt;uint8_t SPI_SPEED&gt;</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</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="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment">// #endif</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor">#warning &quot;Forcing software SPI - no hardware SPI for you!&quot;</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor">#endif</span></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> <a href="fastspi_8h_source.html#l00028">fastspi.h:28</a></div></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;FASTLED_NAMESPACE_END</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="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> <a href="fastspi_8h_source.html#l00030">fastspi.h:30</a></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> <a href="fastspi_8h_source.html#l00032">fastspi.h:32</a></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> <a href="fastspi__bitbang_8h_source.html#l00017">fastspi_bitbang.h:17</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </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> <a href="fastspi_8h_source.html#l00034">fastspi.h:34</a></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> <a href="fastspi__bitbang_8h_source.html#l00019">fastspi_bitbang.h:19</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>fastspi.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/fastspi__bitbang_8h_source.html b/docs/3.1/fastspi__bitbang_8h_source.html
index 23a854c4..2bc0c58d 100644
--- a/docs/3.1/fastspi__bitbang_8h_source.html
+++ b/docs/3.1/fastspi__bitbang_8h_source.html
@@ -112,367 +112,376 @@ $(document).ready(function(){initNavTree('fastspi__bitbang_8h_source.html','');}
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_FASTSPI_BITBANG_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_FASTSPI_BITBANG_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">#include &quot;<a class="code" href="fastled__delay_8h.html">fastled_delay.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="fastled__delay_8h.html">fastled_delay.h</a>&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Software SPI (aka bit-banging) support - with aggressive optimizations for when the clock and data pin are on the same port</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// TODO: Replace the select pin definition with a set of pins, to allow using mux hardware for routing in the future</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// Software SPI (aka bit-banging) support - with aggressive optimizations for when the clock and data pin are on the same port</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="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_SPEED&gt;</div>
-<div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="class_a_v_r_software_s_p_i_output.html"> 17</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_v_r_software_s_p_i_output.html">AVRSoftwareSPIOutput</a> {</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="comment">// The data types for pointers to the pin port - typedef&#39;d here from the Pin definition because on avr these</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="comment">// are pointers to 8 bit values, while on arm they are 32 bit</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> FastPin&lt;DATA_PIN&gt;::port_ptr_t data_ptr_t;</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::port_ptr_t</a> clock_ptr_t;</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="comment">// The data type for what&#39;s at a pin&#39;s port - typedef&#39;d here from the Pin definition because on avr the ports</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="comment">// are 8 bits wide while on arm they are 32.</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> FastPin&lt;DATA_PIN&gt;::port_t data_t;</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::port_t</a> clock_t;</div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="class_selectable.html">Selectable</a> *m_pSelect;</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">public</span>:</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="class_a_v_r_software_s_p_i_output.html">AVRSoftwareSPIOutput</a>() { m_pSelect = NULL; }</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="class_a_v_r_software_s_p_i_output.html">AVRSoftwareSPIOutput</a>(<a class="code" href="class_selectable.html">Selectable</a> *pSelect) { m_pSelect = pSelect; }</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</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="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; <span class="comment">// set the pins to output and make sure the select is released (which apparently means hi? This is a bit</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="comment">// confusing to me)</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::setOutput</a>();</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::setOutput</a>();</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; release();</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// stop the SPI output. Pretty much a NOP with software, as there&#39;s no registers to kick</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> stop() { }</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="comment">// wait until the SPI subsystem is ready for more data to write. A NOP when bitbanging</span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> wait() __attribute__((always_inline)) { }</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> waitFully() __attribute__((always_inline)) { wait(); }</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeByteNoWait(uint8_t b) __attribute__((always_inline)) { writeByte(b); }</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeBytePostWait(uint8_t b) __attribute__((always_inline)) { writeByte(b); wait(); }</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeWord(uint16_t w) __attribute__((always_inline)) { writeByte(w&gt;&gt;8); writeByte(w&amp;0xFF); }</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// TODO: Replace the select pin definition with a set of pins, to allow using mux hardware for routing in the future</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="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="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_SPEED&gt;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="class_a_v_r_software_s_p_i_output.html"> 19</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_a_v_r_software_s_p_i_output.html">AVRSoftwareSPIOutput</a> {</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="comment">// The data types for pointers to the pin port - typedef&#39;d here from the Pin definition because on avr these</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="comment">// are pointers to 8 bit values, while on arm they are 32 bit</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> FastPin&lt;DATA_PIN&gt;::port_ptr_t data_ptr_t;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::port_ptr_t</a> clock_ptr_t;</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="comment">// The data type for what&#39;s at a pin&#39;s port - typedef&#39;d here from the Pin definition because on avr the ports</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// are 8 bits wide while on arm they are 32.</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> FastPin&lt;DATA_PIN&gt;::port_t data_t;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::port_t</a> clock_t;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="class_selectable.html">Selectable</a> *m_pSelect;</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">public</span>:</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="class_a_v_r_software_s_p_i_output.html">AVRSoftwareSPIOutput</a>() { m_pSelect = NULL; }</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="class_a_v_r_software_s_p_i_output.html">AVRSoftwareSPIOutput</a>(<a class="code" href="class_selectable.html">Selectable</a> *pSelect) { m_pSelect = pSelect; }</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</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="l00035"></a><span class="lineno"> 35</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">void</span> init() {</div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="comment">// set the pins to output and make sure the select is released (which apparently means hi? This is a bit</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">// confusing to me)</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::setOutput</a>();</div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::setOutput</a>();</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; release();</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// stop the SPI output. Pretty much a NOP with software, as there&#39;s no registers to kick</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> stop() { }</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">// wait until the SPI subsystem is ready for more data to write. A NOP when bitbanging</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> wait() __attribute__((always_inline)) { }</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> waitFully() __attribute__((always_inline)) { wait(); }</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">static</span> <span class="keywordtype">void</span> writeByteNoWait(uint8_t b) __attribute__((always_inline)) { writeByte(b); }</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeBytePostWait(uint8_t b) __attribute__((always_inline)) { writeByte(b); wait(); }</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="comment">// naive writeByte implelentation, simply calls writeBit on the 8 bits in the byte.</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeByte(uint8_t b) {</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; writeBit&lt;7&gt;(b);</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; writeBit&lt;6&gt;(b);</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; writeBit&lt;5&gt;(b);</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; writeBit&lt;4&gt;(b);</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; writeBit&lt;3&gt;(b);</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; writeBit&lt;2&gt;(b);</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; writeBit&lt;1&gt;(b);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; writeBit&lt;0&gt;(b);</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// writeByte implementation with data/clock registers passed in.</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeByte(uint8_t b, clock_ptr_t clockpin, data_ptr_t datapin) {</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; writeBit&lt;7&gt;(b, clockpin, datapin);</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; writeBit&lt;6&gt;(b, clockpin, datapin);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; writeBit&lt;5&gt;(b, clockpin, datapin);</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; writeBit&lt;4&gt;(b, clockpin, datapin);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; writeBit&lt;3&gt;(b, clockpin, datapin);</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; writeBit&lt;2&gt;(b, clockpin, datapin);</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; writeBit&lt;1&gt;(b, clockpin, datapin);</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; writeBit&lt;0&gt;(b, clockpin, datapin);</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;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// writeByte implementation with the data register passed in and prebaked values for data hi w/clock hi and</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// low and data lo w/clock hi and lo. This is to be used when clock and data are on the same GPIO register,</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// can get close to getting a bit out the door in 2 clock cycles!</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeByte(uint8_t b, data_ptr_t datapin,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; data_t hival, data_t loval,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; clock_t hiclock, clock_t loclock) {</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; writeBit&lt;7&gt;(b, datapin, hival, loval, hiclock, loclock);</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; writeBit&lt;6&gt;(b, datapin, hival, loval, hiclock, loclock);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; writeBit&lt;5&gt;(b, datapin, hival, loval, hiclock, loclock);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; writeBit&lt;4&gt;(b, datapin, hival, loval, hiclock, loclock);</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; writeBit&lt;3&gt;(b, datapin, hival, loval, hiclock, loclock);</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; writeBit&lt;2&gt;(b, datapin, hival, loval, hiclock, loclock);</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; writeBit&lt;1&gt;(b, datapin, hival, loval, hiclock, loclock);</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; writeBit&lt;0&gt;(b, datapin, hival, loval, hiclock, loclock);</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;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// writeByte implementation with not just registers passed in, but pre-baked values for said registers for</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// data hi/lo and clock hi/lo values. Note: weird things will happen if this method is called in cases where</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">// the data and clock pins are on the same port! Don&#39;t do that!</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeByte(uint8_t b, clock_ptr_t clockpin, data_ptr_t datapin,</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; data_t hival, data_t loval,</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; clock_t hiclock, clock_t loclock) {</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; writeBit&lt;7&gt;(b, clockpin, datapin, hival, loval, hiclock, loclock);</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; writeBit&lt;6&gt;(b, clockpin, datapin, hival, loval, hiclock, loclock);</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; writeBit&lt;5&gt;(b, clockpin, datapin, hival, loval, hiclock, loclock);</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; writeBit&lt;4&gt;(b, clockpin, datapin, hival, loval, hiclock, loclock);</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; writeBit&lt;3&gt;(b, clockpin, datapin, hival, loval, hiclock, loclock);</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; writeBit&lt;2&gt;(b, clockpin, datapin, hival, loval, hiclock, loclock);</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; writeBit&lt;1&gt;(b, clockpin, datapin, hival, loval, hiclock, loclock);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; writeBit&lt;0&gt;(b, clockpin, datapin, hival, loval, hiclock, loclock);</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;</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor"> #define SPI_DELAY delaycycles&lt;1+((SPI_SPEED-2) / 2)&gt;();</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="preprocessor"> #define SPI_DELAY_HALF delaycycles&lt;1+ ((SPI_SPEED-4) / 4)&gt;();</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeWord(uint16_t w) __attribute__((always_inline)) { writeByte(w&gt;&gt;8); writeByte(w&amp;0xFF); }</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="comment">// naive writeByte implelentation, simply calls writeBit on the 8 bits in the byte.</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeByte(uint8_t b) {</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; writeBit&lt;7&gt;(b);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; writeBit&lt;6&gt;(b);</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; writeBit&lt;5&gt;(b);</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; writeBit&lt;4&gt;(b);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; writeBit&lt;3&gt;(b);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; writeBit&lt;2&gt;(b);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; writeBit&lt;1&gt;(b);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; writeBit&lt;0&gt;(b);</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// writeByte implementation with data/clock registers passed in.</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeByte(uint8_t b, clock_ptr_t clockpin, data_ptr_t datapin) {</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; writeBit&lt;7&gt;(b, clockpin, datapin);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; writeBit&lt;6&gt;(b, clockpin, datapin);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; writeBit&lt;5&gt;(b, clockpin, datapin);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; writeBit&lt;4&gt;(b, clockpin, datapin);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; writeBit&lt;3&gt;(b, clockpin, datapin);</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; writeBit&lt;2&gt;(b, clockpin, datapin);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; writeBit&lt;1&gt;(b, clockpin, datapin);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; writeBit&lt;0&gt;(b, clockpin, datapin);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// writeByte implementation with the data register passed in and prebaked values for data hi w/clock hi and</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// low and data lo w/clock hi and lo. This is to be used when clock and data are on the same GPIO register,</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// can get close to getting a bit out the door in 2 clock cycles!</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeByte(uint8_t b, data_ptr_t datapin,</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; data_t hival, data_t loval,</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; clock_t hiclock, clock_t loclock) {</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; writeBit&lt;7&gt;(b, datapin, hival, loval, hiclock, loclock);</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; writeBit&lt;6&gt;(b, datapin, hival, loval, hiclock, loclock);</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; writeBit&lt;5&gt;(b, datapin, hival, loval, hiclock, loclock);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; writeBit&lt;4&gt;(b, datapin, hival, loval, hiclock, loclock);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; writeBit&lt;3&gt;(b, datapin, hival, loval, hiclock, loclock);</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; writeBit&lt;2&gt;(b, datapin, hival, loval, hiclock, loclock);</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; writeBit&lt;1&gt;(b, datapin, hival, loval, hiclock, loclock);</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; writeBit&lt;0&gt;(b, datapin, hival, loval, hiclock, loclock);</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="comment">// writeByte implementation with not just registers passed in, but pre-baked values for said registers for</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// data hi/lo and clock hi/lo values. Note: weird things will happen if this method is called in cases where</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// the data and clock pins are on the same port! Don&#39;t do that!</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeByte(uint8_t b, clock_ptr_t clockpin, data_ptr_t datapin,</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; data_t hival, data_t loval,</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; clock_t hiclock, clock_t loclock) {</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; writeBit&lt;7&gt;(b, clockpin, datapin, hival, loval, hiclock, loclock);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; writeBit&lt;6&gt;(b, clockpin, datapin, hival, loval, hiclock, loclock);</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; writeBit&lt;5&gt;(b, clockpin, datapin, hival, loval, hiclock, loclock);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; writeBit&lt;4&gt;(b, clockpin, datapin, hival, loval, hiclock, loclock);</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; writeBit&lt;3&gt;(b, clockpin, datapin, hival, loval, hiclock, loclock);</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; writeBit&lt;2&gt;(b, clockpin, datapin, hival, loval, hiclock, loclock);</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; writeBit&lt;1&gt;(b, clockpin, datapin, hival, loval, hiclock, loclock);</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; writeBit&lt;0&gt;(b, clockpin, datapin, hival, loval, hiclock, loclock);</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;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keyword">public</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="comment">// write the BIT&#39;th bit out via spi, setting the data pin then strobing the clcok</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t BIT&gt; __attribute__((always_inline, hot)) <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> writeBit(uint8_t b) {</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span>(b &amp; (1 &lt;&lt; BIT)) {</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hi</a>();</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::hi</a>(); SPI_DELAY;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::lo</a>(); SPI_DELAY;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::lo</a>();</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::hi</a>(); SPI_DELAY;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::lo</a>(); SPI_DELAY;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// write the BIT&#39;th bit out via spi, setting the data pin then strobing the clock, using the passed in pin registers to accelerate access if needed</span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t BIT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> writeBit(uint8_t b, clock_ptr_t clockpin, data_ptr_t datapin) {</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>(b &amp; (1 &lt;&lt; BIT)) {</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hi</a>(datapin);</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::hi</a>(clockpin); SPI_DELAY;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::lo</a>(clockpin); SPI_DELAY;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::lo</a>(datapin);</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::hi</a>(clockpin); SPI_DELAY;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::lo</a>(clockpin); SPI_DELAY;</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; }</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">// the version of write to use when clock and data are on separate pins with precomputed values for setting</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">// the clock and data pins</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t BIT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> writeBit(uint8_t b, clock_ptr_t clockpin, data_ptr_t datapin,</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; data_t hival, data_t loval, clock_t hiclock, clock_t loclock) {</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">// // only need to explicitly set clock hi if clock and data are on different ports</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span>(b &amp; (1 &lt;&lt; BIT)) {</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::fastset</a>(datapin, hival);</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::fastset</a>(clockpin, hiclock); SPI_DELAY;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::fastset</a>(clockpin, loclock); SPI_DELAY;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">// NOP;</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::fastset</a>(datapin, loval);</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::fastset</a>(clockpin, hiclock); SPI_DELAY;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::fastset</a>(clockpin, loclock); SPI_DELAY;</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;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">// the version of write to use when clock and data are on the same port with precomputed values for the various</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// combinations</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t BIT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> writeBit(uint8_t b, data_ptr_t clockdatapin,</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; data_t datahiclockhi, data_t dataloclockhi,</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; data_t datahiclocklo, data_t dataloclocklo) {</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#if 0</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; writeBit&lt;BIT&gt;(b);</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span>(b &amp; (1 &lt;&lt; BIT)) {</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::fastset</a>(clockdatapin, datahiclocklo); SPI_DELAY_HALF;</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::fastset</a>(clockdatapin, datahiclockhi); SPI_DELAY;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::fastset</a>(clockdatapin, datahiclocklo); SPI_DELAY_HALF;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">// NOP;</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::fastset</a>(clockdatapin, dataloclocklo); SPI_DELAY_HALF;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::fastset</a>(clockdatapin, dataloclockhi); SPI_DELAY;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::fastset</a>(clockdatapin, dataloclocklo); SPI_DELAY_HALF;</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="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">public</span>:</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">// select the SPI output (TODO: research whether this really means hi or lo. Alt TODO: move select responsibility out of the SPI classes</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="comment">// entirely, make it up to the caller to remember to lock/select the line?)</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordtype">void</span> select() { <span class="keywordflow">if</span>(m_pSelect != NULL) { m_pSelect-&gt;select(); } } <span class="comment">// FastPin&lt;SELECT_PIN&gt;::hi(); }</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">// release the SPI line</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordtype">void</span> release() { <span class="keywordflow">if</span>(m_pSelect != NULL) { m_pSelect-&gt;release(); } } <span class="comment">// FastPin&lt;SELECT_PIN&gt;::lo(); }</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">// Write out len bytes of the given value out over SPI. Useful for quickly flushing, say, a line of 0&#39;s down the line.</span></div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">void</span> writeBytesValue(uint8_t value, <span class="keywordtype">int</span> len) {</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; select();</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; writeBytesValueRaw(value, len);</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; release();</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">static</span> <span class="keywordtype">void</span> writeBytesValueRaw(uint8_t value, <span class="keywordtype">int</span> len) {</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor">#ifdef FAST_SPI_INTERRUPTS_WRITE_PINS</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// TODO: Weird things may happen if software bitbanging SPI output and other pins on the output reigsters are being twiddled. Need</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="comment">// to allow specifying whether or not exclusive i/o access is allowed during this process, and if i/o access is not allowed fall</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// back to the degenerative code below</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">while</span>(len--) {</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; writeByte(value);</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;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">register</span> data_ptr_t datapin = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::port</a>();</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; <span class="keywordflow">if</span>(<a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::port</a>() != <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::port</a>()) {</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="comment">// If data and clock are on different ports, then writing a bit will consist of writing the value foor</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="comment">// the bit (hi or low) to the data pin port, and then two writes to the clock port to strobe the clock line</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">register</span> clock_ptr_t clockpin = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::port</a>();</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">register</span> data_t datahi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>();</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">register</span> data_t datalo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>();</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">register</span> clock_t clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::hival</a>();</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">register</span> clock_t clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::loval</a>();</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">while</span>(len--) {</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; writeByte(value, clockpin, datapin, datahi, datalo, clockhi, clocklo);</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;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="comment">// If data and clock are on the same port then we can combine setting the data and clock pins</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">register</span> data_t datahi_clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>() | <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keyword">register</span> data_t datalo_clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>() | <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">register</span> data_t datahi_clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>() &amp; ~<a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">register</span> data_t datalo_clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>() &amp; ~<a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</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="keywordflow">while</span>(len--) {</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; writeByte(value, datapin, datahi_clockhi, datalo_clockhi, datahi_clocklo, datalo_clocklo);</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; }</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor">#endif</span></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;</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="comment">// write a block of len uint8_ts out. Need to type this better so that explicit casts into the call aren&#39;t required.</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// note that this template version takes a class parameter for a per-byte modifier to the data.</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</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="l00236"></a><span class="lineno"> 236</span>&#160; select();</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#ifdef FAST_SPI_INTERRUPTS_WRITE_PINS</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; uint8_t *end = data + len;</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">while</span>(data != end) {</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; writeByte(D::adjust(*data++));</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">#else</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">register</span> clock_ptr_t clockpin = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::port</a>();</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">register</span> data_ptr_t datapin = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::port</a>();</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::port</a>() != <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::port</a>()) {</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">// If data and clock are on different ports, then writing a bit will consist of writing the value foor</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="comment">// the bit (hi or low) to the data pin port, and then two writes to the clock port to strobe the clock line</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keyword">register</span> data_t datahi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>();</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">register</span> data_t datalo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>();</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">register</span> clock_t clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::hival</a>();</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">register</span> clock_t clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::loval</a>();</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; uint8_t *end = data + len;</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="keywordflow">while</span>(data != end) {</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; writeByte(D::adjust(*data++), clockpin, datapin, datahi, datalo, clockhi, clocklo);</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="keywordflow">else</span> {</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// FastPin&lt;CLOCK_PIN&gt;::hi();</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="comment">// If data and clock are on the same port then we can combine setting the data and clock pins</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">register</span> data_t datahi_clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>() | <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">register</span> data_t datalo_clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>() | <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">register</span> data_t datahi_clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>() &amp; ~<a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">register</span> data_t datalo_clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>() &amp; ~<a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// We want to make sure that the clock pulse is held high for a nininum of 35ns.</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="preprocessor"> #define MIN_DELAY (NS(35) - 3)</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"> #define CLOCK_HI_DELAY delaycycles&lt;MIN_DELAY&gt;(); delaycycles&lt;(((SPI_SPEED-6) / 2) - MIN_DELAY)&gt;();</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="preprocessor"> #define CLOCK_LO_DELAY delaycycles&lt;(((SPI_SPEED-6) / 4))&gt;();</span></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="comment">// write the BIT&#39;th bit out via spi, setting the data pin then strobing the clcok</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t BIT&gt; __attribute__((always_inline, hot)) <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> writeBit(uint8_t b) {</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">//cli();</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span>(b &amp; (1 &lt;&lt; BIT)) {</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hi</a>();</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::hi</a>(); CLOCK_HI_DELAY;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::lo</a>(); CLOCK_LO_DELAY;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::lo</a>();</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::hi</a>(); CLOCK_HI_DELAY;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::lo</a>(); CLOCK_LO_DELAY;</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="comment">//sei();</span></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">private</span>:</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="comment">// write the BIT&#39;th bit out via spi, setting the data pin then strobing the clock, using the passed in pin registers to accelerate access if needed</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t BIT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> writeBit(uint8_t b, clock_ptr_t clockpin, data_ptr_t datapin) {</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span>(b &amp; (1 &lt;&lt; BIT)) {</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hi</a>(datapin);</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::hi</a>(clockpin); CLOCK_HI_DELAY;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::lo</a>(clockpin); CLOCK_LO_DELAY;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::lo</a>(datapin);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::hi</a>(clockpin); CLOCK_HI_DELAY;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::lo</a>(clockpin); CLOCK_LO_DELAY;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">// the version of write to use when clock and data are on separate pins with precomputed values for setting</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="comment">// the clock and data pins</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t BIT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> writeBit(uint8_t b, clock_ptr_t clockpin, data_ptr_t datapin,</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; data_t hival, data_t loval, clock_t hiclock, clock_t loclock) {</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">// // only need to explicitly set clock hi if clock and data are on different ports</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span>(b &amp; (1 &lt;&lt; BIT)) {</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::fastset</a>(datapin, hival);</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::fastset</a>(clockpin, hiclock); CLOCK_HI_DELAY;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::fastset</a>(clockpin, loclock); CLOCK_LO_DELAY;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// NOP;</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::fastset</a>(datapin, loval);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::fastset</a>(clockpin, hiclock); CLOCK_HI_DELAY;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::fastset</a>(clockpin, loclock); CLOCK_LO_DELAY;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">// the version of write to use when clock and data are on the same port with precomputed values for the various</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// combinations</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">template</span> &lt;u<span class="keywordtype">int</span>8_t BIT&gt; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">void</span> writeBit(uint8_t b, data_ptr_t clockdatapin,</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; data_t datahiclockhi, data_t dataloclockhi,</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; data_t datahiclocklo, data_t dataloclocklo) {</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor">#if 0</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; writeBit&lt;BIT&gt;(b);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span>(b &amp; (1 &lt;&lt; BIT)) {</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::fastset</a>(clockdatapin, datahiclocklo);</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::fastset</a>(clockdatapin, datahiclockhi); CLOCK_HI_DELAY;</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::fastset</a>(clockdatapin, datahiclocklo); CLOCK_LO_DELAY;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">// NOP;</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::fastset</a>(clockdatapin, dataloclocklo);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::fastset</a>(clockdatapin, dataloclockhi); CLOCK_HI_DELAY;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::fastset</a>(clockdatapin, dataloclocklo); CLOCK_LO_DELAY;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="keyword">public</span>:</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; <span class="comment">// select the SPI output (TODO: research whether this really means hi or lo. Alt TODO: move select responsibility out of the SPI classes</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// entirely, make it up to the caller to remember to lock/select the line?)</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordtype">void</span> select() { <span class="keywordflow">if</span>(m_pSelect != NULL) { m_pSelect-&gt;select(); } } <span class="comment">// FastPin&lt;SELECT_PIN&gt;::hi(); }</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="comment">// release the SPI line</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordtype">void</span> release() { <span class="keywordflow">if</span>(m_pSelect != NULL) { m_pSelect-&gt;release(); } } <span class="comment">// FastPin&lt;SELECT_PIN&gt;::lo(); }</span></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="comment">// Write out len bytes of the given value out over SPI. Useful for quickly flushing, say, a line of 0&#39;s down the line.</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordtype">void</span> writeBytesValue(uint8_t value, <span class="keywordtype">int</span> len) {</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; select();</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; writeBytesValueRaw(value, len);</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; release();</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</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="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#ifdef FAST_SPI_INTERRUPTS_WRITE_PINS</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="comment">// TODO: Weird things may happen if software bitbanging SPI output and other pins on the output reigsters are being twiddled. Need</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="comment">// to allow specifying whether or not exclusive i/o access is allowed during this process, and if i/o access is not allowed fall</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="comment">// back to the degenerative code below</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">while</span>(len--) {</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; writeByte(value);</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="preprocessor">#else</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">register</span> data_ptr_t datapin = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::port</a>();</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="keywordflow">if</span>(<a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::port</a>() != <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::port</a>()) {</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="comment">// If data and clock are on different ports, then writing a bit will consist of writing the value foor</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">// the bit (hi or low) to the data pin port, and then two writes to the clock port to strobe the clock line</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">register</span> clock_ptr_t clockpin = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::port</a>();</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">register</span> data_t datahi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>();</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">register</span> data_t datalo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>();</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">register</span> clock_t clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::hival</a>();</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keyword">register</span> clock_t clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::loval</a>();</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">while</span>(len--) {</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; writeByte(value, clockpin, datapin, datahi, datalo, clockhi, clocklo);</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="keywordflow">else</span> {</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="comment">// If data and clock are on the same port then we can combine setting the data and clock pins</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">register</span> data_t datahi_clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>() | <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">register</span> data_t datalo_clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>() | <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">register</span> data_t datahi_clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>() &amp; ~<a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keyword">register</span> data_t datalo_clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>() &amp; ~<a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</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="keywordflow">while</span>(len--) {</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; writeByte(value, datapin, datahi_clockhi, datalo_clockhi, datahi_clocklo, datalo_clocklo);</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; }</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">// write a block of len uint8_ts out. Need to type this better so that explicit casts into the call aren&#39;t required.</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">// note that this template version takes a class parameter for a per-byte modifier to the data.</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</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="l00244"></a><span class="lineno"> 244</span>&#160; select();</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor">#ifdef FAST_SPI_INTERRUPTS_WRITE_PINS</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; uint8_t *end = data + len;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">while</span>(data != end) {</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; writeByte(D::adjust(*data++));</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">register</span> clock_ptr_t clockpin = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::port</a>();</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">register</span> data_ptr_t datapin = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::port</a>();</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; <span class="keywordflow">if</span>(<a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::port</a>() != <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::port</a>()) {</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="comment">// If data and clock are on different ports, then writing a bit will consist of writing the value foor</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">// the bit (hi or low) to the data pin port, and then two writes to the clock port to strobe the clock line</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">register</span> data_t datahi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>();</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">register</span> data_t datalo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>();</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">register</span> clock_t clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::hival</a>();</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">register</span> clock_t clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::loval</a>();</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; uint8_t *end = data + len;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">while</span>(data != end) {</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; writeByte(D::adjust(*data++), clockpin, datapin, datahi, datalo, clockhi, clocklo);</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; uint8_t *end = data + len;</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="keywordflow">while</span>(data != end) {</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; writeByte(D::adjust(*data++), datapin, datahi_clockhi, datalo_clockhi, datahi_clocklo, datalo_clocklo);</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; }</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="comment">// FastPin&lt;CLOCK_PIN&gt;::lo();</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; D::postBlock(len);</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; release();</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="comment">// default version of writing a block of data out to the SPI port, with no data modifications being made</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordtype">void</span> writeBytes(<span class="keyword">register</span> uint8_t *data, <span class="keywordtype">int</span> len) { writeBytes&lt;DATA_NOP&gt;(data, len); }</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="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="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// parameters indicate how many uint8_ts to skip at the beginning of each grouping, as well as a class specifying a per</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// byte of data modification to be made. (See DATA_NOP above)</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</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; __attribute__((noinline)) <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="l00287"></a><span class="lineno"> 287</span>&#160; select();</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordtype">int</span> len = pixels.mLen;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="comment">// FastPin&lt;CLOCK_PIN&gt;::hi();</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="comment">// If data and clock are on the same port then we can combine setting the data and clock pins</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keyword">register</span> data_t datahi_clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>() | <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">register</span> data_t datalo_clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>() | <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keyword">register</span> data_t datahi_clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>() &amp; ~<a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">register</span> data_t datalo_clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>() &amp; ~<a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</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; uint8_t *end = data + len;</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="keywordflow">while</span>(data != end) {</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; writeByte(D::adjust(*data++), datapin, datahi_clockhi, datalo_clockhi, datahi_clocklo, datalo_clocklo);</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">// FastPin&lt;CLOCK_PIN&gt;::lo();</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"> 282</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; D::postBlock(len);</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; release();</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;</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="comment">// default version of writing a block of data out to the SPI port, with no data modifications being made</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordtype">void</span> writeBytes(<span class="keyword">register</span> uint8_t *data, <span class="keywordtype">int</span> len) { writeBytes&lt;DATA_NOP&gt;(data, len); }</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor">#ifdef FAST_SPI_INTERRUPTS_WRITE_PINS</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="comment">// If interrupts or other things may be generating output while we&#39;re working on things, then we need</span></div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">// to use this block</span></div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">while</span>(pixels.has(1)) {</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">if</span>(FLAGS &amp; FLAG_START_BIT) {</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; writeBit&lt;0&gt;(1);</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; writeByte(D::adjust(pixels.loadAndScale0()));</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; writeByte(D::adjust(pixels.loadAndScale1()));</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; writeByte(D::adjust(pixels.loadAndScale2()));</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; pixels.advanceData();</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; pixels.stepDithering();</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">#else</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="comment">// If we can guaruntee that no one else will be writing data while we are running (namely, changing the values of the PORT/PDOR pins)</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="comment">// then we can use a bunch of optimizations in here</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keyword">register</span> data_ptr_t datapin = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::port</a>();</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::port</a>() != <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::port</a>()) {</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">register</span> clock_ptr_t clockpin = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::port</a>();</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="comment">// If data and clock are on different ports, then writing a bit will consist of writing the value foor</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="comment">// the bit (hi or low) to the data pin port, and then two writes to the clock port to strobe the clock line</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keyword">register</span> data_t datahi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>();</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keyword">register</span> data_t datalo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>();</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">register</span> clock_t clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::hival</a>();</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">register</span> clock_t clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::loval</a>();</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">while</span>(pixels.has(1)) {</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">if</span>(FLAGS &amp; FLAG_START_BIT) {</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; writeBit&lt;0&gt;(1, clockpin, datapin, datahi, datalo, clockhi, clocklo);</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; writeByte(D::adjust(pixels.loadAndScale0()), clockpin, datapin, datahi, datalo, clockhi, clocklo);</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; writeByte(D::adjust(pixels.loadAndScale1()), clockpin, datapin, datahi, datalo, clockhi, clocklo);</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; writeByte(D::adjust(pixels.loadAndScale2()), clockpin, datapin, datahi, datalo, clockhi, clocklo);</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;</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="comment">// If data and clock are on the same port then we can combine setting the data and clock pins</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keyword">register</span> data_t datahi_clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>() | <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">register</span> data_t datalo_clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>() | <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">register</span> data_t datahi_clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>() &amp; ~<a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">register</span> data_t datalo_clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>() &amp; ~<a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</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">while</span>(pixels.has(1)) {</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">if</span>(FLAGS &amp; FLAG_START_BIT) {</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; writeBit&lt;0&gt;(1, datapin, datahi_clockhi, datalo_clockhi, datahi_clocklo, datalo_clocklo);</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; writeByte(D::adjust(pixels.loadAndScale0()), datapin, datahi_clockhi, datalo_clockhi, datahi_clocklo, datalo_clocklo);</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; writeByte(D::adjust(pixels.loadAndScale1()), datapin, datahi_clockhi, datalo_clockhi, datahi_clocklo, datalo_clocklo);</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; writeByte(D::adjust(pixels.loadAndScale2()), datapin, datahi_clockhi, datalo_clockhi, datahi_clocklo, datalo_clocklo);</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; pixels.advanceData();</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; pixels.stepDithering();</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; }</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; D::postBlock(len);</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; release();</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; }</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;};</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div>
-<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="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">// 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="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">// parameters indicate how many uint8_ts to skip at the beginning of each grouping, as well as a class specifying a per</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="comment">// byte of data modification to be made. (See DATA_NOP above)</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</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; __attribute__((noinline)) <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="l00295"></a><span class="lineno"> 295</span>&#160; select();</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordtype">int</span> len = pixels.mLen;</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor">#ifdef FAST_SPI_INTERRUPTS_WRITE_PINS</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="comment">// If interrupts or other things may be generating output while we&#39;re working on things, then we need</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="comment">// to use this block</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">while</span>(pixels.has(1)) {</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span>(FLAGS &amp; FLAG_START_BIT) {</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; writeBit&lt;0&gt;(1);</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; writeByte(D::adjust(pixels.loadAndScale0()));</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; writeByte(D::adjust(pixels.loadAndScale1()));</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; writeByte(D::adjust(pixels.loadAndScale2()));</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; pixels.advanceData();</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; pixels.stepDithering();</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="preprocessor">#else</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="comment">// If we can guaruntee that no one else will be writing data while we are running (namely, changing the values of the PORT/PDOR pins)</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="comment">// then we can use a bunch of optimizations in here</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">register</span> data_ptr_t datapin = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::port</a>();</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::port</a>() != <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::port</a>()) {</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">register</span> clock_ptr_t clockpin = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::port</a>();</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="comment">// If data and clock are on different ports, then writing a bit will consist of writing the value foor</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="comment">// the bit (hi or low) to the data pin port, and then two writes to the clock port to strobe the clock line</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keyword">register</span> data_t datahi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>();</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">register</span> data_t datalo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>();</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keyword">register</span> clock_t clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::hival</a>();</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">register</span> clock_t clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::loval</a>();</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">while</span>(pixels.has(1)) {</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">if</span>(FLAGS &amp; FLAG_START_BIT) {</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; writeBit&lt;0&gt;(1, clockpin, datapin, datahi, datalo, clockhi, clocklo);</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; writeByte(D::adjust(pixels.loadAndScale0()), clockpin, datapin, datahi, datalo, clockhi, clocklo);</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; writeByte(D::adjust(pixels.loadAndScale1()), clockpin, datapin, datahi, datalo, clockhi, clocklo);</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; writeByte(D::adjust(pixels.loadAndScale2()), clockpin, datapin, datahi, datalo, clockhi, clocklo);</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; pixels.advanceData();</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; pixels.stepDithering();</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="l00336"></a><span class="lineno"> 336</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="comment">// If data and clock are on the same port then we can combine setting the data and clock pins</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">register</span> data_t datahi_clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>() | <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">register</span> data_t datalo_clockhi = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>() | <a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">register</span> data_t datahi_clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::hival</a>() &amp; ~<a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">register</span> data_t datalo_clocklo = <a class="code" href="class_fast_pin.html">FastPin&lt;DATA_PIN&gt;::loval</a>() &amp; ~<a class="code" href="class_fast_pin.html">FastPin&lt;CLOCK_PIN&gt;::mask</a>();</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="keywordflow">while</span>(pixels.has(1)) {</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">if</span>(FLAGS &amp; FLAG_START_BIT) {</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; writeBit&lt;0&gt;(1, datapin, datahi_clockhi, datalo_clockhi, datahi_clocklo, datalo_clocklo);</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; writeByte(D::adjust(pixels.loadAndScale0()), datapin, datahi_clockhi, datalo_clockhi, datahi_clocklo, datalo_clocklo);</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; writeByte(D::adjust(pixels.loadAndScale1()), datapin, datahi_clockhi, datalo_clockhi, datahi_clocklo, datalo_clocklo);</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; writeByte(D::adjust(pixels.loadAndScale2()), datapin, datahi_clockhi, datalo_clockhi, datahi_clocklo, datalo_clocklo);</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; pixels.advanceData();</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; pixels.stepDithering();</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; }</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> <a href="controller_8h_source.html#l00187">controller.h:187</a></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> <a href="fastpin_8h_source.html#l00022">fastpin.h:22</a></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> <a href="fastspi__bitbang_8h_source.html#l00017">fastspi_bitbang.h:17</a></div></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; D::postBlock(len);</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; release();</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;};</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;FASTLED_NAMESPACE_END</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="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="ttdef"><b>Definition:</b> <a href="controller_8h_source.html#l00177">controller.h:177</a></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> <a href="fastpin_8h_source.html#l00024">fastpin.h:24</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </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> <a href="fastspi__bitbang_8h_source.html#l00019">fastspi_bitbang.h:19</a></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> <a href="fastpin_8h_source.html#l00158">fastpin.h:158</a></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> <a href="fastpin_8h_source.html#l00160">fastpin.h:160</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>fastspi_bitbang.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/fastspi__dma_8h_source.html b/docs/3.1/fastspi__dma_8h_source.html
index 1aed38b6..5d2753fb 100644
--- a/docs/3.1/fastspi__dma_8h_source.html
+++ b/docs/3.1/fastspi__dma_8h_source.html
@@ -115,7 +115,7 @@ $(document).ready(function(){initNavTree('fastspi__dma_8h_source.html','');});
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>fastspi_dma.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/fastspi__nop_8h_source.html b/docs/3.1/fastspi__nop_8h_source.html
index ac73862b..73be9662 100644
--- a/docs/3.1/fastspi__nop_8h_source.html
+++ b/docs/3.1/fastspi__nop_8h_source.html
@@ -112,68 +112,74 @@ $(document).ready(function(){initNavTree('fastspi__nop_8h_source.html','');});
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_FASTSPI_NOP_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_FASTSPI_NOP_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;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#if 0 // Guard against the arduino ide idiotically including every header file</span></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"><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; <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="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&quot;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</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="l00014"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html"> 14</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="l00015"></a><span class="lineno"> 15</span>&#160; <a class="code" href="class_selectable.html">Selectable</a> *m_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"><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"><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"><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"><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> <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"><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"><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"><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"><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"><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"><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"><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="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</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="l00019"></a><span class="lineno"> 19</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="l00020"></a><span class="lineno"> 20</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#a6fca9a7e475aecae123879044d33f195"> 22</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="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#ad9ff9bf62427b69e3bb578699e0ce561"> 25</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="l00026"></a><span class="lineno"> 26</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#ae07bb6f787879f28979cccec9ec4965d"> 28</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="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#a0599fbdf5e04a633d24ff17033443237"> 31</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="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</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="l00035"></a><span class="lineno"> 35</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637"> 37</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="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#af5485fc346e12c50480b969e5b242636"> 40</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="l00042"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#a31ccabe3e4987751ad67a5d06e502df2"> 42</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="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#a7c67ce1f9d44cfcac9b94fa9f097835f"> 45</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="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#a2f8e72323c827eb869b222b5a36ebbc1"> 48</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="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#a7b33548cfee1f5cda7a8a48fa45ee460"> 51</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="l00052"></a><span class="lineno"> 52</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#a9b0cd7fa63b1cff86c61f796aa8a6637"> 54</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="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_n_o_p_s_p_i_output.html#aa192a8b0f727e7c9fc399e94532e287f"> 57</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="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="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> <a href="fastspi__nop_8h_source.html#l00027">fastspi_nop.h:27</a></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> <a href="fastspi__nop_8h_source.html#l00047">fastspi_nop.h:47</a></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> <a href="fastspi__nop_8h_source.html#l00033">fastspi_nop.h:33</a></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> <a href="fastspi__nop_8h_source.html#l00036">fastspi_nop.h:36</a></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> <a href="fastspi__nop_8h_source.html#l00018">fastspi_nop.h:18</a></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> <a href="controller_8h_source.html#l00187">controller.h:187</a></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> <a href="fastpin_8h_source.html#l00022">fastpin.h:22</a></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> <a href="fastspi__nop_8h_source.html#l00021">fastspi_nop.h:21</a></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> <a href="fastspi__nop_8h_source.html#l00010">fastspi_nop.h:10</a></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> <a href="fastspi__nop_8h_source.html#l00024">fastspi_nop.h:24</a></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> <a href="fastspi__nop_8h_source.html#l00044">fastspi_nop.h:44</a></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> <a href="fastspi__nop_8h_source.html#l00041">fastspi_nop.h:41</a></div></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;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#endif</span></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> <a href="fastspi__nop_8h_source.html#l00031">fastspi_nop.h:31</a></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> <a href="fastspi__nop_8h_source.html#l00051">fastspi_nop.h:51</a></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> <a href="fastspi__nop_8h_source.html#l00037">fastspi_nop.h:37</a></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> <a href="fastspi__nop_8h_source.html#l00040">fastspi_nop.h:40</a></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> <a href="fastspi__nop_8h_source.html#l00022">fastspi_nop.h:22</a></div></div>
+<div class="ttc" id="struct_pixel_controller_html"><div class="ttname"><a href="struct_pixel_controller.html">PixelController</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_8h_source.html#l00177">controller.h:177</a></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> <a href="fastpin_8h_source.html#l00024">fastpin.h:24</a></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> <a href="fastspi__nop_8h_source.html#l00025">fastspi_nop.h:25</a></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> <a href="fastspi__nop_8h_source.html#l00014">fastspi_nop.h:14</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </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> <a href="fastspi__nop_8h_source.html#l00028">fastspi_nop.h:28</a></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> <a href="fastspi__nop_8h_source.html#l00048">fastspi_nop.h:48</a></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> <a href="fastspi__nop_8h_source.html#l00045">fastspi_nop.h:45</a></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> <a href="fastspi__nop_8h_source.html#l00053">fastspi_nop.h:53</a></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> <a href="fastspi__nop_8h_source.html#l00038">fastspi_nop.h:38</a></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> <a href="fastspi__nop_8h_source.html#l00057">fastspi_nop.h:57</a></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> <a href="fastspi__nop_8h_source.html#l00042">fastspi_nop.h:42</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>fastspi_nop.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/fastspi__ref_8h_source.html b/docs/3.1/fastspi__ref_8h_source.html
index 1157e5b4..24c5f892 100644
--- a/docs/3.1/fastspi__ref_8h_source.html
+++ b/docs/3.1/fastspi__ref_8h_source.html
@@ -112,103 +112,110 @@ $(document).ready(function(){initNavTree('fastspi__ref_8h_source.html','');});
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_FASTSPI_ARM_SAM_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_FASTSPI_ARM_SAM_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;FASTLED_NAMESPACE_BEGIN</div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// A 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"><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>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; SAMHArdwareSPIOutput(<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;</div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="comment">// set the object representing the selectable</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordtype">void</span> setSelect(<a class="code" href="class_selectable.html">Selectable</a> *pSelect) { <span class="comment">/* TODO */</span> }</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#if 0 // guard against the arduino ide idiotically including every header file</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&quot;</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;FASTLED_NAMESPACE_BEGIN</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="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="l00010"></a><span class="lineno"> 10</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="l00011"></a><span class="lineno"> 11</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="l00012"></a><span class="lineno"><a class="line" href="class_r_e_f_hardware_s_p_i_output.html"> 12</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="l00013"></a><span class="lineno"> 13</span>&#160; <a class="code" href="class_selectable.html">Selectable</a> *m_pSelect;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; SAMHardwareSPIOutput() { m_pSelect = NULL; }</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; SAMHArdwareSPIOutput(<a class="code" href="class_selectable.html">Selectable</a> *pSelect) { m_pSelect = pSelect; }</div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="comment">// initialize the SPI subssytem</span></div>
-<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="l00018"></a><span class="lineno"> 18</span>&#160; <span class="comment">// set the object representing the selectable</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordtype">void</span> setSelect(<a class="code" href="class_selectable.html">Selectable</a> *pSelect) { <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="l00021"></a><span class="lineno"> 21</span>&#160; <span class="comment">// initialize the SPI subssytem</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">void</span> init() { <span class="comment">/* TODO */</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; <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">// latch 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> 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="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>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// release the CS select</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</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="l00029"></a><span class="lineno"> 29</span>&#160;</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="comment">// write a byte out via SPI (returns immediately on writing register)</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeByte(uint8_t b) { <span class="comment">/* TODO */</span> }</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="comment">// wait until all queued up data has been written</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> waitFully() { <span class="comment">/* TODO */</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="comment">// write a word out via SPI (returns immediately on writing register)</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeWord(uint16_t w) { <span class="comment">/* TODO */</span> }</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="comment">// write a byte out via SPI (returns immediately on writing register)</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> writeByte(uint8_t b) { <span class="comment">/* TODO */</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="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="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>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; select(); writeBytesValueRaw(value, len); release();</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; }</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <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="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="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="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>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">void</span> writeBytes(<span class="keyword">register</span> uint8_t *data, <span class="keywordtype">int</span> len) { writeBytes&lt;DATA_NOP&gt;(data, len); }</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="comment">// write a word out via SPI (returns immediately on writing register)</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> writeWord(uint16_t w) { <span class="comment">/* TODO */</span> }</div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">// A raw set of writing byte values, assumes setup/init/waiting done elsewhere</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</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="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">while</span>(len--) { writeByte(value); }</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// A full cycle of writing a value for len bytes, including select, release, and waiting</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">void</span> writeBytesValue(uint8_t value, <span class="keywordtype">int</span> len) {</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; select(); writeBytesValueRaw(value, len); release();</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// A full cycle of writing a value for len bytes, including select, release, and waiting</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</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="l00051"></a><span class="lineno"> 51</span>&#160; uint8_t *end = data + len;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; select();</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">// could be optimized to write 16bit words out instead of 8bit bytes</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">while</span>(data != end) {</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; writeByte(D::adjust(*data++));</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; D::postBlock(len);</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; waitFully();</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; release();</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// write a single bit out, which bit from the passed in byte is determined by template parameter</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</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="l00062"></a><span class="lineno"> 62</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="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordtype">void</span> writeBytes(<span class="keyword">register</span> uint8_t *data, <span class="keywordtype">int</span> len) { writeBytes&lt;DATA_NOP&gt;(data, len); }</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="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> 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="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>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; writeByte(D::adjust(pixels.loadAndScale1()));</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; writeByte(D::adjust(pixels.loadAndScale2()));</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; pixels.advanceData();</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; pixels.stepDithering();</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; data += (3+skip);</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; D::postBlock(len);</div>
-<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;};</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> <a href="controller_8h_source.html#l00187">controller.h:187</a></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> <a href="fastpin_8h_source.html#l00022">fastpin.h:22</a></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> <a href="fastled__delay_8h_source.html#l00085">fastled_delay.h:85</a></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> <a href="fastspi__ref_8h_source.html#l00009">fastspi_ref.h:9</a></div></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="comment">// write a single bit out, which bit from the passed in byte is determined by template parameter</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</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="l00067"></a><span class="lineno"> 67</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// 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="l00069"></a><span class="lineno"> 69</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="l00070"></a><span class="lineno"> 70</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="l00071"></a><span class="lineno"> 71</span>&#160; select();</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">while</span>(data != end) {</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(FLAGS &amp; FLAG_START_BIT) {</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; writeBit&lt;0&gt;(1);</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; writeByte(D::adjust(pixels.loadAndScale0()));</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; writeByte(D::adjust(pixels.loadAndScale1()));</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; writeByte(D::adjust(pixels.loadAndScale2()));</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; pixels.advanceData();</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; pixels.stepDithering();</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; data += (3+skip);</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; D::postBlock(len);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; release();</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;};</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;FASTLED_NAMESPACE_END</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="preprocessor">#endif</span></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="ttc" id="struct_pixel_controller_html"><div class="ttname"><a href="struct_pixel_controller.html">PixelController</a></div><div class="ttdef"><b>Definition:</b> <a href="controller_8h_source.html#l00177">controller.h:177</a></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> <a href="fastpin_8h_source.html#l00024">fastpin.h:24</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </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> <a href="fastled__delay_8h_source.html#l00092">fastled_delay.h:92</a></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> <a href="fastspi__ref_8h_source.html#l00012">fastspi_ref.h:12</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>fastspi_ref.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/fastspi__types_8h_source.html b/docs/3.1/fastspi__types_8h_source.html
index 4fb9557c..a933e436 100644
--- a/docs/3.1/fastspi__types_8h_source.html
+++ b/docs/3.1/fastspi__types_8h_source.html
@@ -112,47 +112,50 @@ $(document).ready(function(){initNavTree('fastspi__types_8h_source.html','');});
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_FASTSPI_TYPES_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_FASTSPI_TYPES_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;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&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="comment">// Some helper macros for getting at mis-ordered byte values</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#define SPI_B0 (RGB_BYTE0(RGB_ORDER) + (MASK_SKIP_BITS &amp; SKIP))</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#define SPI_B1 (RGB_BYTE1(RGB_ORDER) + (MASK_SKIP_BITS &amp; SKIP))</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define SPI_B2 (RGB_BYTE2(RGB_ORDER) + (MASK_SKIP_BITS &amp; SKIP))</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#define SPI_ADVANCE (3 + (MASK_SKIP_BITS &amp; SKIP))</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="class_d_a_t_a___n_o_p.html"> 18</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_d_a_t_a___n_o_p.html">DATA_NOP</a> {</div>
-<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> <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>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#define MASK_SKIP_BITS 0x3F</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;<span class="comment">// Clock speed dividers</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define SPEED_DIV_2 2</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define SPEED_DIV_4 4</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define SPEED_DIV_8 8</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#define SPEED_DIV_16 16</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#define SPEED_DIV_32 32</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#define SPEED_DIV_64 64</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#define SPEED_DIV_128 128</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="preprocessor">#define MAX_DATA_RATE 0</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// Some helper macros for getting at mis-ordered byte values</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define SPI_B0 (RGB_BYTE0(RGB_ORDER) + (MASK_SKIP_BITS &amp; SKIP))</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#define SPI_B1 (RGB_BYTE1(RGB_ORDER) + (MASK_SKIP_BITS &amp; SKIP))</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#define SPI_B2 (RGB_BYTE2(RGB_ORDER) + (MASK_SKIP_BITS &amp; SKIP))</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#define SPI_ADVANCE (3 + (MASK_SKIP_BITS &amp; SKIP))</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="class_d_a_t_a___n_o_p.html"> 20</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_d_a_t_a___n_o_p.html">DATA_NOP</a> {</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">public</span>:</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> uint8_t adjust(<span class="keyword">register</span> uint8_t data) { <span class="keywordflow">return</span> data; }</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</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="l00024"></a><span class="lineno"> 24</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="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="preprocessor">#define FLAG_START_BIT 0x80</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#define MASK_SKIP_BITS 0x3F</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">// Clock speed dividers</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define SPEED_DIV_2 2</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#define SPEED_DIV_4 4</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#define SPEED_DIV_8 8</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#define SPEED_DIV_16 16</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#define SPEED_DIV_32 32</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#define SPEED_DIV_64 64</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#define SPEED_DIV_128 128</span></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;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#define MAX_DATA_RATE 0</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">#endif</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;FASTLED_NAMESPACE_END</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">#endif</span></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> <a href="scale8_8h_source.html#l00020">scale8.h:20</a></div></div>
-<div class="ttc" id="class_d_a_t_a___n_o_p_html"><div class="ttname"><a href="class_d_a_t_a___n_o_p.html">DATA_NOP</a></div><div class="ttdoc">Some of the SPI controllers will need to perform a transform on each byte before doing anyting with i...</div><div class="ttdef"><b>Definition:</b> <a href="fastspi__types_8h_source.html#l00018">fastspi_types.h:18</a></div></div>
+<div class="ttc" id="class_d_a_t_a___n_o_p_html"><div class="ttname"><a href="class_d_a_t_a___n_o_p.html">DATA_NOP</a></div><div class="ttdoc">Some of the SPI controllers will need to perform a transform on each byte before doing anyting with i...</div><div class="ttdef"><b>Definition:</b> <a href="fastspi__types_8h_source.html#l00020">fastspi_types.h:20</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>fastspi_types.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/files.html b/docs/3.1/files.html
index 59b358f3..aede98a7 100644
--- a/docs/3.1/files.html
+++ b/docs/3.1/files.html
@@ -158,7 +158,7 @@ $(document).ready(function(){initNavTree('files.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/functions.html b/docs/3.1/functions.html
index df52dbdf..d4361b15 100644
--- a/docs/3.1/functions.html
+++ b/docs/3.1/functions.html
@@ -86,11 +86,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
- <li><a href="#index__"><span>_</span></a></li>
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
- <li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_g"><span>g</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
@@ -98,7 +96,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="#index_l"><span>l</span></a></li>
<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><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>
@@ -136,13 +133,6 @@ $(document).ready(function(){initNavTree('functions.html','');});
<div class="contents">
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>
-<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
-<li>__attribute__()
-: <a class="el" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">PixelController&lt; RGB_ORDER &gt;</a>
-</li>
-</ul>
-
-
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
<li>addLeds()
: <a class="el" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">CFastLED</a>
@@ -164,15 +154,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
: <a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">CLEDController</a>
</li>
<li>clearLeds()
-: <a class="el" href="class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_c_l_e_d_controller.html#adfa6601c84fefd733904b32ac98b6dae">CLEDController</a>
-, <a class="el" href="class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129">DMXSerialController&lt; RGB_ORDER &gt;</a>
-, <a class="el" href="class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a>
-, <a class="el" href="class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_pixie_controller.html#af56e4137870a8f2721f16afcc76db01c">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>
-, <a class="el" href="class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
+: <a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">CLEDController</a>
</li>
<li>CLEDController()
: <a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a>
@@ -184,7 +166,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
: <a class="el" href="class_c_fast_l_e_d.html#a61d27e179c9b68bde89d220aebc0de32">CFastLED</a>
</li>
<li>CPixelView()
-: <a class="el" href="class_c_pixel_view.html#a051455d30c4390abd81bbb23182d22a8">CPixelView&lt; PIXEL_TYPE &gt;</a>
+: <a class="el" href="class_c_pixel_view.html#ada24d4d93b849bc31aec124f682b836a">CPixelView&lt; PIXEL_TYPE &gt;</a>
</li>
</ul>
@@ -193,12 +175,8 @@ $(document).ready(function(){initNavTree('functions.html','');});
<li>delay()
: <a class="el" href="class_c_fast_l_e_d.html#a6819ff831058a710d4582dfc09817202">CFastLED</a>
</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
-<li>enable_dithering()
-: <a class="el" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">PixelController&lt; RGB_ORDER &gt;</a>
+<li>dump()
+: <a class="el" href="class_c_pixel_view.html#a1f32c60d83428f27d3ec899442b82410">CPixelView&lt; PIXEL_TYPE &gt;</a>
</li>
</ul>
@@ -258,9 +236,6 @@ $(document).ready(function(){initNavTree('functions.html','');});
, <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>
</li>
-<li>init_binary_dithering()
-: <a class="el" href="struct_pixel_controller.html#accb48b27c47c742a8b13f97ae1d82d32">PixelController&lt; RGB_ORDER &gt;</a>
-</li>
</ul>
@@ -340,14 +315,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
, <a class="el" href="class_c_pixel_view.html#aba3ece62dbd9f340a0cd78a4c69ab116">CPixelView&lt; PIXEL_TYPE &gt;</a>
</li>
<li>operator|=()
-: <a class="el" href="class_c_pixel_view.html#a2e5576eb742184423d130b4caebd830c">CPixelView&lt; PIXEL_TYPE &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
-<li>PixelController()
-: <a class="el" href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71">PixelController&lt; RGB_ORDER &gt;</a>
+: <a class="el" href="class_c_pixel_view.html#a0acfbbdeb7c17986ddc806e9df64461c">CPixelView&lt; PIXEL_TYPE &gt;</a>
</li>
</ul>
@@ -397,28 +365,14 @@ $(document).ready(function(){initNavTree('functions.html','');});
, <a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">CLEDController</a>
</li>
<li>show()
-: <a class="el" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_c_fast_l_e_d.html#a83afdd1e2a21f33ac4f8d2610d6e331b">CFastLED</a>
+: <a class="el" href="class_c_fast_l_e_d.html#a83afdd1e2a21f33ac4f8d2610d6e331b">CFastLED</a>
, <a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">CLEDController</a>
-, <a class="el" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">DMXSerialController&lt; RGB_ORDER &gt;</a>
-, <a class="el" href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a>
-, <a class="el" href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>
-, <a class="el" href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
+, <a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;</a>
</li>
<li>showColor()
-: <a class="el" href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_c_fast_l_e_d.html#a7315b060d295bad5fbd32e50eaaf02b0">CFastLED</a>
-, <a class="el" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">CLEDController</a>
-, <a class="el" href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b">DMXSerialController&lt; RGB_ORDER &gt;</a>
-, <a class="el" href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a>
-, <a class="el" href="class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_pixie_controller.html#a9da14e8683ef6588d795d33eaba6da3f">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>
-, <a class="el" href="class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
+: <a class="el" href="class_c_fast_l_e_d.html#a7315b060d295bad5fbd32e50eaaf02b0">CFastLED</a>
+, <a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController</a>
+, <a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;</a>
</li>
<li>showLeds()
: <a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">CLEDController</a>
@@ -465,7 +419,7 @@ $(document).ready(function(){initNavTree('functions.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/functions_enum.html b/docs/3.1/functions_enum.html
index 2899cac3..79c7741b 100644
--- a/docs/3.1/functions_enum.html
+++ b/docs/3.1/functions_enum.html
@@ -124,7 +124,7 @@ $(document).ready(function(){initNavTree('functions_enum.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/functions_func.html b/docs/3.1/functions_func.html
index e655b444..a7be1023 100644
--- a/docs/3.1/functions_func.html
+++ b/docs/3.1/functions_func.html
@@ -86,11 +86,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
- <li><a href="#index__"><span>_</span></a></li>
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
- <li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_g"><span>g</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
@@ -98,7 +96,6 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<li><a href="#index_l"><span>l</span></a></li>
<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><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>
@@ -136,13 +133,6 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
<div class="contents">
&#160;
-<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
-<li>__attribute__()
-: <a class="el" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">PixelController&lt; RGB_ORDER &gt;</a>
-</li>
-</ul>
-
-
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
<li>addLeds()
: <a class="el" href="class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f">CFastLED</a>
@@ -164,15 +154,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
: <a class="el" href="class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52">CLEDController</a>
</li>
<li>clearLeds()
-: <a class="el" href="class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_c_l_e_d_controller.html#adfa6601c84fefd733904b32ac98b6dae">CLEDController</a>
-, <a class="el" href="class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129">DMXSerialController&lt; RGB_ORDER &gt;</a>
-, <a class="el" href="class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a>
-, <a class="el" href="class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_pixie_controller.html#af56e4137870a8f2721f16afcc76db01c">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>
-, <a class="el" href="class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
+: <a class="el" href="class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2">CLEDController</a>
</li>
<li>CLEDController()
: <a class="el" href="class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32">CLEDController</a>
@@ -184,7 +166,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
: <a class="el" href="class_c_fast_l_e_d.html#a61d27e179c9b68bde89d220aebc0de32">CFastLED</a>
</li>
<li>CPixelView()
-: <a class="el" href="class_c_pixel_view.html#a051455d30c4390abd81bbb23182d22a8">CPixelView&lt; PIXEL_TYPE &gt;</a>
+: <a class="el" href="class_c_pixel_view.html#ada24d4d93b849bc31aec124f682b836a">CPixelView&lt; PIXEL_TYPE &gt;</a>
</li>
</ul>
@@ -193,12 +175,8 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
<li>delay()
: <a class="el" href="class_c_fast_l_e_d.html#a6819ff831058a710d4582dfc09817202">CFastLED</a>
</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
-<li>enable_dithering()
-: <a class="el" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">PixelController&lt; RGB_ORDER &gt;</a>
+<li>dump()
+: <a class="el" href="class_c_pixel_view.html#a1f32c60d83428f27d3ec899442b82410">CPixelView&lt; PIXEL_TYPE &gt;</a>
</li>
</ul>
@@ -255,9 +233,6 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
, <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>
</li>
-<li>init_binary_dithering()
-: <a class="el" href="struct_pixel_controller.html#accb48b27c47c742a8b13f97ae1d82d32">PixelController&lt; RGB_ORDER &gt;</a>
-</li>
</ul>
@@ -337,14 +312,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
, <a class="el" href="class_c_pixel_view.html#aba3ece62dbd9f340a0cd78a4c69ab116">CPixelView&lt; PIXEL_TYPE &gt;</a>
</li>
<li>operator|=()
-: <a class="el" href="class_c_pixel_view.html#a2e5576eb742184423d130b4caebd830c">CPixelView&lt; PIXEL_TYPE &gt;</a>
-</li>
-</ul>
-
-
-<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
-<li>PixelController()
-: <a class="el" href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71">PixelController&lt; RGB_ORDER &gt;</a>
+: <a class="el" href="class_c_pixel_view.html#a0acfbbdeb7c17986ddc806e9df64461c">CPixelView&lt; PIXEL_TYPE &gt;</a>
</li>
</ul>
@@ -394,28 +362,14 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
, <a class="el" href="class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883">CLEDController</a>
</li>
<li>show()
-: <a class="el" href="class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_c_fast_l_e_d.html#a83afdd1e2a21f33ac4f8d2610d6e331b">CFastLED</a>
+: <a class="el" href="class_c_fast_l_e_d.html#a83afdd1e2a21f33ac4f8d2610d6e331b">CFastLED</a>
, <a class="el" href="class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f">CLEDController</a>
-, <a class="el" href="class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1">DMXSerialController&lt; RGB_ORDER &gt;</a>
-, <a class="el" href="class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a>
-, <a class="el" href="class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>
-, <a class="el" href="class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
+, <a class="el" href="class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;</a>
</li>
<li>showColor()
-: <a class="el" href="class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_c_fast_l_e_d.html#a7315b060d295bad5fbd32e50eaaf02b0">CFastLED</a>
-, <a class="el" href="class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92">CLEDController</a>
-, <a class="el" href="class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b">DMXSerialController&lt; RGB_ORDER &gt;</a>
-, <a class="el" href="class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a>
-, <a class="el" href="class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_pixie_controller.html#a9da14e8683ef6588d795d33eaba6da3f">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a>
-, <a class="el" href="class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
-, <a class="el" href="class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a>
+: <a class="el" href="class_c_fast_l_e_d.html#a7315b060d295bad5fbd32e50eaaf02b0">CFastLED</a>
+, <a class="el" href="class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4">CLEDController</a>
+, <a class="el" href="class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;</a>
</li>
<li>showLeds()
: <a class="el" href="class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076">CLEDController</a>
@@ -462,7 +416,7 @@ $(document).ready(function(){initNavTree('functions_func.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/globals.html b/docs/3.1/globals.html
index f4f05062..4444c8e0 100644
--- a/docs/3.1/globals.html
+++ b/docs/3.1/globals.html
@@ -185,7 +185,7 @@ $(document).ready(function(){initNavTree('globals.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/globals_enum.html b/docs/3.1/globals_enum.html
index 26fbf908..17ec4ea2 100644
--- a/docs/3.1/globals_enum.html
+++ b/docs/3.1/globals_enum.html
@@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('globals_enum.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/globals_eval.html b/docs/3.1/globals_eval.html
index 19a034f7..bebb1027 100644
--- a/docs/3.1/globals_eval.html
+++ b/docs/3.1/globals_eval.html
@@ -157,7 +157,7 @@ $(document).ready(function(){initNavTree('globals_eval.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/globals_func.html b/docs/3.1/globals_func.html
index 01ea0c78..a8b8d170 100644
--- a/docs/3.1/globals_func.html
+++ b/docs/3.1/globals_func.html
@@ -137,7 +137,7 @@ $(document).ready(function(){initNavTree('globals_func.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/globals_vars.html b/docs/3.1/globals_vars.html
index 933be9e5..bbec2201 100644
--- a/docs/3.1/globals_vars.html
+++ b/docs/3.1/globals_vars.html
@@ -124,7 +124,7 @@ $(document).ready(function(){initNavTree('globals_vars.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/graph_legend.html b/docs/3.1/graph_legend.html
index 6bc380d3..4bff6998 100644
--- a/docs/3.1/graph_legend.html
+++ b/docs/3.1/graph_legend.html
@@ -171,7 +171,7 @@ A yellow dashed arrow denotes a relation between a template instance and the tem
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/group___bitswap.html b/docs/3.1/group___bitswap.html
index b58517fa..55197a13 100644
--- a/docs/3.1/group___bitswap.html
+++ b/docs/3.1/group___bitswap.html
@@ -136,7 +136,7 @@ Functions</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/group___color_enums.html b/docs/3.1/group___color_enums.html
index 87ce5b8b..0327deda 100644
--- a/docs/3.1/group___color_enums.html
+++ b/docs/3.1/group___color_enums.html
@@ -192,7 +192,7 @@ Enumerations</h2></td></tr>
</td></tr>
</table>
-<p>Definition at line <a class="el" href="color_8h_source.html#l00033">33</a> of file <a class="el" href="color_8h_source.html">color.h</a>.</p>
+<p>Definition at line <a class="el" href="color_8h_source.html#l00035">35</a> of file <a class="el" href="color_8h_source.html">color.h</a>.</p>
</div>
</div>
@@ -217,7 +217,7 @@ Enumerations</h2></td></tr>
</td></tr>
</table>
-<p>Definition at line <a class="el" href="color_8h_source.html#l00011">11</a> of file <a class="el" href="color_8h_source.html">color.h</a>.</p>
+<p>Definition at line <a class="el" href="color_8h_source.html#l00013">13</a> of file <a class="el" href="color_8h_source.html">color.h</a>.</p>
</div>
</div>
@@ -226,7 +226,7 @@ Enumerations</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/group___colorpalletes.html b/docs/3.1/group___colorpalletes.html
index 266aa69e..d69a2b15 100644
--- a/docs/3.1/group___colorpalletes.html
+++ b/docs/3.1/group___colorpalletes.html
@@ -196,7 +196,7 @@ Variables</h2></td></tr>
<p>This palette is good for lighting at a club or party, where it'll be shining on people.</p>
<p>Recommend that you use values 0-240 rather than the usual 0-255, as the last 15 colors will be 'wrapping around' from the hot end to the cold end, which looks wrong. </p>
-<p>Definition at line <a class="el" href="colorpalettes_8h_source.html#l00023">23</a> of file <a class="el" href="colorpalettes_8h_source.html">colorpalettes.h</a>.</p>
+<p>Definition at line <a class="el" href="colorpalettes_8h_source.html#l00024">24</a> of file <a class="el" href="colorpalettes_8h_source.html">colorpalettes.h</a>.</p>
</div>
</div>
@@ -205,7 +205,7 @@ Variables</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/group___colorutils.html b/docs/3.1/group___colorutils.html
index 5043e376..c570a9a4 100644
--- a/docs/3.1/group___colorutils.html
+++ b/docs/3.1/group___colorutils.html
@@ -122,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_c_r_g_b_palette16.html">CRGBPalette16</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_c_h_s_v_palette32.html">CHSVPalette32</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_c_r_g_b_palette32.html">CRGBPalette32</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_c_r_g_b_palette256.html">CRGBPalette256</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
@@ -133,6 +137,12 @@ typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>TProgmemR
<tr class="memitem:ga68d7c7a5522fb7aa113e50351bd620d4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga68d7c7a5522fb7aa113e50351bd620d4"></a>
typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>TProgmemHSVPalette16</b>[16]</td></tr>
<tr class="separator:ga68d7c7a5522fb7aa113e50351bd620d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0402dc727d6a118cf426da017ff42152"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0402dc727d6a118cf426da017ff42152"></a>
+typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>TProgmemRGBPalette32</b>[32]</td></tr>
+<tr class="separator:ga0402dc727d6a118cf426da017ff42152"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4173693bfea9b72f0f73085e9a7318a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4173693bfea9b72f0f73085e9a7318a8"></a>
+typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>TProgmemHSVPalette32</b>[32]</td></tr>
+<tr class="separator:ga4173693bfea9b72f0f73085e9a7318a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5c6ee5f16c2e9dcea972adc5b582218c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5c6ee5f16c2e9dcea972adc5b582218c"></a>
typedef const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>TProgmemRGBGradientPalette_byte</b></td></tr>
<tr class="separator:ga5c6ee5f16c2e9dcea972adc5b582218c"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -277,6 +287,18 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpscalePalette</b> (c
<tr class="memitem:gae2a0641902f28723263666a128995fef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae2a0641902f28723263666a128995fef"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>UpscalePalette</b> (const struct <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> &amp;srcpal16, struct <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a> &amp;destpal256)</td></tr>
<tr class="separator:gae2a0641902f28723263666a128995fef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1916d32f04256f662ecb0f4d7cff6062"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1916d32f04256f662ecb0f4d7cff6062"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>UpscalePalette</b> (const struct <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> &amp;srcpal16, struct <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;destpal32)</td></tr>
+<tr class="separator:ga1916d32f04256f662ecb0f4d7cff6062"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab247fdb68a0ed37779c7bc11b83f6f8a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab247fdb68a0ed37779c7bc11b83f6f8a"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>UpscalePalette</b> (const struct <a class="el" href="class_c_h_s_v_palette16.html">CHSVPalette16</a> &amp;srcpal16, struct <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> &amp;destpal32)</td></tr>
+<tr class="separator:gab247fdb68a0ed37779c7bc11b83f6f8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa91cec87978562a2b22709b47d02cdd7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa91cec87978562a2b22709b47d02cdd7"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>UpscalePalette</b> (const struct <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;srcpal32, struct <a class="el" href="class_c_r_g_b_palette256.html">CRGBPalette256</a> &amp;destpal256)</td></tr>
+<tr class="separator:gaa91cec87978562a2b22709b47d02cdd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeac1e2dbb61ff4b9f21dbed9cb0a1350"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaeac1e2dbb61ff4b9f21dbed9cb0a1350"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>UpscalePalette</b> (const struct <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> &amp;srcpal32, struct <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a> &amp;destpal256)</td></tr>
+<tr class="separator:gaeac1e2dbb61ff4b9f21dbed9cb0a1350"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac46e65aff3dd6519b33e27f0998f17cd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac46e65aff3dd6519b33e27f0998f17cd"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ColorFromPalette</b> (const <a class="el" href="class_c_r_g_b_palette16.html">CRGBPalette16</a> &amp;pal, uint8_t index, uint8_t brightness=255, TBlendType blendType=LINEARBLEND)</td></tr>
<tr class="separator:gac46e65aff3dd6519b33e27f0998f17cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -292,6 +314,15 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpscalePalette</b> (c
<tr class="memitem:ga79c94ea554455e72eabab172cc15456f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga79c94ea554455e72eabab172cc15456f"></a>
<a class="el" href="struct_c_h_s_v.html">CHSV</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ColorFromPalette</b> (const <a class="el" href="class_c_h_s_v_palette256.html">CHSVPalette256</a> &amp;pal, uint8_t index, uint8_t brightness=255, TBlendType blendType=NOBLEND)</td></tr>
<tr class="separator:ga79c94ea554455e72eabab172cc15456f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae5e137a13a4b6145fe40007328d398f4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae5e137a13a4b6145fe40007328d398f4"></a>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ColorFromPalette</b> (const <a class="el" href="class_c_r_g_b_palette32.html">CRGBPalette32</a> &amp;pal, uint8_t index, uint8_t brightness=255, TBlendType blendType=LINEARBLEND)</td></tr>
+<tr class="separator:gae5e137a13a4b6145fe40007328d398f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea6bd3ab3ec62d88e2dcc7ab2486dcd4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaea6bd3ab3ec62d88e2dcc7ab2486dcd4"></a>
+<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ColorFromPalette</b> (const TProgmemRGBPalette32 &amp;pal, uint8_t index, uint8_t brightness=255, TBlendType blendType=LINEARBLEND)</td></tr>
+<tr class="separator:gaea6bd3ab3ec62d88e2dcc7ab2486dcd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1684ed7eb860c68a915d03e94250e58a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1684ed7eb860c68a915d03e94250e58a"></a>
+<a class="el" href="struct_c_h_s_v.html">CHSV</a>&#160;</td><td class="memItemRight" valign="bottom"><b>ColorFromPalette</b> (const <a class="el" href="class_c_h_s_v_palette32.html">CHSVPalette32</a> &amp;pal, uint8_t index, uint8_t brightness=255, TBlendType blendType=LINEARBLEND)</td></tr>
+<tr class="separator:ga1684ed7eb860c68a915d03e94250e58a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad6431776a18268d286d146158e25cb36"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad6431776a18268d286d146158e25cb36"></a>
template&lt;typename PALETTE &gt; </td></tr>
<tr class="memitem:gad6431776a18268d286d146158e25cb36"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><b>fill_palette</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *L, uint16_t N, uint8_t startIndex, uint8_t incIndex, const PALETTE &amp;pal, uint8_t brightness, TBlendType blendType)</td></tr>
@@ -387,7 +418,7 @@ LONGEST_HUES: hue goes whichever way is longest
<p>fill_gradient can write the gradient colors EITHER (1) into an array of CRGBs (e.g., into leds[] array, or an RGB Palette) OR (2) into an array of CHSVs (e.g. an HSV Palette).</p>
<p>In the case of writing into a <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> array, the gradient is computed in HSV space, and then HSV values are converted to RGB as they're written into the RGB array. </p>
-<p>Definition at line <a class="el" href="colorutils_8h_source.html#l00093">93</a> of file <a class="el" href="colorutils_8h_source.html">colorutils.h</a>.</p>
+<p>Definition at line <a class="el" href="colorutils_8h_source.html#l00094">94</a> of file <a class="el" href="colorutils_8h_source.html">colorutils.h</a>.</p>
</div>
</div>
@@ -396,7 +427,7 @@ LONGEST_HUES: hue goes whichever way is longest
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/group___colorutils.js b/docs/3.1/group___colorutils.js
index 6e0c2171..688f63bd 100644
--- a/docs/3.1/group___colorutils.js
+++ b/docs/3.1/group___colorutils.js
@@ -54,7 +54,9 @@ var group___colorutils =
[ "CRGBPalette16", "class_c_r_g_b_palette16.html#af3a6a06fddf749622ffe099e2d39302f", null ],
[ "CRGBPalette16", "class_c_r_g_b_palette16.html#a46542c191b01f0799a1326316fcaac49", null ],
[ "CRGBPalette16", "class_c_r_g_b_palette16.html#ab23fec1712e4c6bf707be19652df35f4", null ],
+ [ "CRGBPalette16", "class_c_r_g_b_palette16.html#aa5878365d4219ba17514f1de92b6c0f9", null ],
[ "CRGBPalette16", "class_c_r_g_b_palette16.html#a5fad1061f21e02b451e74173481d8bd7", null ],
+ [ "CRGBPalette16", "class_c_r_g_b_palette16.html#a3e9a52870e5d78e91a9710dfd1d6dc70", null ],
[ "CRGBPalette16", "class_c_r_g_b_palette16.html#a0ffc31b89df3b738f4cdb04012a0c7c5", null ],
[ "CRGBPalette16", "class_c_r_g_b_palette16.html#a033c8a5975d58a1dd4d90ce443a345df", null ],
[ "CRGBPalette16", "class_c_r_g_b_palette16.html#aafce34411cc96d598a7ed754cfca15b7", null ],
@@ -69,7 +71,9 @@ var group___colorutils =
[ "operator CRGB *", "class_c_r_g_b_palette16.html#a7214b8bb0070f864dbc0d64d93250904", null ],
[ "operator!=", "class_c_r_g_b_palette16.html#a7d5587c81f7dee8be4fc701dd6149fda", null ],
[ "operator=", "class_c_r_g_b_palette16.html#aca75909eef135775ddc15e44e94e9e8d", null ],
+ [ "operator=", "class_c_r_g_b_palette16.html#a71e15afcaf4452ad7c4ac38abf4bc63d", null ],
[ "operator=", "class_c_r_g_b_palette16.html#a98225ec739aa1d48774e479e885258f7", null ],
+ [ "operator=", "class_c_r_g_b_palette16.html#a40a563e3859e1a2dd77b8d512aaa7103", null ],
[ "operator=", "class_c_r_g_b_palette16.html#a1e2866fd76857f99b6174a0bfa794328", null ],
[ "operator=", "class_c_r_g_b_palette16.html#a614663def062dcc371d4f14db88380c3", null ],
[ "operator==", "class_c_r_g_b_palette16.html#a0c345a47c6f4beab2eb1c9e91264e6e3", null ],
@@ -79,11 +83,70 @@ var group___colorutils =
[ "operator[]", "class_c_r_g_b_palette16.html#a280eb7af64c9a6ae4ef14029240f81b2", null ],
[ "entries", "class_c_r_g_b_palette16.html#a0e7240b7d3dc5c79deceae9ff1d44f42", null ]
] ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html", [
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html#ab6f8516fa7adacd1eefccb3a371edd9b", null ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html#a7c50a7c321a9faad6335600e6bd82ca5", null ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html#a7bc32b739dea0f7dfbbe7706c24e13e4", null ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html#a53a5e568393408408423a55b739d7b28", null ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html#afef05a5d4701172ad4d3e6ad1c5fe94c", null ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html#a8191b89cecfbda5562cdfcf911fe234a", null ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html#abf88a954775700c432a1e1fbfaa5dec7", null ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html#aca812404b1b407150305352722fd5769", null ],
+ [ "operator CHSV *", "class_c_h_s_v_palette32.html#a29b75de144e6a1c27402f68e516cea2e", null ],
+ [ "operator!=", "class_c_h_s_v_palette32.html#a1b7b783a6b1e121e267b32b0f15f3b6c", null ],
+ [ "operator=", "class_c_h_s_v_palette32.html#a59f7d285b6803e084c0d92f92839d562", null ],
+ [ "operator=", "class_c_h_s_v_palette32.html#a446e0d09273adfcd1a75bfb773c67f42", null ],
+ [ "operator==", "class_c_h_s_v_palette32.html#a95f25513af0f6878687713f4417be38d", null ],
+ [ "operator[]", "class_c_h_s_v_palette32.html#ad7c3d89fbde710d5fb21c04969ee7e24", null ],
+ [ "operator[]", "class_c_h_s_v_palette32.html#a2b4646fa3d2db98618c47b9bd0c48faf", null ],
+ [ "operator[]", "class_c_h_s_v_palette32.html#a905b808c315fc0408f55d28ef3d4f328", null ],
+ [ "operator[]", "class_c_h_s_v_palette32.html#a09365a89bffeb4ab00c5cde45319dee6", null ],
+ [ "entries", "class_c_h_s_v_palette32.html#a193cf8f611b63e58a19623d5be1bc196", null ]
+ ] ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html", [
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a16ee6e53d011977f8cee52df0c6c58b7", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#acb78b37e9ddeb393c3b8c613c9bb1f14", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a5daa65c9555826ae69f3fca8ce3c009d", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a3438410a90c7a433b66295da474b6bab", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#ae22b0593f4db09ec50b173ab49cbeb8d", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#aaf3410f8c5222ca4ca0b28cd063f90c9", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a69465d3ea0e74e5ffbd4bef4813bf35a", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a16132eb10650baddb16cea425903af2b", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a353c4bb3c4b46e24b60f3967e252c547", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a13ccbc9afe1fb1a6585bd9c9d77dd92a", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a818f680a01314c116273ab57e55ec035", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a4019959afa78dea95cadc86fd7d20da2", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#af031aab8885a33a1f609da74cfd1850a", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a3e97d05a24cca214c68793751b65c57c", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#aabbbe1fd83cd3062c48f8adb1ccd8076", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a885013cda7e8875b2c9894e0e88b0d7f", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#a13f09d638c91334af2095d51c9168ce1", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html#ae56dd09a3bf53170d062a832f4b834b7", null ],
+ [ "loadDynamicGradientPalette", "class_c_r_g_b_palette32.html#ab12eb86bb1c8c661e8e71f8a98eb38c1", null ],
+ [ "operator CRGB *", "class_c_r_g_b_palette32.html#af4e3e326d8f2b059bdf5287ee88da202", null ],
+ [ "operator!=", "class_c_r_g_b_palette32.html#ae460dccf50741036c14807654f001980", null ],
+ [ "operator=", "class_c_r_g_b_palette32.html#afa882d25ae87f5440024e84025b7e004", null ],
+ [ "operator=", "class_c_r_g_b_palette32.html#a4c36cbfef6ccc309f426bc712bcea935", null ],
+ [ "operator=", "class_c_r_g_b_palette32.html#a54fd84dd8b9d86bbb494b6e4cb8eb339", null ],
+ [ "operator=", "class_c_r_g_b_palette32.html#a2ef31b01adf0dcf471a0b434e333fe21", null ],
+ [ "operator=", "class_c_r_g_b_palette32.html#a812f7977fa24cb79012d4a8f51d83107", null ],
+ [ "operator=", "class_c_r_g_b_palette32.html#afda755ec92a4a5ea1693ddb0c4f0c953", null ],
+ [ "operator=", "class_c_r_g_b_palette32.html#af25490ee7d096dc89b7dac5ac8c7ad57", null ],
+ [ "operator=", "class_c_r_g_b_palette32.html#afd29d3dd0abda25909e14e7b59fec38e", null ],
+ [ "operator==", "class_c_r_g_b_palette32.html#ab88416436adecc30d24b2f256d11f9dc", null ],
+ [ "operator[]", "class_c_r_g_b_palette32.html#aeed9ecd95fcf34529b96d06f585575e0", null ],
+ [ "operator[]", "class_c_r_g_b_palette32.html#a92f529f4e3f85e000636bb0915d93c8f", null ],
+ [ "operator[]", "class_c_r_g_b_palette32.html#a6827bca7ac5cff8a496a2bcd2ce14d02", null ],
+ [ "operator[]", "class_c_r_g_b_palette32.html#a0e63bbbb599a04067d4c8879285b3dde", null ],
+ [ "entries", "class_c_r_g_b_palette32.html#ae1d3ab8f56db6053889235afac4ed354", null ]
+ ] ],
[ "CRGBPalette256", "class_c_r_g_b_palette256.html", [
[ "CRGBPalette256", "class_c_r_g_b_palette256.html#ad8b2cfa7c9fbbecc4407d48cc2c240b7", null ],
[ "CRGBPalette256", "class_c_r_g_b_palette256.html#a3bf77a8b27f5b647fe2ec7daba13084a", null ],
[ "CRGBPalette256", "class_c_r_g_b_palette256.html#a98f69fbb4046243df90aa0e77aa0a9b9", null ],
+ [ "CRGBPalette256", "class_c_r_g_b_palette256.html#a9645f3cd06ebd1cd777840a8d04b9f69", null ],
[ "CRGBPalette256", "class_c_r_g_b_palette256.html#a55c0146fef81bc6f8765db0ad4c57b3a", null ],
+ [ "CRGBPalette256", "class_c_r_g_b_palette256.html#a8bb9c2f014e0f839db224895f873d206", null ],
[ "CRGBPalette256", "class_c_r_g_b_palette256.html#a01b7d7154a1c785e367d127940f9d180", null ],
[ "CRGBPalette256", "class_c_r_g_b_palette256.html#a281ee2a2cf4a59dfc8deb8d0cd2fcef9", null ],
[ "CRGBPalette256", "class_c_r_g_b_palette256.html#a9155e7d5e6dd529c4e54277ac8dfd9ea", null ],
@@ -99,7 +162,9 @@ var group___colorutils =
[ "operator CRGB *", "class_c_r_g_b_palette256.html#a860d9e7e0e2f309fc644ae76ed964744", null ],
[ "operator!=", "class_c_r_g_b_palette256.html#a4f2e8e46d54553c6ee27fcf50b3da689", null ],
[ "operator=", "class_c_r_g_b_palette256.html#a173cddd5e8ff97792505e457a68ccd92", null ],
+ [ "operator=", "class_c_r_g_b_palette256.html#afa4623c4415cc732fc4d581a0a9e3953", null ],
[ "operator=", "class_c_r_g_b_palette256.html#a61bc885ac072458b8f5144f63a29fb37", null ],
+ [ "operator=", "class_c_r_g_b_palette256.html#a93c20b6fdb682630ae6c641db98bebee", null ],
[ "operator=", "class_c_r_g_b_palette256.html#ae8bc5adc97198a3b7ef55dbd99ce0d99", null ],
[ "operator=", "class_c_r_g_b_palette256.html#a9cb19dd01548c2c902e5217188552730", null ],
[ "operator=", "class_c_r_g_b_palette256.html#ae388de7344da19c4168f2ceea1eb6e38", null ],
diff --git a/docs/3.1/group___dimming.html b/docs/3.1/group___dimming.html
index a10b4b4a..449ea395 100644
--- a/docs/3.1/group___dimming.html
+++ b/docs/3.1/group___dimming.html
@@ -145,7 +145,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/group___math.html b/docs/3.1/group___math.html
index d23f6732..8e4387e3 100644
--- a/docs/3.1/group___math.html
+++ b/docs/3.1/group___math.html
@@ -141,9 +141,15 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<tr class="memitem:ga6bfedf0473d4c3705e8feeb6a25b9ea5"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga6bfedf0473d4c3705e8feeb6a25b9ea5">avg8</a> (uint8_t i, uint8_t j)</td></tr>
<tr class="memdesc:ga6bfedf0473d4c3705e8feeb6a25b9ea5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate an integer average of two unsigned 8-bit integer values (uint8_t). <a href="#ga6bfedf0473d4c3705e8feeb6a25b9ea5">More...</a><br /></td></tr>
<tr class="separator:ga6bfedf0473d4c3705e8feeb6a25b9ea5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac09b1bbea319b879bded54d129eb5358"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#gac09b1bbea319b879bded54d129eb5358">avg16</a> (uint16_t i, uint16_t j)</td></tr>
+<tr class="memdesc:gac09b1bbea319b879bded54d129eb5358"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate an integer average of two unsigned 16-bit integer values (uint16_t). <a href="#gac09b1bbea319b879bded54d129eb5358">More...</a><br /></td></tr>
+<tr class="separator:gac09b1bbea319b879bded54d129eb5358"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga30558a835c484b418165909118e702b1"><td class="memItemLeft" align="right" valign="top">LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga30558a835c484b418165909118e702b1">avg7</a> (int8_t i, int8_t j)</td></tr>
<tr class="memdesc:ga30558a835c484b418165909118e702b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate an integer average of two signed 7-bit integers (int8_t) If the first argument is even, result is rounded down. <a href="#ga30558a835c484b418165909118e702b1">More...</a><br /></td></tr>
<tr class="separator:ga30558a835c484b418165909118e702b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5873ff4e986c61d72cb291709190ed25"><td class="memItemLeft" align="right" valign="top">LIB8STATIC int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#ga5873ff4e986c61d72cb291709190ed25">avg15</a> (int16_t i, int16_t j)</td></tr>
+<tr class="memdesc:ga5873ff4e986c61d72cb291709190ed25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate an integer average of two signed 15-bit integers (int16_t) If the first argument is even, result is rounded down. <a href="#ga5873ff4e986c61d72cb291709190ed25">More...</a><br /></td></tr>
+<tr class="separator:ga5873ff4e986c61d72cb291709190ed25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa5e80daec10cc13bf1eca8b125ee0e88"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___math.html#gaa5e80daec10cc13bf1eca8b125ee0e88">mod8</a> (uint8_t a, uint8_t m)</td></tr>
<tr class="memdesc:gaa5e80daec10cc13bf1eca8b125ee0e88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the remainder of one unsigned 8-bit value divided by anoter, aka A % M. <a href="#gaa5e80daec10cc13bf1eca8b125ee0e88">More...</a><br /></td></tr>
<tr class="separator:gaa5e80daec10cc13bf1eca8b125ee0e88"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -202,7 +208,69 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
<p>Add two numbers, and calculate the modulo of the sum and a third number, M. </p>
<p>In other words, it returns (A+B) % M. It is designed as a compact mechanism for incrementing a 'mode' switch and wrapping around back to 'mode 0' when the switch goes past the end of the available range. e.g. if you have seven modes, this switches to the next one and wraps around if needed: mode = addmod8( mode, 1, 7); See 'mod8' for notes on performance. </p>
-<p>Definition at line <a class="el" href="math8_8h_source.html#l00223">223</a> of file <a class="el" href="math8_8h_source.html">math8.h</a>.</p>
+<p>Definition at line <a class="el" href="math8_8h_source.html#l00276">276</a> of file <a class="el" href="math8_8h_source.html">math8.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ga5873ff4e986c61d72cb291709190ed25"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC int16_t avg15 </td>
+ <td>(</td>
+ <td class="paramtype">int16_t&#160;</td>
+ <td class="paramname"><em>i</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int16_t&#160;</td>
+ <td class="paramname"><em>j</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate an integer average of two signed 15-bit integers (int16_t) If the first argument is even, result is rounded down. </p>
+<p>If the first argument is odd, result is result up. </p>
+
+<p>Definition at line <a class="el" href="math8_8h_source.html#l00217">217</a> of file <a class="el" href="math8_8h_source.html">math8.h</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="gac09b1bbea319b879bded54d129eb5358"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">LIB8STATIC uint16_t avg16 </td>
+ <td>(</td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>i</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint16_t&#160;</td>
+ <td class="paramname"><em>j</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Calculate an integer average of two unsigned 16-bit integer values (uint16_t). </p>
+<p>Fractional results are rounded down, e.g. avg16(20,41) = 30 </p>
+
+<p>Definition at line <a class="el" href="math8_8h_source.html#l00169">169</a> of file <a class="el" href="math8_8h_source.html">math8.h</a>.</p>
</div>
</div>
@@ -233,7 +301,7 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
<p>Calculate an integer average of two signed 7-bit integers (int8_t) If the first argument is even, result is rounded down. </p>
<p>If the first argument is odd, result is result up. </p>
-<p>Definition at line <a class="el" href="math8_8h_source.html#l00171">171</a> of file <a class="el" href="math8_8h_source.html">math8.h</a>.</p>
+<p>Definition at line <a class="el" href="math8_8h_source.html#l00196">196</a> of file <a class="el" href="math8_8h_source.html">math8.h</a>.</p>
</div>
</div>
@@ -295,7 +363,7 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
<p>Calculate the remainder of one unsigned 8-bit value divided by anoter, aka A % M. </p>
<p>Implemented by repeated subtraction, which is very compact, and very fast if A is 'probably' less than M. If A is a large multiple of M, the loop has to execute multiple times. However, even in that case, the loop is only two instructions long on AVR, i.e., quick. </p>
-<p>Definition at line <a class="el" href="math8_8h_source.html#l00196">196</a> of file <a class="el" href="math8_8h_source.html">math8.h</a>.</p>
+<p>Definition at line <a class="el" href="math8_8h_source.html#l00249">249</a> of file <a class="el" href="math8_8h_source.html">math8.h</a>.</p>
</div>
</div>
@@ -402,7 +470,7 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
<p>saturating 8x8 bit multiplication, with 8 bit result </p>
<dl class="section return"><dt>Returns</dt><dd>the product of i * j, capping at 0xFF </dd></dl>
-<p>Definition at line <a class="el" href="math8_8h_source.html#l00267">267</a> of file <a class="el" href="math8_8h_source.html">math8.h</a>.</p>
+<p>Definition at line <a class="el" href="math8_8h_source.html#l00320">320</a> of file <a class="el" href="math8_8h_source.html">math8.h</a>.</p>
</div>
</div>
@@ -453,7 +521,7 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
<p>square root for 16-bit integers About three times faster and five times smaller than Arduino's general sqrt on AVR. </p>
-<p>Definition at line <a class="el" href="math8_8h_source.html#l00326">326</a> of file <a class="el" href="math8_8h_source.html">math8.h</a>.</p>
+<p>Definition at line <a class="el" href="math8_8h_source.html#l00379">379</a> of file <a class="el" href="math8_8h_source.html">math8.h</a>.</p>
</div>
</div>
@@ -462,7 +530,7 @@ LIB8STATIC int8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="e
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/group___math.js b/docs/3.1/group___math.js
index c636d0d2..64f685a0 100644
--- a/docs/3.1/group___math.js
+++ b/docs/3.1/group___math.js
@@ -3,6 +3,8 @@ var group___math =
[ "abs8", "group___math.html#ga4bf8996c4a130e96521495d4a1395a01", null ],
[ "add8", "group___math.html#ga9f1f93145ca1955562b7f50f5db96ac1", null ],
[ "addmod8", "group___math.html#ga2bcd51c47538dbc933999382e272a7a7", null ],
+ [ "avg15", "group___math.html#ga5873ff4e986c61d72cb291709190ed25", null ],
+ [ "avg16", "group___math.html#gac09b1bbea319b879bded54d129eb5358", null ],
[ "avg7", "group___math.html#ga30558a835c484b418165909118e702b1", null ],
[ "avg8", "group___math.html#ga6bfedf0473d4c3705e8feeb6a25b9ea5", null ],
[ "mod8", "group___math.html#gaa5e80daec10cc13bf1eca8b125ee0e88", null ],
diff --git a/docs/3.1/group___noise.html b/docs/3.1/group___noise.html
index 427bb579..4a01e85e 100644
--- a/docs/3.1/group___noise.html
+++ b/docs/3.1/group___noise.html
@@ -208,9 +208,9 @@ fill functions</h2></td></tr>
<tr class="memitem:ga7967fd7b1a7230a0f7428347c70dac3e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7967fd7b1a7230a0f7428347c70dac3e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_noise8</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, int num_leds, uint8_t octaves, uint16_t x, int scale, uint8_t hue_octaves, uint16_t hue_x, int hue_scale, uint16_t time)</td></tr>
<tr class="separator:ga7967fd7b1a7230a0f7428347c70dac3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga55b7c44d1f979e29b51335ca3fe90e1c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga55b7c44d1f979e29b51335ca3fe90e1c"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_noise16</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, int num_leds, uint8_t octaves, uint16_t x, int scale, uint8_t hue_octaves, uint16_t hue_x, int hue_scale, uint16_t time)</td></tr>
-<tr class="separator:ga55b7c44d1f979e29b51335ca3fe90e1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8bf5ab0f87a6bb79204754ef2a62f960"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8bf5ab0f87a6bb79204754ef2a62f960"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_noise16</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, int num_leds, uint8_t octaves, uint16_t x, int scale, uint8_t hue_octaves, uint16_t hue_x, int hue_scale, uint16_t time, uint8_t hue_shift=0)</td></tr>
+<tr class="separator:ga8bf5ab0f87a6bb79204754ef2a62f960"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6fcc17e60eac4b9dbb620f7e354177f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6fcc17e60eac4b9dbb620f7e354177f1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_2dnoise8</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, int width, int height, bool serpentine, uint8_t octaves, uint16_t x, int xscale, uint16_t y, int yscale, uint16_t time, uint8_t hue_octaves, uint16_t hue_x, int hue_xscale, uint16_t hue_y, uint16_t hue_yscale, uint16_t hue_time, bool blend)</td></tr>
<tr class="separator:ga6fcc17e60eac4b9dbb620f7e354177f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -254,7 +254,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_2dnoise16</b> (<
<p>16 bit raw versions of the noise functions. </p>
<p>These values are not scaled/altered and have output values roughly in the range (-18k,18k) </p>
-<p>Definition at line <a class="el" href="noise_8cpp_source.html#l00245">245</a> of file <a class="el" href="noise_8cpp_source.html">noise.cpp</a>.</p>
+<p>Definition at line <a class="el" href="noise_8cpp_source.html#l00276">276</a> of file <a class="el" href="noise_8cpp_source.html">noise.cpp</a>.</p>
</div>
</div>
@@ -263,7 +263,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_2dnoise16</b> (<
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/group___pixeltypes.html b/docs/3.1/group___pixeltypes.html
index 20302e74..08d0216a 100644
--- a/docs/3.1/group___pixeltypes.html
+++ b/docs/3.1/group___pixeltypes.html
@@ -373,7 +373,7 @@ Functions</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/group___power.html b/docs/3.1/group___power.html
index e97002a8..3819f2a5 100644
--- a/docs/3.1/group___power.html
+++ b/docs/3.1/group___power.html
@@ -112,7 +112,7 @@ $(document).ready(function(){initNavTree('group___power.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/group___random.html b/docs/3.1/group___random.html
index 866a7ac7..fb9ca7c3 100644
--- a/docs/3.1/group___random.html
+++ b/docs/3.1/group___random.html
@@ -297,7 +297,7 @@ uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/group___scaling.html b/docs/3.1/group___scaling.html
index 865aa84a..3b0ca5d3 100644
--- a/docs/3.1/group___scaling.html
+++ b/docs/3.1/group___scaling.html
@@ -545,7 +545,7 @@ LIB8STATIC void&#160;</td><td class="memItemRight" valign="bottom"><a class="el"
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/group___trig.html b/docs/3.1/group___trig.html
index 3eec0588..d6bc6c39 100644
--- a/docs/3.1/group___trig.html
+++ b/docs/3.1/group___trig.html
@@ -325,7 +325,7 @@ const uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>b_m16_interl
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/group__chipsets.html b/docs/3.1/group__chipsets.html
index aa2d0091..8fc2b941 100644
--- a/docs/3.1/group__chipsets.html
+++ b/docs/3.1/group__chipsets.html
@@ -139,6 +139,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_k6822_controller.html">SK6822Controller&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>
@@ -173,7 +175,7 @@ Classes</h2></td></tr>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/group__chipsets.js b/docs/3.1/group__chipsets.js
index 913dcceb..d1220828 100644
--- a/docs/3.1/group__chipsets.js
+++ b/docs/3.1/group__chipsets.js
@@ -2,58 +2,40 @@ var group__chipsets =
[
[ "PixieController", "class_pixie_controller.html", [
[ "PixieController", "class_pixie_controller.html#afecb754d21fd4a47146dc366cb2420a9", null ],
- [ "clearLeds", "class_pixie_controller.html#af56e4137870a8f2721f16afcc76db01c", null ],
[ "init", "class_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118", null ],
- [ "show", "class_pixie_controller.html#a2d29e55fd0124450b0d8d154b6875468", null ],
- [ "show", "class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583", null ],
- [ "show", "class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583", null ],
- [ "showColor", "class_pixie_controller.html#a9da14e8683ef6588d795d33eaba6da3f", null ]
+ [ "showPixels", "class_pixie_controller.html#a3e31cd5443b6751d0fd92fd69b2af746", null ]
] ],
[ "LPD8806Controller", "class_l_p_d8806_controller.html", [
[ "LPD8806Controller", "class_l_p_d8806_controller.html#aee799ebbd2f631f61e3564b3bc4d43eb", null ],
- [ "clearLeds", "class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e", null ],
[ "init", "class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608", null ],
- [ "show", "class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5", null ],
- [ "show", "class_l_p_d8806_controller.html#a53fa59f3f195e48e956428d862168a7d", null ],
- [ "showColor", "class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259", null ]
+ [ "showPixels", "class_l_p_d8806_controller.html#a07a53c93ffb5e70dbf6c9390f40c76c2", null ]
] ],
[ "WS2801Controller", "class_w_s2801_controller.html", [
[ "WS2801Controller", "class_w_s2801_controller.html#add280e6800bdb41bcc6aee2f5c9d16b5", null ],
- [ "clearLeds", "class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c", null ],
[ "init", "class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4", null ],
- [ "show", "class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0", null ],
- [ "show", "class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0", null ],
- [ "showColor", "class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501", null ]
+ [ "showPixels", "class_w_s2801_controller.html#a0bb02438ec0df1f3046131194a892576", null ]
] ],
[ "WS2803Controller", "class_w_s2803_controller.html", null ],
[ "APA102Controller", "class_a_p_a102_controller.html", [
[ "APA102Controller", "class_a_p_a102_controller.html#a42aad3d0528451c80d66ef1e1c1b692d", null ],
- [ "clearLeds", "class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb", null ],
[ "init", "class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0", null ],
- [ "show", "class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332", null ],
- [ "show", "class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332", null ],
- [ "showColor", "class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428", null ]
+ [ "showPixels", "class_a_p_a102_controller.html#a8ec545837b1622df6c4805f853eae3c1", null ]
] ],
[ "P9813Controller", "class_p9813_controller.html", [
[ "P9813Controller", "class_p9813_controller.html#ab65e07a30e5e59e8bdcb4a9f3b794201", null ],
- [ "clearLeds", "class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c", null ],
[ "init", "class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a", null ],
- [ "show", "class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81", null ],
- [ "show", "class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81", null ],
- [ "showColor", "class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a", null ]
+ [ "showPixels", "class_p9813_controller.html#ab7381f0a1850d006f3449d27838b19c5", null ]
] ],
[ "SM16716Controller", "class_s_m16716_controller.html", [
[ "SM16716Controller", "class_s_m16716_controller.html#aefb06d426f8690545397905b9612f71e", null ],
- [ "clearLeds", "class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8", null ],
[ "init", "class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591", null ],
- [ "show", "class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d", null ],
- [ "show", "class_s_m16716_controller.html#ae99c85f11c5c8244bc94c2b4b02fe574", null ],
- [ "showColor", "class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677", null ]
+ [ "showPixels", "class_s_m16716_controller.html#a2b68d483e7422d26d31586ca7791d7af", null ]
] ],
[ "LPD1886Controller1250Khz", "class_l_p_d1886_controller1250_khz.html", null ],
[ "WS2812Controller800Khz", "class_w_s2812_controller800_khz.html", null ],
[ "WS2811Controller800Khz", "class_w_s2811_controller800_khz.html", null ],
[ "WS2811Controller400Khz", "class_w_s2811_controller400_khz.html", null ],
+ [ "SK6822Controller", "class_s_k6822_controller.html", null ],
[ "SK6812Controller", "class_s_k6812_controller.html", null ],
[ "UCS1903Controller400Khz", "class_u_c_s1903_controller400_khz.html", null ],
[ "UCS1903BController800Khz", "class_u_c_s1903_b_controller800_khz.html", null ],
@@ -67,10 +49,7 @@ var group__chipsets =
[ "PL9823Controller", "class_p_l9823_controller.html", null ],
[ "TM1829Controller1600Khz", "class_t_m1829_controller1600_khz.html", null ],
[ "DMXSimpleController", "class_d_m_x_simple_controller.html", [
- [ "clearLeds", "class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e", null ],
[ "init", "class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3", null ],
- [ "show", "class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186", null ],
- [ "show", "class_d_m_x_simple_controller.html#aca3638ba70b7bed91e8431ec0a73f6d3", null ],
- [ "showColor", "class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1", null ]
+ [ "showPixels", "class_d_m_x_simple_controller.html#a6744d598f10ba5d97a57df08c46bafab", null ]
] ]
]; \ No newline at end of file
diff --git a/docs/3.1/group__lib8tion.html b/docs/3.1/group__lib8tion.html
index 9be9b42a..8d409720 100644
--- a/docs/3.1/group__lib8tion.html
+++ b/docs/3.1/group__lib8tion.html
@@ -281,9 +281,6 @@ LIB8STATIC <a class="el" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137
<tr class="memitem:ga17ae8fcfd9c485bb1120d908f836637a"><td class="memItemLeft" align="right" valign="top">LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lib8tion.html#ga17ae8fcfd9c485bb1120d908f836637a">squarewave8</a> (uint8_t in, uint8_t pulsewidth=128)</td></tr>
<tr class="memdesc:ga17ae8fcfd9c485bb1120d908f836637a"><td class="mdescLeft">&#160;</td><td class="mdescRight">squarewave8: square wave generator. <a href="#ga17ae8fcfd9c485bb1120d908f836637a">More...</a><br /></td></tr>
<tr class="separator:ga17ae8fcfd9c485bb1120d908f836637a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadb94fbd930038e1510574dd4bcf07fe1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadb94fbd930038e1510574dd4bcf07fe1"></a>
-uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>millis</b> ()</td></tr>
-<tr class="separator:gadb94fbd930038e1510574dd4bcf07fe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga10c1e6e66d1679c0b54ceca0906245f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga10c1e6e66d1679c0b54ceca0906245f1"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>get_millisecond_timer</b> ()</td></tr>
<tr class="separator:ga10c1e6e66d1679c0b54ceca0906245f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -354,7 +351,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>ANSI: unsigned _Fract. </p>
<p>range is 0 to 0.99998474121 in steps of 0.00001525878 ANSI: unsigned _Fract </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00332">332</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00342">342</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -371,7 +368,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>ANSI unsigned short _Fract. </p>
<p>range is 0 to 0.99609375 in steps of 0.00390625 ANSI: unsigned short _Fract </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00324">324</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00334">334</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -388,7 +385,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>ANSI: signed _Fract. </p>
<p>range is -0.99996948242 to 0.99996948242 in steps of 0.00003051757 ANSI: signed _Fract </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00336">336</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00346">346</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -405,7 +402,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>ANSI: signed short _Fract. </p>
<p>range is -0.9921875 to 0.9921875 in steps of 0.0078125 ANSI: signed short _Fract </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00328">328</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00338">338</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -437,7 +434,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>with BPM specified in Q8.8 fixed-point format; e.g. </p>
<p>for this function, 120 BPM MUST BE specified as 120*256 = 30720. If you just want to specify "120", use beat16 or beat8. </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00844">844</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00854">854</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -485,7 +482,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>beatsin16 generates a 16-bit sine wave at a given BPM, that oscillates within a given range. </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00890">890</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00900">900</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -533,7 +530,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>beatsin8 generates an 8-bit sine wave at a given BPM, that oscillates within a given range. </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00903">903</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00913">913</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -582,7 +579,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>beatsin88 generates a 16-bit sine wave at a given BPM, that oscillates within a given range. </p>
<p>For this function, BPM MUST BE SPECIFIED as a Q8.8 fixed-point value; e.g. 120BPM must be specified as 120*256 = 30720. If you just want to specify "120", use beatsin16 or beatsin8. </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00877">877</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00887">887</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -601,7 +598,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>bseconds16 returns the current time-since-boot in "binary seconds", which are actually 1024/1000 of a second long. </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00981">981</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00991">991</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -622,7 +619,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>cubicwave8: cubic waveform generator. </p>
<p>Spends visibly more time at the limits than 'sine' does. </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00701">701</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00711">711</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -643,7 +640,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>Helper routine to divide a 32-bit value by 1024, returning only the low 16 bits. </p>
<p>You'd think this would be just result = (in32 &gt;&gt; 10) &amp; 0xFFFF; and on ARM, that's what you want and all is well. But on AVR that code turns into a loop that executes a four-byte shift ten times: 40 shifts in all, plus loop overhead. This routine gets exactly the same result with just six shifts (vs 40), and no loop overhead. Used to convert millis to 'binary seconds' aka bseconds: one bsecond == 1024 millis. </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00956">956</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00966">966</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -664,7 +661,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>ease8InOutApprox: fast, rough 8-bit ease-in/ease-out function shaped approximately like 'ease8InOutCubic', it's never off by more than a couple of percent from the actual cubic S-curve, and it executes more than twice as fast. </p>
<p>Use when the cycles are more important than visual smoothness. Asm version takes around 7 cycles on AVR. </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00608">608</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00618">618</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -685,7 +682,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>conversion from IEEE754 float in the range (-1,1) to 16-bit fixed point. </p>
<p>Note that the extremes of one and negative one are NOT representable. The representable range is basically </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00403">403</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00413">413</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -705,7 +702,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>Return the current hours since boot in an 8-bit value. </p>
<p>Used as part of the "every N time-periods" mechanism </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00937">937</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00947">947</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -745,7 +742,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
</pre><p>Mathematically simiar to lerp8by8, but arguments are more like Arduino's "map"; this function is similar to </p><pre class="fragment"> map( in, 0, 255, rangeStart, rangeEnd)
</pre><p>but faster and specifically designed for 8-bit values. </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00546">546</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00556">556</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -765,7 +762,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>Return the current minutes since boot in a 16-bit value. </p>
<p>Used as part of the "every N time-periods" mechanism </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00927">927</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00937">937</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -786,7 +783,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>quadwave8: quadratic waveform generator. </p>
<p>Spends just a little more time at the limits than 'sine' does. </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00694">694</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00704">704</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -806,7 +803,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>Return the current seconds since boot in a 16-bit value. </p>
<p>Used as part of the "every N time-periods" mechanism </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00917">917</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00927">927</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -826,7 +823,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>sfract15ToFloat: conversion from sfract15 fixed point to IEEE754 32-bit float. </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00394">394</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00404">404</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -873,7 +870,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
</dl>
<dl class="section return"><dt>Returns</dt><dd>square wave output </dd></dl>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00730">730</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00740">740</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -896,7 +893,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<p>input output 0..127 0..254 (positive slope) 128..255 254..0 (negative slope)</p>
<p>On AVR this function takes just three cycles. </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00673">673</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00683">683</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div>
</div>
@@ -905,7 +902,7 @@ LIB8STATIC uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/hierarchy.html b/docs/3.1/hierarchy.html
index b4c6cc2f..080f0d7a 100644
--- a/docs/3.1/hierarchy.html
+++ b/docs/3.1/hierarchy.html
@@ -114,7 +114,7 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
<div class="textblock">
<p><a href="inherits.html">Go to the graphical class hierarchy</a></p>
This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
-<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>ARMHardwareSPIOutput</b></td><td class="desc"></td></tr>
<tr id="row_0_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_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_0_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_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>
@@ -137,109 +137,115 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_h_s_v.html" target="_self">CHSV</a></td><td class="desc">Representation of an HSV pixel (hue, saturation, value (aka brightness)) </td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_h_s_v_palette16.html" target="_self">CHSVPalette16</a></td><td class="desc"></td></tr>
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_h_s_v_palette256.html" target="_self">CHSVPalette256</a></td><td class="desc"></td></tr>
-<tr id="row_12_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_12_" class="arrow" onclick="toggleFolder('12_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_l_e_d_controller.html" target="_self">CLEDController</a></td><td class="desc">Base definition for an LED controller </td></tr>
-<tr id="row_12_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_a_p_a102_controller.html" target="_self">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="desc">APA102 controller class </td></tr>
-<tr id="row_12_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_12_1_" class="arrow" onclick="toggleFolder('12_1_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_m_x_serial_controller.html" target="_self">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_12_1_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_d_m_x_s_e_r_i_a_l.html" target="_self">DMXSERIAL&lt; RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_12_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_12_2_" class="arrow" onclick="toggleFolder('12_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_m_x_simple_controller.html" target="_self">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_12_2_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_d_m_x_s_i_m_p_l_e.html" target="_self">DMXSIMPLE&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_12_3_" 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_d8806_controller.html" target="_self">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="desc">LPD8806 controller class </td></tr>
-<tr id="row_12_4_"><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_p9813_controller.html" target="_self">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="desc">P9813 controller class </td></tr>
-<tr id="row_12_5_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_12_5_" class="arrow" onclick="toggleFolder('12_5_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_pixie_controller.html" target="_self">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc">Adafruit Pixie controller class </td></tr>
-<tr id="row_12_5_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_p_i_x_i_e.html" target="_self">PIXIE&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_12_6_"><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_m16716_controller.html" target="_self">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="desc">SM16716 controller class </td></tr>
-<tr id="row_12_7_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_12_7_" class="arrow" onclick="toggleFolder('12_7_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_w_s2801_controller.html" target="_self">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="desc">WS2801 controller class </td></tr>
-<tr id="row_12_7_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_s2803_controller.html" target="_self">WS2803Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_13_" class="arrow" onclick="toggleFolder('13_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>ClocklessController</b></td><td class="desc"></td></tr>
-<tr id="row_13_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_0_" class="arrow" onclick="toggleFolder('13_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_g_w6205_controller400_khz.html" target="_self">GW6205Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_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_g_w6205__400.html" target="_self">GW6205_400&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_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_g_w6205_controller400_khz.html" target="_self">GW6205Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_2_" class="arrow" onclick="toggleFolder('13_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_g_w6205_controller800_khz.html" target="_self">GW6205Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_2_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_g_w6205.html" target="_self">GW6205&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_3_"><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_g_w6205_controller800_khz.html" target="_self">GW6205Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_4_" class="even"><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_" 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_"><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_" class="even"><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_" 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_"><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_" class="even"><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_" 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_"><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_" class="even"><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_" 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_"><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_" class="even"><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_" 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_" 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_" 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_"><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_" 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_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_"><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_" 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_m1829.html" target="_self">TM1829&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_16_" 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_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_"><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_" 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_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_" 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_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_"><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_" 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_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_" 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_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_"><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_" 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_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_" 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_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_"><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_u_c_s2903_controller.html" target="_self">UCS2903Controller&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_23_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_u_c_s2903.html" target="_self">UCS2903&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_24_" 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_u_c_s2903_controller.html" target="_self">UCS2903Controller&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_25_"><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_controller400_khz.html" target="_self">WS2811Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_25_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_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_26_" 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_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_27_"><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_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_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_a_p_a104.html" target="_self">APA104&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_27_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_w_s2811.html" target="_self">WS2811&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_28_" 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_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_29_"><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, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_29_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_w_s2812.html" target="_self">WS2812&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_29_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_w_s2812_b.html" target="_self">WS2812B&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_13_30_" 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_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_31_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_31_" class="arrow" onclick="toggleFolder('13_31_')">&#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_31_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_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_32_" 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_w_s2812_controller800_khz.html" target="_self">WS2812Controller800Khz&lt; DATA_PIN, GRB &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_14_"><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_" 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; 1000 &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_16_"><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; 2000 &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_17_" 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_pixel_view.html" target="_self">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="desc">Represents a set of <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> led objects </td></tr>
-<tr id="row_18_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_18_" class="arrow" onclick="toggleFolder('18_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_pixel_view.html" target="_self">CPixelView&lt; CRGB &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_18_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_c_r_g_b_array.html" target="_self">CRGBArray&lt; SIZE &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_r_g_b.html" target="_self">CRGB</a></td><td class="desc">Representation of an RGB pixel (Red, Green, Blue) </td></tr>
-<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_r_g_b_palette16.html" target="_self">CRGBPalette16</a></td><td class="desc"></td></tr>
-<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_r_g_b_palette256.html" target="_self">CRGBPalette256</a></td><td class="desc"></td></tr>
-<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_a_t_a___n_o_p.html" target="_self">DATA_NOP</a></td><td class="desc">Some of the SPI controllers will need to perform a transform on each byte before doing anyting with it </td></tr>
-<tr id="row_23_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_23_" class="arrow" onclick="toggleFolder('23_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_fast_pin.html" target="_self">FastPin&lt; PIN &gt;</a></td><td class="desc">The simplest level of <a class="el" href="class_pin.html">Pin</a> class </td></tr>
-<tr id="row_23_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_fast_pin_b_b.html" target="_self">FastPinBB&lt; PIN &gt;</a></td><td class="desc"></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="class_fast_pin.html" target="_self">FastPin&lt; CLOCK_PIN &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="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_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="unionjust8bits.html" target="_self">just8bits</a></td><td class="desc">Structure representing 8 bits of access </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_multi_pixel_controller.html" target="_self">MultiPixelController&lt; LANES, MASK, RGB_ORDER &gt;</a></td><td class="desc"></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="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_29_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_29_" class="arrow" onclick="toggleFolder('29_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>NRF51SPIOutput</b></td><td class="desc"></td></tr>
-<tr id="row_29_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.html" target="_self">SPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_29_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_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_30_"><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_31_" 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_pixel_view_1_1pixelset__iterator__base.html" target="_self">CPixelView&lt; PIXEL_TYPE &gt;::pixelset_iterator_base&lt; T &gt;</a></td><td class="desc"></td></tr>
-<tr id="row_32_"><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_33_" 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_34_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_34_" class="arrow" onclick="toggleFolder('34_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>SAMHardwareSPIOutput</b></td><td class="desc"></td></tr>
-<tr id="row_34_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_35_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_35_" class="arrow" onclick="toggleFolder('35_')">&#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_35_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_35_0_" class="arrow" onclick="toggleFolder('35_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_35_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_35_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_35_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_35_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_35_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_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="structsub4.html" target="_self">sub4</a></td><td class="desc">Structure representing 32 bits of access </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="uniont_bytes_for_long.html" target="_self">tBytesForLong</a></td><td class="desc"></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="union_t_r_g_b_gradient_palette_entry_union.html" target="_self">TRGBGradientPaletteEntryUnion</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_h_s_v_palette32.html" target="_self">CHSVPalette32</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_13_" class="arrow" onclick="toggleFolder('13_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_l_e_d_controller.html" target="_self">CLEDController</a></td><td class="desc">Base definition for an LED controller </td></tr>
+<tr id="row_13_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_c_pixel_l_e_d_controller.html" target="_self">CPixelLEDController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_1_" class="arrow" onclick="toggleFolder('13_1_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_pixel_l_e_d_controller.html" target="_self">CPixelLEDController&lt; RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_1_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_a_p_a102_controller.html" target="_self">APA102Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="desc">APA102 controller class </td></tr>
+<tr id="row_13_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_13_1_1_" class="arrow" onclick="toggleFolder('13_1_1_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_m_x_serial_controller.html" target="_self">DMXSerialController&lt; RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_1_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_m_x_s_e_r_i_a_l.html" target="_self">DMXSERIAL&lt; RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_1_2_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_13_1_2_" class="arrow" onclick="toggleFolder('13_1_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_m_x_simple_controller.html" target="_self">DMXSimpleController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_1_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_m_x_s_i_m_p_l_e.html" target="_self">DMXSIMPLE&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_1_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_l_p_d8806_controller.html" target="_self">LPD8806Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="desc">LPD8806 controller class </td></tr>
+<tr id="row_13_1_4_" 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_p9813_controller.html" target="_self">P9813Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="desc">P9813 controller class </td></tr>
+<tr id="row_13_1_5_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_13_1_5_" class="arrow" onclick="toggleFolder('13_1_5_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_pixie_controller.html" target="_self">PixieController&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc">Adafruit Pixie controller class </td></tr>
+<tr id="row_13_1_5_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_p_i_x_i_e.html" target="_self">PIXIE&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_13_1_6_" 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_m16716_controller.html" target="_self">SM16716Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="desc">SM16716 controller class </td></tr>
+<tr id="row_13_1_7_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_13_1_7_" class="arrow" onclick="toggleFolder('13_1_7_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_w_s2801_controller.html" target="_self">WS2801Controller&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="desc">WS2801 controller class </td></tr>
+<tr id="row_13_1_7_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;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&lt; DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_14_" class="arrow" onclick="toggleFolder('14_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>ClocklessController</b></td><td class="desc"></td></tr>
+<tr id="row_14_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_0_" class="arrow" onclick="toggleFolder('14_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_g_w6205_controller400_khz.html" target="_self">GW6205Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_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_g_w6205__400.html" target="_self">GW6205_400&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_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_g_w6205_controller400_khz.html" target="_self">GW6205Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_2_" class="arrow" onclick="toggleFolder('14_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_g_w6205_controller800_khz.html" target="_self">GW6205Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_2_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_g_w6205.html" target="_self">GW6205&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_3_" 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_g_w6205_controller800_khz.html" target="_self">GW6205Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_4_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_4_" class="arrow" onclick="toggleFolder('14_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_14_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_14_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_14_6_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_6_" class="arrow" onclick="toggleFolder('14_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_14_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_14_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_14_8_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_8_" class="arrow" onclick="toggleFolder('14_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_14_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_14_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_14_10_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_10_" class="arrow" onclick="toggleFolder('14_10_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_s_k6822_controller.html" target="_self">SK6822Controller&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_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_s_k6822.html" target="_self">SK6822&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_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_s_k6822_controller.html" target="_self">SK6822Controller&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_12_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_12_" class="arrow" onclick="toggleFolder('14_12_')">&#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_14_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_m1803.html" target="_self">TM1803&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_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_m1803_controller400_khz.html" target="_self">TM1803Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_14_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_14_" class="arrow" onclick="toggleFolder('14_14_')">&#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_14_14_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_14_14_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_14_14_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_14_15_" 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_14_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_controller1600_khz.html" target="_self">TM1829Controller1600Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_17_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_17_" class="arrow" onclick="toggleFolder('14_17_')">&#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_14_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_t_m1829.html" target="_self">TM1829&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_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_t_m1829_controller800_khz.html" target="_self">TM1829Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_19_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_19_" class="arrow" onclick="toggleFolder('14_19_')">&#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_14_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_b.html" target="_self">UCS1903B&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_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_b_controller800_khz.html" target="_self">UCS1903BController800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_21_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_21_" class="arrow" onclick="toggleFolder('14_21_')">&#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_14_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_s1903.html" target="_self">UCS1903&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_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_s1903_controller400_khz.html" target="_self">UCS1903Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_23_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_23_" class="arrow" onclick="toggleFolder('14_23_')">&#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_14_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_u_c_s1904.html" target="_self">UCS1904&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_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_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_14_25_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_25_" class="arrow" onclick="toggleFolder('14_25_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_u_c_s2903_controller.html" target="_self">UCS2903Controller&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_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_u_c_s2903.html" target="_self">UCS2903&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_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_u_c_s2903_controller.html" target="_self">UCS2903Controller&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_27_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_27_" class="arrow" onclick="toggleFolder('14_27_')">&#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_14_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_s2811__400.html" target="_self">WS2811_400&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_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_s2811_controller400_khz.html" target="_self">WS2811Controller400Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_29_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_29_" class="arrow" onclick="toggleFolder('14_29_')">&#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_14_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_a_p_a104.html" target="_self">APA104&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_29_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_14_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_s2811_controller800_khz.html" target="_self">WS2811Controller800Khz&lt; DATA_PIN, RGB_ORDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_14_31_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_31_" class="arrow" onclick="toggleFolder('14_31_')">&#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_14_31_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_14_31_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_14_32_"><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_14_33_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_14_33_" class="arrow" onclick="toggleFolder('14_33_')">&#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_14_33_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_14_34_"><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_15_" 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_16_"><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_17_" 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; 2000 &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_18_"><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_pixel_view.html" target="_self">CPixelView&lt; PIXEL_TYPE &gt;</a></td><td class="desc">Represents a set of <a class="el" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) ">CRGB</a> led objects </td></tr>
+<tr id="row_19_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_19_" class="arrow" onclick="toggleFolder('19_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_pixel_view.html" target="_self">CPixelView&lt; CRGB &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_19_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_c_r_g_b_array.html" target="_self">CRGBArray&lt; SIZE &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_c_r_g_b.html" target="_self">CRGB</a></td><td class="desc">Representation of an RGB pixel (Red, Green, Blue) </td></tr>
+<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_r_g_b_palette16.html" target="_self">CRGBPalette16</a></td><td class="desc"></td></tr>
+<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_r_g_b_palette256.html" target="_self">CRGBPalette256</a></td><td class="desc"></td></tr>
+<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_c_r_g_b_palette32.html" target="_self">CRGBPalette32</a></td><td class="desc"></td></tr>
+<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_d_a_t_a___n_o_p.html" target="_self">DATA_NOP</a></td><td class="desc">Some of the SPI controllers will need to perform a transform on each byte before doing anyting with it </td></tr>
+<tr id="row_25_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_25_" class="arrow" onclick="toggleFolder('25_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_fast_pin.html" target="_self">FastPin&lt; PIN &gt;</a></td><td class="desc">The simplest level of <a class="el" href="class_pin.html">Pin</a> class </td></tr>
+<tr id="row_25_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_fast_pin_b_b.html" target="_self">FastPinBB&lt; PIN &gt;</a></td><td class="desc"></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="class_fast_pin.html" target="_self">FastPin&lt; CLOCK_PIN &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="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_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="unionjust8bits.html" target="_self">just8bits</a></td><td class="desc">Structure representing 8 bits of access </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_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_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>NRF51SPIOutput</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.html" target="_self">SPIOutput&lt; _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_30_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_31_" 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, LANES, MASK &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_32_"><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_pixel_view_1_1pixelset__iterator__base.html" target="_self">CPixelView&lt; PIXEL_TYPE &gt;::pixelset_iterator_base&lt; T &gt;</a></td><td class="desc"></td></tr>
+<tr id="row_33_" 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&lt; T, F, I &gt;</a></td><td class="desc">Template class for represneting fractional ints </td></tr>
+<tr id="row_34_"><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_35_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_35_" class="arrow" onclick="toggleFolder('35_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>SAMHardwareSPIOutput</b></td><td class="desc"></td></tr>
+<tr id="row_35_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_36_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_36_" class="arrow" onclick="toggleFolder('36_')">&#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_36_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_36_0_" class="arrow" onclick="toggleFolder('36_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_36_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_36_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_36_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_36_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_36_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_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="structsub4.html" target="_self">sub4</a></td><td class="desc">Structure representing 32 bits of access </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="uniont_bytes_for_long.html" target="_self">tBytesForLong</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="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 -->
@@ -247,7 +253,7 @@ This inheritance list is sorted roughly, but not completely, alphabetically:</di
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/hierarchy.js b/docs/3.1/hierarchy.js
index 93764b7d..c3424b6c 100644
--- a/docs/3.1/hierarchy.js
+++ b/docs/3.1/hierarchy.js
@@ -27,22 +27,26 @@ var hierarchy =
[ "CHSV", "struct_c_h_s_v.html", null ],
[ "CHSVPalette16", "class_c_h_s_v_palette16.html", null ],
[ "CHSVPalette256", "class_c_h_s_v_palette256.html", null ],
+ [ "CHSVPalette32", "class_c_h_s_v_palette32.html", null ],
[ "CLEDController", "class_c_l_e_d_controller.html", [
- [ "APA102Controller< DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED >", "class_a_p_a102_controller.html", null ],
- [ "DMXSerialController< RGB_ORDER >", "class_d_m_x_serial_controller.html", [
- [ "DMXSERIAL< RGB_ORDER >", "class_d_m_x_s_e_r_i_a_l.html", null ]
- ] ],
- [ "DMXSimpleController< DATA_PIN, RGB_ORDER >", "class_d_m_x_simple_controller.html", [
- [ "DMXSIMPLE< DATA_PIN, RGB_ORDER >", "class_d_m_x_s_i_m_p_l_e.html", null ]
- ] ],
- [ "LPD8806Controller< DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED >", "class_l_p_d8806_controller.html", null ],
- [ "P9813Controller< DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED >", "class_p9813_controller.html", null ],
- [ "PixieController< DATA_PIN, RGB_ORDER >", "class_pixie_controller.html", [
- [ "PIXIE< DATA_PIN, RGB_ORDER >", "class_p_i_x_i_e.html", null ]
- ] ],
- [ "SM16716Controller< DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED >", "class_s_m16716_controller.html", null ],
- [ "WS2801Controller< DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED >", "class_w_s2801_controller.html", [
- [ "WS2803Controller< DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED >", "class_w_s2803_controller.html", null ]
+ [ "CPixelLEDController< RGB_ORDER, LANES, MASK >", "class_c_pixel_l_e_d_controller.html", null ],
+ [ "CPixelLEDController< RGB_ORDER >", "class_c_pixel_l_e_d_controller.html", [
+ [ "APA102Controller< DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED >", "class_a_p_a102_controller.html", null ],
+ [ "DMXSerialController< RGB_ORDER >", "class_d_m_x_serial_controller.html", [
+ [ "DMXSERIAL< RGB_ORDER >", "class_d_m_x_s_e_r_i_a_l.html", null ]
+ ] ],
+ [ "DMXSimpleController< DATA_PIN, RGB_ORDER >", "class_d_m_x_simple_controller.html", [
+ [ "DMXSIMPLE< DATA_PIN, RGB_ORDER >", "class_d_m_x_s_i_m_p_l_e.html", null ]
+ ] ],
+ [ "LPD8806Controller< DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED >", "class_l_p_d8806_controller.html", null ],
+ [ "P9813Controller< DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED >", "class_p9813_controller.html", null ],
+ [ "PixieController< DATA_PIN, RGB_ORDER >", "class_pixie_controller.html", [
+ [ "PIXIE< DATA_PIN, RGB_ORDER >", "class_p_i_x_i_e.html", null ]
+ ] ],
+ [ "SM16716Controller< DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED >", "class_s_m16716_controller.html", null ],
+ [ "WS2801Controller< DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED >", "class_w_s2801_controller.html", [
+ [ "WS2803Controller< DATA_PIN, CLOCK_PIN, RGB_ORDER, SPI_SPEED >", "class_w_s2803_controller.html", null ]
+ ] ]
] ]
] ],
[ "ClocklessController", null, [
@@ -66,6 +70,10 @@ var hierarchy =
[ "SK6812< DATA_PIN, RGB_ORDER >", "class_s_k6812.html", null ]
] ],
[ "SK6812Controller< DATA_PIN, RGB_ORDER >", "class_s_k6812_controller.html", null ],
+ [ "SK6822Controller< DATA_PIN, RGB_ORDER >", "class_s_k6822_controller.html", [
+ [ "SK6822< DATA_PIN, RGB_ORDER >", "class_s_k6822.html", null ]
+ ] ],
+ [ "SK6822Controller< DATA_PIN, RGB_ORDER >", "class_s_k6822_controller.html", null ],
[ "TM1803Controller400Khz< DATA_PIN, RGB_ORDER >", "class_t_m1803_controller400_khz.html", [
[ "TM1803< DATA_PIN, RGB_ORDER >", "class_t_m1803.html", null ]
] ],
@@ -126,6 +134,7 @@ var hierarchy =
[ "CRGB", "struct_c_r_g_b.html", null ],
[ "CRGBPalette16", "class_c_r_g_b_palette16.html", null ],
[ "CRGBPalette256", "class_c_r_g_b_palette256.html", null ],
+ [ "CRGBPalette32", "class_c_r_g_b_palette32.html", null ],
[ "DATA_NOP", "class_d_a_t_a___n_o_p.html", null ],
[ "FastPin< PIN >", "class_fast_pin.html", [
[ "FastPinBB< PIN >", "class_fast_pin_b_b.html", null ]
@@ -133,13 +142,12 @@ var hierarchy =
[ "FastPin< CLOCK_PIN >", "class_fast_pin.html", null ],
[ "IEEE754binary32_t", "union_i_e_e_e754binary32__t.html", null ],
[ "just8bits", "unionjust8bits.html", null ],
- [ "MultiPixelController< LANES, MASK, RGB_ORDER >", "struct_multi_pixel_controller.html", null ],
[ "NOPSPIOutput< _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER >", "class_n_o_p_s_p_i_output.html", null ],
[ "NRF51SPIOutput", null, [
[ "SPIOutput< _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER >", "class_s_p_i_output.html", null ],
[ "SPIOutput< DATA_PIN, CLOCK_PIN, SPI_SPEED >", "class_s_p_i_output.html", null ]
] ],
- [ "PixelController< RGB_ORDER >", "struct_pixel_controller.html", null ],
+ [ "PixelController< RGB_ORDER, LANES, MASK >", "struct_pixel_controller.html", null ],
[ "CPixelView< PIXEL_TYPE >::pixelset_iterator_base< T >", "class_c_pixel_view_1_1pixelset__iterator__base.html", null ],
[ "q< T, F, I >", "classq.html", null ],
[ "REFHardwareSPIOutput< _DATA_PIN, _CLOCK_PIN, _SPI_CLOCK_DIVIDER >", "class_r_e_f_hardware_s_p_i_output.html", null ],
diff --git a/docs/3.1/hsv2rgb_8cpp_source.html b/docs/3.1/hsv2rgb_8cpp_source.html
index b77a3678..1d14ae83 100644
--- a/docs/3.1/hsv2rgb_8cpp_source.html
+++ b/docs/3.1/hsv2rgb_8cpp_source.html
@@ -397,22 +397,22 @@ $(document).ready(function(){initNavTree('hsv2rgb_8cpp_source.html','');});
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="comment">// Level Y2 is a strong boost.</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">const</span> uint8_t Y1 = 1;</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">const</span> uint8_t Y2 = 0;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; </div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="comment">// G2: Whether to divide all greens by two.</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="comment">// Depends GREATLY on your particular LEDs</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">const</span> uint8_t G2 = 0;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; </div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="comment">// Gscale: what to scale green down by.</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">// Depends GREATLY on your particular LEDs</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">const</span> uint8_t Gscale = 0;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; </div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; uint8_t hue = hsv.hue;</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; uint8_t sat = hsv.sat;</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; uint8_t val = hsv.val;</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</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; uint8_t offset = hue &amp; 0x1F; <span class="comment">// 0..31</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</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; <span class="comment">// offset8 = offset * 8</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; uint8_t offset8 = offset;</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div>
@@ -430,11 +430,11 @@ $(document).ready(function(){initNavTree('hsv2rgb_8cpp_source.html','');});
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; offset8 &lt;&lt;= 3;</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor">#endif</span></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="l00322"></a><span class="lineno"> 322</span>&#160; </div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; uint8_t third = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( offset8, (256 / 3));</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; </div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; uint8_t r, g, b;</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</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; <span class="keywordflow">if</span>( ! (hue &amp; 0x80) ) {</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="comment">// 0XX</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">if</span>( ! (hue &amp; 0x40) ) {</div>
@@ -508,7 +508,7 @@ $(document).ready(function(){initNavTree('hsv2rgb_8cpp_source.html','');});
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; uint8_t twothirds = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( offset8, ((256 * 2) / 3));</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; g = K171 - twothirds;</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; b = K85 + twothirds;</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</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; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="comment">// 101</span></div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="comment">//case 5: // B -&gt; P</span></div>
@@ -516,7 +516,7 @@ $(document).ready(function(){initNavTree('hsv2rgb_8cpp_source.html','');});
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; g = 0;</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; FORCE_REFERENCE(g);</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; b = K255 - third;</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</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; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">if</span>( ! (hue &amp; 0x20) ) {</div>
@@ -526,7 +526,7 @@ $(document).ready(function(){initNavTree('hsv2rgb_8cpp_source.html','');});
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; g = 0;</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; FORCE_REFERENCE(g);</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; b = K171 - third;</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</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; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="comment">// 111</span></div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="comment">//case 7: // K -&gt; R</span></div>
@@ -534,229 +534,300 @@ $(document).ready(function(){initNavTree('hsv2rgb_8cpp_source.html','');});
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; g = 0;</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; FORCE_REFERENCE(g);</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; b = K85 - third;</div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;</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; }</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; }</div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</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; <span class="comment">// This is one of the good places to scale the green down,</span></div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="comment">// although the client can scale green down as well.</span></div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">if</span>( G2 ) g = g &gt;&gt; 1;</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">if</span>( Gscale ) g = <a class="code" href="group___scaling.html#gab341cef8d46232269bb70092fed9eb75">scale8_video_LEAVING_R1_DIRTY</a>( g, Gscale);</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; </div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="comment">// Scale down colors if we&#39;re desaturated at all</span></div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="comment">// and add the brightness_floor to r, g, and b.</span></div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">if</span>( sat != 255 ) {</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="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( r, g, b, sat);</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 desat = 255 - sat;</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; desat = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( desat, desat);</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; uint8_t brightness_floor = desat;</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; r += brightness_floor;</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; g += brightness_floor;</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; b += brightness_floor;</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;</div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="comment">// Now scale everything down if we&#39;re at value &lt; 255.</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">if</span>( val != 255 ) {</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; val = <a class="code" href="group___scaling.html#gab341cef8d46232269bb70092fed9eb75">scale8_video_LEAVING_R1_DIRTY</a>( val, val);</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( r, g, b, val);</div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">if</span>( sat == 0) {</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; r = 255; b = 255; g = 255;</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="comment">//nscale8x3_video( r, g, b, sat);</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">if</span>( r ) r = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( r, sat) + 1;</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">if</span>( g ) g = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( g, sat) + 1;</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">if</span>( b ) b = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( b, sat) + 1;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</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; uint8_t desat = 255 - sat;</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; desat = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( desat, desat);</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; uint8_t brightness_floor = desat;</div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; r += brightness_floor;</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; g += brightness_floor;</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; b += brightness_floor;</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="comment">// Here we have the old AVR &quot;missing std X+n&quot; problem again</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="comment">// It turns out that fixing it winds up costing more than</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="comment">// not fixing it.</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="comment">// To paraphrase Dr Bronner, profile! profile! profile!</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="comment">//asm volatile( &quot;&quot; : : : &quot;r26&quot;, &quot;r27&quot; );</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="comment">//asm volatile (&quot; movw r30, r26 \n&quot; : : : &quot;r30&quot;, &quot;r31&quot;);</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; rgb.r = r;</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; rgb.g = g;</div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; rgb.b = b;</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;</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="keywordtype">void</span> hsv2rgb_raw(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a> * phsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * prgb, <span class="keywordtype">int</span> numLeds) {</div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numLeds; i++) {</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; hsv2rgb_raw(phsv[i], prgb[i]);</div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; }</div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;}</div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* phsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * prgb, <span class="keywordtype">int</span> numLeds) {</div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numLeds; i++) {</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>(phsv[i], prgb[i]);</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;}</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="keywordtype">void</span> hsv2rgb_spectrum( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* phsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * prgb, <span class="keywordtype">int</span> numLeds) {</div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numLeds; i++) {</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; hsv2rgb_spectrum(phsv[i], prgb[i]);</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;</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="preprocessor">#define FIXFRAC8(N,D) (((N)*256)/(D))</span></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">// This function is only an approximation, and it is not</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="comment">// nearly as fast as the normal HSV-to-RGB conversion.</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="comment">// See extended notes in the .h file.</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> rgb2hsv_approximate( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb)</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; uint8_t r = rgb.r;</div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; uint8_t g = rgb.g;</div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; uint8_t b = rgb.b;</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; uint8_t h, s, v;</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="comment">// find desaturation</span></div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; uint8_t desat = 255;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">if</span>( r &lt; desat) desat = r;</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">if</span>( g &lt; desat) desat = g;</div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">if</span>( b &lt; desat) desat = b;</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">// remove saturation from all channels</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; r -= desat;</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; g -= desat;</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; b -= desat;</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">// at least one channel is now zero</span></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; <span class="comment">// if all three channels are zero, we had a</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="comment">// shade of gray.</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; uint16_t total = r + g + b;</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="keywordflow">if</span>( total == 0) {</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="comment">// we pick hue zero for no special reason</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>( 0, 0, desat);</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;</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="comment">// since this wasn&#39;t a pure shade of gray,</span></div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="comment">// the interesting question is what hue is it</span></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">// scale all channels up to a total of 255</span></div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">if</span>( total != 255) {</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; uint32_t scaleup = 65535 / (total);</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; r = ((uint32_t)(r) * scaleup) / 256;</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; g = ((uint32_t)(g) * scaleup) / 256;</div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; b = ((uint32_t)(b) * scaleup) / 256;</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="keywordflow">if</span>( total &gt; 255 ) {</div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; v = 255;</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; v = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>(desat,total);</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="comment">// undo &#39;dimming&#39; of brightness</span></div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">if</span>( v != 255) v = <a class="code" href="group___math.html#ga66ecef97faa5f9b92c49766651c5afe9">sqrt16</a>( v * 256);</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="comment">// without lib8tion: float ... ew ... sqrt... double ew, or rather, ew ^ 0.5</span></div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="comment">// if( v != 255) v = (256.0 * sqrt( (float)(v) / 256.0));</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;</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="comment">// saturation is opposite of desaturation</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; s = 255 - desat;</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">if</span>( v != 255) {</div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="comment">// this part could probably use refinement/rethinking,</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="comment">// (but it doesn&#39;t overflow &amp; wrap anymore)</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; uint16_t s16;</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; s16 = (s * 256);</div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; s16 /= v;</div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">if</span>( s16 &lt; 256) {</div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; s = s16;</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; s = 255; <span class="comment">// clamp to prevent overflow</span></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; }</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">// undo &#39;dimming&#39; of saturation</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">if</span>( s != 255 ) s = 255 - <a class="code" href="group___math.html#ga66ecef97faa5f9b92c49766651c5afe9">sqrt16</a>( (255-s) * 256);</div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="comment">// without lib8tion: float ... ew ... sqrt... double ew, or rather, ew ^ 0.5</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="comment">// if( s != 255 ) s = (255 - (256.0 * sqrt( (float)(255-s) / 256.0)));</span></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="comment">// start with which channel is highest</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="comment">// (ties don&#39;t matter)</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; uint8_t highest = r;</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">if</span>( g &gt; highest) highest = g;</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">if</span>( b &gt; highest) highest = b;</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">if</span>( highest == r ) {</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="comment">// Red is highest.</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="comment">// Hue could be Purple/Pink-Red,Red-Orange,Orange-Yellow</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">if</span>( g == 0 ) {</div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="comment">// if green is zero, we&#39;re in Purple/Pink-Red</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; h = (HUE_PURPLE + HUE_PINK) / 2;</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>(r, 128), FIXFRAC8(48,128));</div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( (r - g) &gt; g) {</div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="comment">// if R-G &gt; G then we&#39;re in Red-Orange</span></div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; h = HUE_RED;</div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( g, FIXFRAC8(32,85));</div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="comment">// R-G &lt; G, we&#39;re in Orange-Yellow</span></div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; h = HUE_ORANGE;</div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>((g - 85) + (171 - r), 4), FIXFRAC8(32,85)); <span class="comment">//221</span></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;</div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( highest == g) {</div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="comment">// Green is highest</span></div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="comment">// Hue could be Yellow-Green, Green-Aqua</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">if</span>( b == 0) {</div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="comment">// if Blue is zero, we&#39;re in Yellow-Green</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; h = HUE_YELLOW;</div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>((g - 128), (128 - r)), 4), FIXFRAC8(32,255)); <span class="comment">//</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="comment">// if Blue is nonzero we&#39;re in Green-Aqua</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">if</span>( (g-b) &gt; b) {</div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; h = HUE_GREEN;</div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( b, FIXFRAC8(32,85));</div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; h = HUE_AQUA;</div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>(b, 85), FIXFRAC8(8,42));</div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; }</div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; }</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; } <span class="keywordflow">else</span> <span class="comment">/* highest == b */</span> {</div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="comment">// Blue is highest</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="comment">// Hue could be Aqua/Blue-Blue, Blue-Purple, Purple-Pink</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">if</span>( r == 0) {</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="comment">// if red is zero, we&#39;re in Aqua/Blue-Blue</span></div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; h = HUE_AQUA + ((HUE_BLUE - HUE_AQUA) / 4);</div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>(b, 128), FIXFRAC8(24,128));</div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( (b-r) &gt; r) {</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="comment">// B-R &gt; R, we&#39;re in Blue-Purple</span></div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; h = HUE_BLUE;</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( r, FIXFRAC8(32,85));</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="comment">// B-R &lt; R, we&#39;re in Purple-Pink</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; h = HUE_PURPLE;</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>(r, 85), FIXFRAC8(32,85));</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; }</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; h += 1;</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>( h, s, v);</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;}</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;FASTLED_NAMESPACE_END</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> <a href="pixeltypes_8h_source.html#l00088">pixeltypes.h:88</a></div></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="comment">// Now scale everything down if we&#39;re at value &lt; 255.</span></div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">if</span>( val != 255 ) {</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; val = <a class="code" href="group___scaling.html#gab341cef8d46232269bb70092fed9eb75">scale8_video_LEAVING_R1_DIRTY</a>( val, val);</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">if</span>( val == 0 ) {</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; r=0; g=0; b=0;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="comment">// nscale8x3_video( r, g, b, val);</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">if</span>( r ) r = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( r, val) + 1;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">if</span>( g ) g = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( g, val) + 1;</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">if</span>( b ) b = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( b, val) + 1;</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</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; }</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; </div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="comment">// Here we have the old AVR &quot;missing std X+n&quot; problem again</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="comment">// It turns out that fixing it winds up costing more than</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="comment">// not fixing it.</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="comment">// To paraphrase Dr Bronner, profile! profile! profile!</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="comment">//asm volatile( &quot;&quot; : : : &quot;r26&quot;, &quot;r27&quot; );</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="comment">//asm volatile (&quot; movw r30, r26 \n&quot; : : : &quot;r30&quot;, &quot;r31&quot;);</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; rgb.r = r;</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; rgb.g = g;</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; rgb.b = b;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;}</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;<span class="keywordtype">void</span> hsv2rgb_raw(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a> * phsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * prgb, <span class="keywordtype">int</span> numLeds) {</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numLeds; i++) {</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; hsv2rgb_raw(phsv[i], prgb[i]);</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;</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* phsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * prgb, <span class="keywordtype">int</span> numLeds) {</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numLeds; i++) {</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>(phsv[i], prgb[i]);</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;}</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="keywordtype">void</span> hsv2rgb_spectrum( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* phsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * prgb, <span class="keywordtype">int</span> numLeds) {</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numLeds; i++) {</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; hsv2rgb_spectrum(phsv[i], prgb[i]);</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;}</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;</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;<span class="preprocessor">#define FIXFRAC8(N,D) (((N)*256)/(D))</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="comment">// This function is only an approximation, and it is not</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;<span class="comment">// nearly as fast as the normal HSV-to-RGB conversion.</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="comment">// See extended notes in the .h file.</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> rgb2hsv_approximate( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb)</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; uint8_t r = rgb.r;</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; uint8_t g = rgb.g;</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; uint8_t b = rgb.b;</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; uint8_t h, s, v;</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; </div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="comment">// find desaturation</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; uint8_t desat = 255;</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">if</span>( r &lt; desat) desat = r;</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">if</span>( g &lt; desat) desat = g;</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">if</span>( b &lt; desat) desat = b;</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">// remove saturation from all channels</span></div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; r -= desat;</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; g -= desat;</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; b -= desat;</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">//Serial.print(&quot;desat=&quot;); Serial.print(desat); Serial.println(&quot;&quot;);</span></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="comment">//uint8_t orig_desat = sqrt16( desat * 256);</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="comment">//Serial.print(&quot;orig_desat=&quot;); Serial.print(orig_desat); Serial.println(&quot;&quot;);</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; </div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="comment">// saturation is opposite of desaturation</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; s = 255 - desat;</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="comment">//Serial.print(&quot;s.1=&quot;); Serial.print(s); Serial.println(&quot;&quot;);</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; <span class="keywordflow">if</span>( s != 255 ) {</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="comment">// undo &#39;dimming&#39; of saturation</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; s = 255 - <a class="code" href="group___math.html#ga66ecef97faa5f9b92c49766651c5afe9">sqrt16</a>( (255-s) * 256);</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; <span class="comment">// without lib8tion: float ... ew ... sqrt... double ew, or rather, ew ^ 0.5</span></div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="comment">// if( s != 255 ) s = (255 - (256.0 * sqrt( (float)(255-s) / 256.0)));</span></div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="comment">//Serial.print(&quot;s.2=&quot;); Serial.print(s); Serial.println(&quot;&quot;);</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; <span class="comment">// at least one channel is now zero</span></div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="comment">// if all three channels are zero, we had a</span></div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="comment">// shade of gray.</span></div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">if</span>( (r + g + b) == 0) {</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="comment">// we pick hue zero for no special reason</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>( 0, 0, 255 - s);</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">// scale all channels up to compensate for desaturation</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">if</span>( s &lt; 255) {</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">if</span>( s == 0) s = 1;</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; uint32_t scaleup = 65535 / (s);</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; r = ((uint32_t)(r) * scaleup) / 256;</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; g = ((uint32_t)(g) * scaleup) / 256;</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; b = ((uint32_t)(b) * scaleup) / 256;</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">//Serial.print(&quot;r.2=&quot;); Serial.print(r); Serial.println(&quot;&quot;);</span></div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="comment">//Serial.print(&quot;g.2=&quot;); Serial.print(g); Serial.println(&quot;&quot;);</span></div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="comment">//Serial.print(&quot;b.2=&quot;); Serial.print(b); Serial.println(&quot;&quot;);</span></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; uint16_t total = r + g + b;</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="comment">//Serial.print(&quot;total=&quot;); Serial.print(total); Serial.println(&quot;&quot;);</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; </div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="comment">// scale all channels up to compensate for low values</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">if</span>( total &lt; 255) {</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">if</span>( total == 0) total = 1;</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; uint32_t scaleup = 65535 / (total);</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; r = ((uint32_t)(r) * scaleup) / 256;</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; g = ((uint32_t)(g) * scaleup) / 256;</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; b = ((uint32_t)(b) * scaleup) / 256;</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="comment">//Serial.print(&quot;r.3=&quot;); Serial.print(r); Serial.println(&quot;&quot;);</span></div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="comment">//Serial.print(&quot;g.3=&quot;); Serial.print(g); Serial.println(&quot;&quot;);</span></div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="comment">//Serial.print(&quot;b.3=&quot;); Serial.print(b); Serial.println(&quot;&quot;);</span></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; <span class="keywordflow">if</span>( total &gt; 255 ) {</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; v = 255;</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; v = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>(desat,total);</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="comment">// undo &#39;dimming&#39; of brightness</span></div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">if</span>( v != 255) v = <a class="code" href="group___math.html#ga66ecef97faa5f9b92c49766651c5afe9">sqrt16</a>( v * 256);</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="comment">// without lib8tion: float ... ew ... sqrt... double ew, or rather, ew ^ 0.5</span></div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="comment">// if( v != 255) v = (256.0 * sqrt( (float)(v) / 256.0));</span></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; </div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="comment">//Serial.print(&quot;v=&quot;); Serial.print(v); Serial.println(&quot;&quot;);</span></div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; </div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; </div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="preprocessor">#if 0</span></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; <span class="comment">//#else</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">if</span>( v != 255) {</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="comment">// this part could probably use refinement/rethinking,</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="comment">// (but it doesn&#39;t overflow &amp; wrap anymore)</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; uint16_t s16;</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; s16 = (s * 256);</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; s16 /= v;</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="comment">//Serial.print(&quot;s16=&quot;); Serial.print(s16); Serial.println(&quot;&quot;);</span></div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">if</span>( s16 &lt; 256) {</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; s = s16;</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; s = 255; <span class="comment">// clamp to prevent overflow</span></div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; }</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; }</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="preprocessor">#endif</span></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; <span class="comment">//Serial.print(&quot;s.3=&quot;); Serial.print(s); Serial.println(&quot;&quot;);</span></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; </div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="comment">// since this wasn&#39;t a pure shade of gray,</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="comment">// the interesting question is what hue is it</span></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; </div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; </div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="comment">// start with which channel is highest</span></div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="comment">// (ties don&#39;t matter)</span></div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; uint8_t highest = r;</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">if</span>( g &gt; highest) highest = g;</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">if</span>( b &gt; highest) highest = b;</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; </div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">if</span>( highest == r ) {</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="comment">// Red is highest.</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="comment">// Hue could be Purple/Pink-Red,Red-Orange,Orange-Yellow</span></div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">if</span>( g == 0 ) {</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="comment">// if green is zero, we&#39;re in Purple/Pink-Red</span></div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; h = (HUE_PURPLE + HUE_PINK) / 2;</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>(r, 128), FIXFRAC8(48,128));</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( (r - g) &gt; g) {</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <span class="comment">// if R-G &gt; G then we&#39;re in Red-Orange</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; h = HUE_RED;</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( g, FIXFRAC8(32,85));</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="comment">// R-G &lt; G, we&#39;re in Orange-Yellow</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; h = HUE_ORANGE;</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>((g - 85) + (171 - r), 4), FIXFRAC8(32,85)); <span class="comment">//221</span></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; </div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( highest == g) {</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="comment">// Green is highest</span></div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="comment">// Hue could be Yellow-Green, Green-Aqua</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">if</span>( b == 0) {</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="comment">// if Blue is zero, we&#39;re in Yellow-Green</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="comment">// G = 171..255</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="comment">// R = 171.. 0</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; h = HUE_YELLOW;</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; uint8_t radj = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>(171,r), 47); <span class="comment">//171..0 -&gt; 0..171 -&gt; 0..31</span></div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; uint8_t gadj = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>(g,171), 96); <span class="comment">//171..255 -&gt; 0..84 -&gt; 0..31;</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; uint8_t rgadj = radj + gadj;</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; uint8_t hueadv = rgadj / 2;</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; h += hueadv;</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="comment">//h += scale8( qadd8( 4, qadd8((g - 128), (128 - r))),</span></div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="comment">// FIXFRAC8(32,255)); //</span></div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="comment">// if Blue is nonzero we&#39;re in Green-Aqua</span></div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keywordflow">if</span>( (g-b) &gt; b) {</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; h = HUE_GREEN;</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( b, FIXFRAC8(32,85));</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; h = HUE_AQUA;</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>(b, 85), FIXFRAC8(8,42));</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; </div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; } <span class="keywordflow">else</span> <span class="comment">/* highest == b */</span> {</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="comment">// Blue is highest</span></div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="comment">// Hue could be Aqua/Blue-Blue, Blue-Purple, Purple-Pink</span></div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="keywordflow">if</span>( r == 0) {</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="comment">// if red is zero, we&#39;re in Aqua/Blue-Blue</span></div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; h = HUE_AQUA + ((HUE_BLUE - HUE_AQUA) / 4);</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>(b, 128), FIXFRAC8(24,128));</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( (b-r) &gt; r) {</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="comment">// B-R &gt; R, we&#39;re in Blue-Purple</span></div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; h = HUE_BLUE;</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( r, FIXFRAC8(32,85));</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="comment">// B-R &lt; R, we&#39;re in Purple-Pink</span></div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; h = HUE_PURPLE;</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; h += <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>(r, 85), FIXFRAC8(32,85));</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; }</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; }</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; </div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; h += 1;</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keywordflow">return</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>( h, s, v);</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;</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="comment">// Examples that need work:</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="comment">// 0,192,192</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="comment">// 192,64,64</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="comment">// 224,32,32</span></div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;<span class="comment">// 252,0,126</span></div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="comment">// 252,252,0</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="comment">// 252,252,126</span></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;FASTLED_NAMESPACE_END</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> <a href="pixeltypes_8h_source.html#l00090">pixeltypes.h:90</a></div></div>
<div class="ttc" id="group___scaling_html_gab341cef8d46232269bb70092fed9eb75"><div class="ttname"><a href="group___scaling.html#gab341cef8d46232269bb70092fed9eb75">scale8_video_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC uint8_t scale8_video_LEAVING_R1_DIRTY(uint8_t i, fract8 scale)</div><div class="ttdoc">This version of scale8_video does not clean up the R1 register on AVR If you are doing several &#39;scale...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00175">scale8.h:175</a></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> <a href="scale8_8h_source.html#l00020">scale8.h:20</a></div></div>
<div class="ttc" id="group___math_html_gaaaa16f47aca46653d51793b1af177587"><div class="ttname"><a href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a></div><div class="ttdeci">LIB8STATIC uint8_t qsub8(uint8_t i, uint8_t j)</div><div class="ttdoc">subtract one byte from another, saturating at 0x00 </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00086">math8.h:86</a></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> <a href="math8_8h_source.html#l00021">math8.h:21</a></div></div>
-<div class="ttc" id="group___scaling_html_ga700b7f510f32e8c91385093c436c27d9"><div class="ttname"><a href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a></div><div class="ttdeci">LIB8STATIC void nscale8x3_video(uint8_t &amp;r, uint8_t &amp;g, uint8_t &amp;b, fract8 scale)</div><div class="ttdoc">scale three one byte values by a fourth one, which is treated as the numerator of a fraction whose de...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00282">scale8.h:282</a></div></div>
+<div class="ttc" id="group___scaling_html_ga39579fcf09743f15545fe0b831ca313c"><div class="ttname"><a href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC uint8_t scale8_LEAVING_R1_DIRTY(uint8_t i, fract8 scale)</div><div class="ttdoc">This version of scale8 does not clean up the R1 register on AVR If you are doing several &#39;scale8&#39;s in...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00121">scale8.h:121</a></div></div>
<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
<div class="ttc" id="group___pixeltypes_html_ga06ee0f21e1bf430ea547244f6ed4add8"><div class="ttname"><a href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a></div><div class="ttdeci">void hsv2rgb_rainbow(const CHSV &amp;hsv, CRGB &amp;rgb)</div><div class="ttdoc">Forward declaration of hsv2rgb_rainbow here, to avoid circular dependencies. </div><div class="ttdef"><b>Definition:</b> <a href="hsv2rgb_8cpp_source.html#l00277">hsv2rgb.cpp:277</a></div></div>
<div class="ttc" id="group___scaling_html_ga572d0b441676c9d8ceb071fe8284b7e9"><div class="ttname"><a href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a></div><div class="ttdeci">LIB8STATIC void cleanup_R1()</div><div class="ttdoc">Clean up the r1 register after a series of *LEAVING_R1_DIRTY calls. </div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00244">scale8.h:244</a></div></div>
-<div class="ttc" id="group___math_html_ga66ecef97faa5f9b92c49766651c5afe9"><div class="ttname"><a href="group___math.html#ga66ecef97faa5f9b92c49766651c5afe9">sqrt16</a></div><div class="ttdeci">LIB8STATIC uint8_t sqrt16(uint16_t x)</div><div class="ttdoc">square root for 16-bit integers About three times faster and five times smaller than Arduino&#39;s genera...</div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00326">math8.h:326</a></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> <a href="pixeltypes_8h_source.html#l00021">pixeltypes.h:21</a></div></div>
+<div class="ttc" id="group___math_html_ga66ecef97faa5f9b92c49766651c5afe9"><div class="ttname"><a href="group___math.html#ga66ecef97faa5f9b92c49766651c5afe9">sqrt16</a></div><div class="ttdeci">LIB8STATIC uint8_t sqrt16(uint16_t x)</div><div class="ttdoc">square root for 16-bit integers About three times faster and five times smaller than Arduino&#39;s genera...</div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00379">math8.h:379</a></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> <a href="pixeltypes_8h_source.html#l00023">pixeltypes.h:23</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>hsv2rgb.cpp</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/hsv2rgb_8h_source.html b/docs/3.1/hsv2rgb_8h_source.html
index 66b459e3..3d8c4461 100644
--- a/docs/3.1/hsv2rgb_8h_source.html
+++ b/docs/3.1/hsv2rgb_8h_source.html
@@ -112,102 +112,105 @@ $(document).ready(function(){initNavTree('hsv2rgb_8h_source.html','');});
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_HSV2RGB_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_HSV2RGB_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">#include &quot;pixeltypes.h&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;pixeltypes.h&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// hsv2rgb_rainbow - convert a hue, saturation, and value to RGB</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// using a visually balanced rainbow (vs a straight</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// mathematical spectrum).</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// This &#39;rainbow&#39; yields better yellow and orange</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// than a straight &#39;spectrum&#39;.</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// NOTE: here hue is 0-255, not just 0-191</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; hsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb);</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* phsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * prgb, <span class="keywordtype">int</span> numLeds);</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#define HUE_MAX_RAINBOW 255</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// hsv2rgb_spectrum - convert a hue, saturation, and value to RGB</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// using a mathematically straight spectrum (vs</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// a visually balanced rainbow).</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// This &#39;spectrum&#39; will have more green &amp; blue</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">// than a &#39;rainbow&#39;, and less yellow and orange.</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// NOTE: here hue is 0-255, not just 0-191</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keywordtype">void</span> hsv2rgb_spectrum( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; hsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb);</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keywordtype">void</span> hsv2rgb_spectrum( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* phsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * prgb, <span class="keywordtype">int</span> numLeds);</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define HUE_MAX_SPECTRUM 255</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;</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">// hsv2rgb_raw - convert hue, saturation, and value to RGB.</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// This &#39;spectrum&#39; conversion will be more green &amp; blue</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// than a real &#39;rainbow&#39;, and the hue is specified just</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// in the range 0-191. Together, these result in a</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// slightly faster conversion speed, at the expense of</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// color balance.</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// NOTE: Hue is 0-191 only!</span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// Saturation &amp; value are 0-255 each.</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">//</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="keywordtype">void</span> hsv2rgb_raw(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; hsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; rgb);</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keywordtype">void</span> hsv2rgb_raw(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* phsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * prgb, <span class="keywordtype">int</span> numLeds);</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#define HUE_MAX 191</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// rgb2hsv_approximate - recover _approximate_ HSV values from RGB.</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// NOTE 1: This function is a long-term work in process; expect</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">// results to change slightly over time as this function is</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">// refined and improved.</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">// NOTE 2: This function is most accurate when the input is an</span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">// RGB color that came from a fully-saturated HSV color to start</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">// with. E.g. CHSV( hue, 255, 255) -&gt; CRGB -&gt; CHSV will give</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment">// best results.</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment">// NOTE 3: This function is not nearly as fast as HSV-to-RGB.</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">// It is provided for those situations when the need for this</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment">// function cannot be avoided, or when extremely high performance</span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment">// is not needed.</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">// NOTE 4: Why is this &#39;only&#39; an &quot;approximation&quot;?</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment">// Not all RGB colors have HSV equivalents! For example, there</span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment">// is no HSV value that will ever convert to RGB(255,255,0) using</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment">// the code provided in this library. So if you try to</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment">// convert RGB(255,255,0) &#39;back&#39; to HSV, you&#39;ll necessarily get</span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">// only an approximation. Emphasis has been placed on getting</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment">// the &#39;hue&#39; as close as usefully possible, but even that&#39;s a bit</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment">// of a challenge. The 8-bit HSV and 8-bit RGB color spaces</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">// are not a &quot;bijection&quot;.</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">// Nevertheless, this function does a pretty good job, particularly</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment">// at recovering the &#39;hue&#39; from fully saturated RGB colors that</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">// originally came from HSV rainbow colors. So if you start</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment">// with CHSV(hue_in,255,255), and convert that to RGB, and then</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment">// convert it back to HSV using this function, the resulting output</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment">// hue will either exactly the same, or very close (+/-1).</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">// The more desaturated the original RGB color is, the rougher the</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment">// approximation, and the less accurate the results.</span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> rgb2hsv_approximate( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb);</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="l00008"></a><span class="lineno"> 8</span>&#160;FASTLED_NAMESPACE_BEGIN</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="comment">// hsv2rgb_rainbow - convert a hue, saturation, and value to RGB</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// using a visually balanced rainbow (vs a straight</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// mathematical spectrum).</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This &#39;rainbow&#39; yields better yellow and orange</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// than a straight &#39;spectrum&#39;.</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;<span class="comment">// NOTE: here hue is 0-255, not just 0-191</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; hsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb);</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* phsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * prgb, <span class="keywordtype">int</span> numLeds);</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define HUE_MAX_RAINBOW 255</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// hsv2rgb_spectrum - convert a hue, saturation, and value to RGB</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// using a mathematically straight spectrum (vs</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">// a visually balanced rainbow).</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// This &#39;spectrum&#39; will have more green &amp; blue</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// than a &#39;rainbow&#39;, and less yellow and orange.</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">// NOTE: here hue is 0-255, not just 0-191</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="keywordtype">void</span> hsv2rgb_spectrum( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; hsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keywordtype">void</span> hsv2rgb_spectrum( <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* phsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * prgb, <span class="keywordtype">int</span> numLeds);</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#define HUE_MAX_SPECTRUM 255</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;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// hsv2rgb_raw - convert hue, saturation, and value to RGB.</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// This &#39;spectrum&#39; conversion will be more green &amp; blue</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// than a real &#39;rainbow&#39;, and the hue is specified just</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// in the range 0-191. Together, these result in a</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// slightly faster conversion speed, at the expense of</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">// color balance.</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// NOTE: Hue is 0-191 only!</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Saturation &amp; value are 0-255 each.</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">//</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="keywordtype">void</span> hsv2rgb_raw(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; hsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> &amp; rgb);</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keywordtype">void</span> hsv2rgb_raw(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>* phsv, <span class="keyword">struct</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> * prgb, <span class="keywordtype">int</span> numLeds);</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#define HUE_MAX 191</span></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;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// rgb2hsv_approximate - recover _approximate_ HSV values from RGB.</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">// NOTE 1: This function is a long-term work in process; expect</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">// results to change slightly over time as this function is</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">// refined and improved.</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">// NOTE 2: This function is most accurate when the input is an</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment">// RGB color that came from a fully-saturated HSV color to start</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment">// with. E.g. CHSV( hue, 255, 255) -&gt; CRGB -&gt; CHSV will give</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment">// best results.</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment">// NOTE 3: This function is not nearly as fast as HSV-to-RGB.</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment">// It is provided for those situations when the need for this</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment">// function cannot be avoided, or when extremely high performance</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">// is not needed.</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment">// NOTE 4: Why is this &#39;only&#39; an &quot;approximation&quot;?</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment">// Not all RGB colors have HSV equivalents! For example, there</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment">// is no HSV value that will ever convert to RGB(255,255,0) using</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">// the code provided in this library. So if you try to</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment">// convert RGB(255,255,0) &#39;back&#39; to HSV, you&#39;ll necessarily get</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment">// only an approximation. Emphasis has been placed on getting</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">// the &#39;hue&#39; as close as usefully possible, but even that&#39;s a bit</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment">// of a challenge. The 8-bit HSV and 8-bit RGB color spaces</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">// are not a &quot;bijection&quot;.</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">// Nevertheless, this function does a pretty good job, particularly</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment">// at recovering the &#39;hue&#39; from fully saturated RGB colors that</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment">// originally came from HSV rainbow colors. So if you start</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment">// with CHSV(hue_in,255,255), and convert that to RGB, and then</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">// convert it back to HSV using this function, the resulting output</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment">// hue will either exactly the same, or very close (+/-1).</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment">// The more desaturated the original RGB color is, the rougher the</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">// approximation, and the less accurate the results.</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<a class="code" href="struct_c_h_s_v.html">CHSV</a> rgb2hsv_approximate( <span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdoc">Representation of an RGB pixel (Red, Green, Blue) </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00088">pixeltypes.h:88</a></div></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;FASTLED_NAMESPACE_END</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="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> <a href="pixeltypes_8h_source.html#l00090">pixeltypes.h:90</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
<div class="ttc" id="group___pixeltypes_html_ga06ee0f21e1bf430ea547244f6ed4add8"><div class="ttname"><a href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a></div><div class="ttdeci">void hsv2rgb_rainbow(const CHSV &amp;hsv, CRGB &amp;rgb)</div><div class="ttdoc">Forward declaration of hsv2rgb_rainbow here, to avoid circular dependencies. </div><div class="ttdef"><b>Definition:</b> <a href="hsv2rgb_8cpp_source.html#l00277">hsv2rgb.cpp:277</a></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> <a href="pixeltypes_8h_source.html#l00021">pixeltypes.h:21</a></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> <a href="pixeltypes_8h_source.html#l00023">pixeltypes.h:23</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>hsv2rgb.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/index.html b/docs/3.1/index.html
index 3973c197..09437cb9 100644
--- a/docs/3.1/index.html
+++ b/docs/3.1/index.html
@@ -108,7 +108,7 @@ $(document).ready(function(){initNavTree('index.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/inherit_graph_10.map b/docs/3.1/inherit_graph_10.map
index 32f82ec3..e68c6225 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="$class_c_min_wait.html" title="CMinWait\&lt; 2000 \&gt;" alt="" coords="6,5,138,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_10.md5 b/docs/3.1/inherit_graph_10.md5
index 2d8ffdc9..39792e79 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
+f99346592fe17ae919dbbbe220c77b53 \ 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..ac679613 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 9833b341..32f82ec3 100644
--- a/docs/3.1/inherit_graph_11.map
+++ b/docs/3.1/inherit_graph_11.map
@@ -1,4 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_c_pixel_view.html" title="CPixelView\&lt; CRGB \&gt;" alt="" coords="6,5,157,32"/>
-<area shape="rect" id="node2" href="$class_c_r_g_b_array.html" title="CRGBArray\&lt; SIZE \&gt;" alt="" coords="206,5,351,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_11.md5 b/docs/3.1/inherit_graph_11.md5
index 31e4afa6..2d8ffdc9 100644
--- a/docs/3.1/inherit_graph_11.md5
+++ b/docs/3.1/inherit_graph_11.md5
@@ -1 +1 @@
-a81010f57ba820a41d897466aeabfbb2 \ No newline at end of file
+d061b8cd12ee165a7fe64ff35ddf4c50 \ 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 53bf54f2..315ee837 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 253a6111..9833b341 100644
--- a/docs/3.1/inherit_graph_12.map
+++ b/docs/3.1/inherit_graph_12.map
@@ -1,3 +1,4 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$class_c_pixel_view.html" title="Represents a set of CRGB led objects. " alt="" coords="5,5,197,32"/>
+<area shape="rect" id="node1" href="$class_c_pixel_view.html" title="CPixelView\&lt; CRGB \&gt;" alt="" coords="6,5,157,32"/>
+<area shape="rect" id="node2" href="$class_c_r_g_b_array.html" title="CRGBArray\&lt; SIZE \&gt;" alt="" coords="206,5,351,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_12.md5 b/docs/3.1/inherit_graph_12.md5
index 683b012b..31e4afa6 100644
--- a/docs/3.1/inherit_graph_12.md5
+++ b/docs/3.1/inherit_graph_12.md5
@@ -1 +1 @@
-0e34b2e5d99c9bb265bf7cd6d6f00241 \ No newline at end of file
+a81010f57ba820a41d897466aeabfbb2 \ 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 5778f3d0..53bf54f2 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 fd1d536b..253a6111 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_pixel_view_1_1pixelset__iterator__base.html" title="CPixelView\&lt; PIXEL_TYPE\l \&gt;::pixelset_iterator\l_base\&lt; T \&gt;" alt="" coords="5,5,187,61"/>
+<area shape="rect" id="node1" href="$class_c_pixel_view.html" title="Represents a set of CRGB led objects. " alt="" coords="5,5,197,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_13.md5 b/docs/3.1/inherit_graph_13.md5
index 0fff2ac3..683b012b 100644
--- a/docs/3.1/inherit_graph_13.md5
+++ b/docs/3.1/inherit_graph_13.md5
@@ -1 +1 @@
-f7577a9915976c0ab3af8c6f8e18453f \ No newline at end of file
+0e34b2e5d99c9bb265bf7cd6d6f00241 \ 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 1de7558b..5778f3d0 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 0a821ae4..fd1d536b 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="$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_pixel_view_1_1pixelset__iterator__base.html" title="CPixelView\&lt; PIXEL_TYPE\l \&gt;::pixelset_iterator\l_base\&lt; T \&gt;" alt="" coords="5,5,187,61"/>
</map>
diff --git a/docs/3.1/inherit_graph_14.md5 b/docs/3.1/inherit_graph_14.md5
index 719b3650..0fff2ac3 100644
--- a/docs/3.1/inherit_graph_14.md5
+++ b/docs/3.1/inherit_graph_14.md5
@@ -1 +1 @@
-6f9963c60471b0a8d2dc7f3ff0da2540 \ No newline at end of file
+f7577a9915976c0ab3af8c6f8e18453f \ 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 034d2496..1de7558b 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 a37af540..0a821ae4 100644
--- a/docs/3.1/inherit_graph_15.map
+++ b/docs/3.1/inherit_graph_15.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="$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_15.md5 b/docs/3.1/inherit_graph_15.md5
index c27b940a..719b3650 100644
--- a/docs/3.1/inherit_graph_15.md5
+++ b/docs/3.1/inherit_graph_15.md5
@@ -1 +1 @@
-605594545affded9ddb5dfd7ad57af84 \ No newline at end of file
+6f9963c60471b0a8d2dc7f3ff0da2540 \ 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 df846db8..034d2496 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 b47198d1..a37af540 100644
--- a/docs/3.1/inherit_graph_16.map
+++ b/docs/3.1/inherit_graph_16.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_c_r_g_b_palette16.html" title="CRGBPalette16" alt="" coords="5,5,123,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_16.md5 b/docs/3.1/inherit_graph_16.md5
index 04cb5ea1..c27b940a 100644
--- a/docs/3.1/inherit_graph_16.md5
+++ b/docs/3.1/inherit_graph_16.md5
@@ -1 +1 @@
-77060e775dbe8df58c848605024876ca \ No newline at end of file
+605594545affded9ddb5dfd7ad57af84 \ 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 da77fa31..df846db8 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 19a9c657..b47198d1 100644
--- a/docs/3.1/inherit_graph_17.map
+++ b/docs/3.1/inherit_graph_17.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_c_r_g_b_palette256.html" title="CRGBPalette256" alt="" coords="6,5,130,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_17.md5 b/docs/3.1/inherit_graph_17.md5
index 5f01d4a6..04cb5ea1 100644
--- a/docs/3.1/inherit_graph_17.md5
+++ b/docs/3.1/inherit_graph_17.md5
@@ -1 +1 @@
-02cfa8fbc6ed1eb6b3d40d91cc103d4d \ No newline at end of file
+77060e775dbe8df58c848605024876ca \ 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 c6d0e6d7..da77fa31 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 855df757..0c95c1e4 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="$class_fast_pin.html" title="FastPin\&lt; CLOCK_PIN \&gt;" alt="" coords="5,5,171,32"/>
+<area shape="rect" id="node1" href="$class_c_r_g_b_palette32.html" title="CRGBPalette32" alt="" coords="5,5,123,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_18.md5 b/docs/3.1/inherit_graph_18.md5
index 46df333b..de439715 100644
--- a/docs/3.1/inherit_graph_18.md5
+++ b/docs/3.1/inherit_graph_18.md5
@@ -1 +1 @@
-ccf9b1197d80bc1c2aba3505b533b587 \ No newline at end of file
+faec5aab4ade82e417433b68a6c9e150 \ 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 0b40025f..43c0768d 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 915c0501..19a9c657 100644
--- a/docs/3.1/inherit_graph_19.map
+++ b/docs/3.1/inherit_graph_19.map
@@ -1,4 +1,3 @@
<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="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_19.md5 b/docs/3.1/inherit_graph_19.md5
index 6202ad65..5f01d4a6 100644
--- a/docs/3.1/inherit_graph_19.md5
+++ b/docs/3.1/inherit_graph_19.md5
@@ -1 +1 @@
-3bc369ad9258fe5b5453ce276e8ccce6 \ No newline at end of file
+02cfa8fbc6ed1eb6b3d40d91cc103d4d \ 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 6ed3fbfc..c6d0e6d7 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_20.map b/docs/3.1/inherit_graph_20.map
index c49bafd4..855df757 100644
--- a/docs/3.1/inherit_graph_20.map
+++ b/docs/3.1/inherit_graph_20.map
@@ -1,39 +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,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_u_c_s2903_controller.html" title="UCS2903Controller\&lt;\l DATA_PIN, RGB_ORDER \&gt;" alt="" coords="196,854,391,895"/>
-<area shape="rect" id="node29" href="$class_w_s2811_controller400_khz.html" title="WS2811Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,919,395,961"/>
-<area shape="rect" id="node31" href="$class_w_s2811_controller800_khz.html" title="WS2811Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,985,395,1026"/>
-<area shape="rect" id="node34" href="$class_w_s2812_controller800_khz.html" title="WS2812Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,1115,395,1157"/>
-<area shape="rect" id="node37" href="$class_w_s2812_controller800_khz.html" title="WS2812Controller800Khz\l\&lt; DATA_PIN, GRB \&gt;" alt="" coords="205,1210,381,1251"/>
-<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_u_c_s2903.html" title="UCS2903\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="457,854,617,895"/>
-<area shape="rect" id="node30" href="$class_w_s2811__400.html" title="WS2811_400\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="446,919,629,961"/>
-<area shape="rect" id="node32" href="$class_a_p_a104.html" title="APA104\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,985,629,1026"/>
-<area shape="rect" id="node33" href="$class_w_s2811.html" title="WS2811\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="444,1050,631,1091"/>
-<area shape="rect" id="node35" href="$class_w_s2812.html" title="WS2812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="444,1115,631,1157"/>
-<area shape="rect" id="node36" href="$class_w_s2812_b.html" title="WS2812B\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="456,1181,619,1222"/>
-<area shape="rect" id="node38" href="$class_n_e_o_p_i_x_e_l.html" title="NEOPIXEL\&lt; DATA_PIN \&gt;" alt="" coords="449,1247,626,1273"/>
+<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_20.md5 b/docs/3.1/inherit_graph_20.md5
index 067181b2..46df333b 100644
--- a/docs/3.1/inherit_graph_20.md5
+++ b/docs/3.1/inherit_graph_20.md5
@@ -1 +1 @@
-38ed858a692918229595e0ce64409a4a \ No newline at end of file
+ccf9b1197d80bc1c2aba3505b533b587 \ 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 7ad29011..0b40025f 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_21.map b/docs/3.1/inherit_graph_21.map
index c4676ee3..915c0501 100644
--- a/docs/3.1/inherit_graph_21.map
+++ b/docs/3.1/inherit_graph_21.map
@@ -1,3 +1,4 @@
<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="$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_21.md5 b/docs/3.1/inherit_graph_21.md5
index 16e73671..6202ad65 100644
--- a/docs/3.1/inherit_graph_21.md5
+++ b/docs/3.1/inherit_graph_21.md5
@@ -1 +1 @@
-3179042e30daae2627d365314c520288 \ No newline at end of file
+3bc369ad9258fe5b5453ce276e8ccce6 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_21.png b/docs/3.1/inherit_graph_21.png
index 3e72319e..6ed3fbfc 100644
--- a/docs/3.1/inherit_graph_21.png
+++ b/docs/3.1/inherit_graph_21.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_22.map b/docs/3.1/inherit_graph_22.map
index 10920651..24cc1f65 100644
--- a/docs/3.1/inherit_graph_22.map
+++ b/docs/3.1/inherit_graph_22.map
@@ -1,3 +1,41 @@
<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="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,71,395,113"/>
+<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,138,395,179"/>
+<area shape="rect" id="node8" href="$class_p_l9823_controller.html" title="PL9823Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="207,206,380,247"/>
+<area shape="rect" id="node10" href="$class_s_k6812_controller.html" title="SK6812Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="206,275,381,317"/>
+<area shape="rect" id="node12" href="$class_s_k6822_controller.html" title="SK6822Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="206,349,381,390"/>
+<area shape="rect" id="node14" href="$class_t_m1803_controller400_khz.html" title="TM1803Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,430,395,471"/>
+<area shape="rect" id="node16" href="$class_t_m1809_controller800_khz.html" title="TM1809Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,527,395,569"/>
+<area shape="rect" id="node20" href="$class_t_m1829_controller1600_khz.html" title="TM1829Controller1600Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,593,395,634"/>
+<area shape="rect" id="node21" href="$class_t_m1829_controller800_khz.html" title="TM1829Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,658,395,699"/>
+<area shape="rect" id="node23" href="$class_u_c_s1903_b_controller800_khz.html" title="UCS1903BController800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,723,395,765"/>
+<area shape="rect" id="node25" href="$class_u_c_s1903_controller400_khz.html" title="UCS1903Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,789,395,830"/>
+<area shape="rect" id="node27" href="$class_u_c_s1904_controller800_khz.html" title="UCS1904Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,854,395,895"/>
+<area shape="rect" id="node29" href="$class_u_c_s2903_controller.html" title="UCS2903Controller\&lt;\l DATA_PIN, RGB_ORDER \&gt;" alt="" coords="196,919,391,961"/>
+<area shape="rect" id="node31" href="$class_w_s2811_controller400_khz.html" title="WS2811Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,985,395,1026"/>
+<area shape="rect" id="node33" href="$class_w_s2811_controller800_khz.html" title="WS2811Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,1050,395,1091"/>
+<area shape="rect" id="node36" href="$class_w_s2812_controller800_khz.html" title="WS2812Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,1181,395,1222"/>
+<area shape="rect" id="node39" href="$class_w_s2812_controller800_khz.html" title="WS2812Controller800Khz\l\&lt; DATA_PIN, GRB \&gt;" alt="" coords="205,1275,381,1317"/>
+<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_s_k6822.html" title="SK6822\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="446,331,629,373"/>
+<area shape="rect" id="node15" href="$class_t_m1803.html" title="TM1803\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,397,629,438"/>
+<area shape="rect" id="node17" href="$class_t_m1804.html" title="TM1804\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,462,629,503"/>
+<area shape="rect" id="node18" href="$class_t_m1809.html" title="TM1809\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,527,629,569"/>
+<area shape="rect" id="node19" href="$class_t_m1812.html" title="TM1812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,593,629,634"/>
+<area shape="rect" id="node22" href="$class_t_m1829.html" title="TM1829\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,658,629,699"/>
+<area shape="rect" id="node24" href="$class_u_c_s1903_b.html" title="UCS1903B\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="453,723,622,765"/>
+<area shape="rect" id="node26" href="$class_u_c_s1903.html" title="UCS1903\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="457,789,617,830"/>
+<area shape="rect" id="node28" href="$class_u_c_s1904.html" title="UCS1904\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="457,854,617,895"/>
+<area shape="rect" id="node30" href="$class_u_c_s2903.html" title="UCS2903\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="457,919,617,961"/>
+<area shape="rect" id="node32" href="$class_w_s2811__400.html" title="WS2811_400\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="446,985,629,1026"/>
+<area shape="rect" id="node34" href="$class_a_p_a104.html" title="APA104\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,1050,629,1091"/>
+<area shape="rect" id="node35" href="$class_w_s2811.html" title="WS2811\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="444,1115,631,1157"/>
+<area shape="rect" id="node37" href="$class_w_s2812.html" title="WS2812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="444,1181,631,1222"/>
+<area shape="rect" id="node38" href="$class_w_s2812_b.html" title="WS2812B\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="456,1246,619,1287"/>
+<area shape="rect" id="node40" href="$class_n_e_o_p_i_x_e_l.html" title="NEOPIXEL\&lt; DATA_PIN \&gt;" alt="" coords="449,1312,626,1339"/>
</map>
diff --git a/docs/3.1/inherit_graph_22.md5 b/docs/3.1/inherit_graph_22.md5
index 47803097..ba0f648d 100644
--- a/docs/3.1/inherit_graph_22.md5
+++ b/docs/3.1/inherit_graph_22.md5
@@ -1 +1 @@
-8d471172123b13dfb9999519f6748ec6 \ No newline at end of file
+fd911c5f10d22cb84ad4658dd7269dc1 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_22.png b/docs/3.1/inherit_graph_22.png
index be566307..f6c60d7c 100644
--- a/docs/3.1/inherit_graph_22.png
+++ b/docs/3.1/inherit_graph_22.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_23.map b/docs/3.1/inherit_graph_23.map
index d5ef36e0..c4676ee3 100644
--- a/docs/3.1/inherit_graph_23.map
+++ b/docs/3.1/inherit_graph_23.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="$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_23.md5 b/docs/3.1/inherit_graph_23.md5
index 752f4ad7..16e73671 100644
--- a/docs/3.1/inherit_graph_23.md5
+++ b/docs/3.1/inherit_graph_23.md5
@@ -1 +1 @@
-f1a3293763c3d7b8452c673e78352fbd \ No newline at end of file
+3179042e30daae2627d365314c520288 \ 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 dfc895f2..3e72319e 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 e60a5775..10920651 100644
--- a/docs/3.1/inherit_graph_24.map
+++ b/docs/3.1/inherit_graph_24.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<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"/>
+<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_24.md5 b/docs/3.1/inherit_graph_24.md5
index 0ebd805d..47803097 100644
--- a/docs/3.1/inherit_graph_24.md5
+++ b/docs/3.1/inherit_graph_24.md5
@@ -1 +1 @@
-0d897a5aa3ecaf90af08580de399ac36 \ No newline at end of file
+8d471172123b13dfb9999519f6748ec6 \ 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 c6656d07..be566307 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 80aee25a..e60a5775 100644
--- a/docs/3.1/inherit_graph_25.map
+++ b/docs/3.1/inherit_graph_25.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$struct_pixel_controller.html" title="Pixel controller class. " alt="" coords="5,5,155,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_25.md5 b/docs/3.1/inherit_graph_25.md5
index c12f4ff0..0ebd805d 100644
--- a/docs/3.1/inherit_graph_25.md5
+++ b/docs/3.1/inherit_graph_25.md5
@@ -1 +1 @@
-2e6eeb5d60bb289fdc319656b34db93f \ No newline at end of file
+0d897a5aa3ecaf90af08580de399ac36 \ 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 7e3b7bc2..c6656d07 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 11491aa5..3671f557 100644
--- a/docs/3.1/inherit_graph_26.map
+++ b/docs/3.1/inherit_graph_26.map
@@ -1,3 +1,3 @@
<map id="Graphical Class Hierarchy" name="Graphical Class Hierarchy">
-<area shape="rect" id="node1" href="$classq.html" title="Template class for represneting fractional ints. " alt="" coords="6,5,93,32"/>
+<area shape="rect" id="node1" href="$struct_pixel_controller.html" title="PixelController\&lt; RGB\l_ORDER, LANES, MASK \&gt;" alt="" coords="6,5,191,46"/>
</map>
diff --git a/docs/3.1/inherit_graph_26.md5 b/docs/3.1/inherit_graph_26.md5
index 6c7d1d94..e133b253 100644
--- a/docs/3.1/inherit_graph_26.md5
+++ b/docs/3.1/inherit_graph_26.md5
@@ -1 +1 @@
-8c0f6c23386353ec4b581d1c76c02e93 \ No newline at end of file
+c59368a46a902d3e5399d68899866130 \ 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 256192a7..be82307c 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 9773df68..11491aa5 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="$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"/>
+<area shape="rect" id="node1" href="$classq.html" title="Template class for represneting fractional ints. " alt="" coords="6,5,93,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_27.md5 b/docs/3.1/inherit_graph_27.md5
index 7c5ce2ca..6c7d1d94 100644
--- a/docs/3.1/inherit_graph_27.md5
+++ b/docs/3.1/inherit_graph_27.md5
@@ -1 +1 @@
-35f103d922271b48d6dff7e7c034c876 \ No newline at end of file
+8c0f6c23386353ec4b581d1c76c02e93 \ 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 a2ac9f4e..256192a7 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 c45b47ea..9773df68 100644
--- a/docs/3.1/inherit_graph_28.map
+++ b/docs/3.1/inherit_graph_28.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_28.md5 b/docs/3.1/inherit_graph_28.md5
index 16d2bd55..7c5ce2ca 100644
--- a/docs/3.1/inherit_graph_28.md5
+++ b/docs/3.1/inherit_graph_28.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_28.png b/docs/3.1/inherit_graph_28.png
index 5dc8dc81..a2ac9f4e 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 b16ac1db..c45b47ea 100644
--- a/docs/3.1/inherit_graph_29.map
+++ b/docs/3.1/inherit_graph_29.map
@@ -1,6 +1,6 @@
<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,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"/>
+<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_29.md5 b/docs/3.1/inherit_graph_29.md5
index 5e3ec767..16d2bd55 100644
--- a/docs/3.1/inherit_graph_29.md5
+++ b/docs/3.1/inherit_graph_29.md5
@@ -1 +1 @@
-ee1a9a268da6e91b21b6062d51c42115 \ No newline at end of file
+3223476052b31aafd3758538ebfc26ab \ 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 39efea3a..5dc8dc81 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_30.map b/docs/3.1/inherit_graph_30.map
index 806784f0..b16ac1db 100644
--- a/docs/3.1/inherit_graph_30.map
+++ b/docs/3.1/inherit_graph_30.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_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_30.md5 b/docs/3.1/inherit_graph_30.md5
index dc7c1546..5e3ec767 100644
--- a/docs/3.1/inherit_graph_30.md5
+++ b/docs/3.1/inherit_graph_30.md5
@@ -1 +1 @@
-8d6bb42275acc5603dc0749a0162794e \ No newline at end of file
+ee1a9a268da6e91b21b6062d51c42115 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_30.png b/docs/3.1/inherit_graph_30.png
index 3ec6c80f..39efea3a 100644
--- a/docs/3.1/inherit_graph_30.png
+++ b/docs/3.1/inherit_graph_30.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_31.map b/docs/3.1/inherit_graph_31.map
index 66689649..806784f0 100644
--- a/docs/3.1/inherit_graph_31.map
+++ b/docs/3.1/inherit_graph_31.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="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_31.md5 b/docs/3.1/inherit_graph_31.md5
index 30d62be3..dc7c1546 100644
--- a/docs/3.1/inherit_graph_31.md5
+++ b/docs/3.1/inherit_graph_31.md5
@@ -1 +1 @@
-4155ce38acf209c0054521ccfe29cd11 \ No newline at end of file
+8d6bb42275acc5603dc0749a0162794e \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_31.png b/docs/3.1/inherit_graph_31.png
index c15ce69a..3ec6c80f 100644
--- a/docs/3.1/inherit_graph_31.png
+++ b/docs/3.1/inherit_graph_31.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_32.map b/docs/3.1/inherit_graph_32.map
index 661688be..66689649 100644
--- a/docs/3.1/inherit_graph_32.map
+++ b/docs/3.1/inherit_graph_32.map
@@ -1,3 +1,3 @@
<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_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_32.md5 b/docs/3.1/inherit_graph_32.md5
index 6b0f600c..30d62be3 100644
--- a/docs/3.1/inherit_graph_32.md5
+++ b/docs/3.1/inherit_graph_32.md5
@@ -1 +1 @@
-9196205d20a02ec6a0e64a0f3c6c06ee \ No newline at end of file
+4155ce38acf209c0054521ccfe29cd11 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_32.png b/docs/3.1/inherit_graph_32.png
index 07f34d7e..c15ce69a 100644
--- a/docs/3.1/inherit_graph_32.png
+++ b/docs/3.1/inherit_graph_32.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_33.map b/docs/3.1/inherit_graph_33.map
index 250724cb..661688be 100644
--- a/docs/3.1/inherit_graph_33.map
+++ b/docs/3.1/inherit_graph_33.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_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_33.md5 b/docs/3.1/inherit_graph_33.md5
index e00192f1..6b0f600c 100644
--- a/docs/3.1/inherit_graph_33.md5
+++ b/docs/3.1/inherit_graph_33.md5
@@ -1 +1 @@
-dc0342838c623ffee6445388bf13a639 \ No newline at end of file
+9196205d20a02ec6a0e64a0f3c6c06ee \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_33.png b/docs/3.1/inherit_graph_33.png
index ce4ebb77..07f34d7e 100644
--- a/docs/3.1/inherit_graph_33.png
+++ b/docs/3.1/inherit_graph_33.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_34.map b/docs/3.1/inherit_graph_34.map
index 7e72113c..250724cb 100644
--- a/docs/3.1/inherit_graph_34.map
+++ b/docs/3.1/inherit_graph_34.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="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_34.md5 b/docs/3.1/inherit_graph_34.md5
index c9ba1969..e00192f1 100644
--- a/docs/3.1/inherit_graph_34.md5
+++ b/docs/3.1/inherit_graph_34.md5
@@ -1 +1 @@
-cc096aad13575ff7cb2b147c51e9bb74 \ No newline at end of file
+dc0342838c623ffee6445388bf13a639 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_34.png b/docs/3.1/inherit_graph_34.png
index ed2276ff..ce4ebb77 100644
--- a/docs/3.1/inherit_graph_34.png
+++ b/docs/3.1/inherit_graph_34.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_35.map b/docs/3.1/inherit_graph_35.map
index 81c8c43b..7e72113c 100644
--- a/docs/3.1/inherit_graph_35.map
+++ b/docs/3.1/inherit_graph_35.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="$uniont_bytes_for_long.html" title="tBytesForLong" alt="" coords="5,5,115,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_35.md5 b/docs/3.1/inherit_graph_35.md5
index 3a769fc5..c9ba1969 100644
--- a/docs/3.1/inherit_graph_35.md5
+++ b/docs/3.1/inherit_graph_35.md5
@@ -1 +1 @@
-ec3163c4aacddfc74245a62753ba41fb \ No newline at end of file
+cc096aad13575ff7cb2b147c51e9bb74 \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_35.png b/docs/3.1/inherit_graph_35.png
index 999471a1..ed2276ff 100644
--- a/docs/3.1/inherit_graph_35.png
+++ b/docs/3.1/inherit_graph_35.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_36.map b/docs/3.1/inherit_graph_36.map
new file mode 100644
index 00000000..81c8c43b
--- /dev/null
+++ b/docs/3.1/inherit_graph_36.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_36.md5 b/docs/3.1/inherit_graph_36.md5
new file mode 100644
index 00000000..3a769fc5
--- /dev/null
+++ b/docs/3.1/inherit_graph_36.md5
@@ -0,0 +1 @@
+ec3163c4aacddfc74245a62753ba41fb \ No newline at end of file
diff --git a/docs/3.1/inherit_graph_36.png b/docs/3.1/inherit_graph_36.png
new file mode 100644
index 00000000..999471a1
--- /dev/null
+++ b/docs/3.1/inherit_graph_36.png
Binary files differ
diff --git a/docs/3.1/inherit_graph_7.map b/docs/3.1/inherit_graph_7.map
index 523ee118..8bdb1150 100644
--- a/docs/3.1/inherit_graph_7.map
+++ b/docs/3.1/inherit_graph_7.map
@@ -1,15 +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,272,122,299"/>
-<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_pixie_controller.html" title="Adafruit Pixie controller class. " alt="" coords="209,378,365,419"/>
-<area shape="rect" id="node11" href="$class_s_m16716_controller.html" title="SM16716 controller class. " alt="" coords="185,444,388,500"/>
-<area shape="rect" id="node12" href="$class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="171,524,402,580"/>
-<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="node10" href="$class_p_i_x_i_e.html" title="PIXIE\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="482,378,651,419"/>
-<area shape="rect" id="node13" href="$class_w_s2803_controller.html" title="WS2803Controller\&lt; DATA\l_PIN, CLOCK_PIN, RGB_ORDER,\l SPI_SPEED \&gt;" alt="" coords="451,524,682,580"/>
+<area shape="rect" id="node1" href="$class_c_h_s_v_palette32.html" title="CHSVPalette32" alt="" coords="6,5,122,32"/>
</map>
diff --git a/docs/3.1/inherit_graph_7.md5 b/docs/3.1/inherit_graph_7.md5
index 3d83448f..c8b716e7 100644
--- a/docs/3.1/inherit_graph_7.md5
+++ b/docs/3.1/inherit_graph_7.md5
@@ -1 +1 @@
-a4379f5b8672ca801b1c55ffe3f0cc0c \ No newline at end of file
+0837481fe51095496d72e76fff225d4f \ 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 1974f883..4e7d48f5 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 428f1342..8dffaee3 100644
--- a/docs/3.1/inherit_graph_8.map
+++ b/docs/3.1/inherit_graph_8.map
@@ -1,3 +1,17 @@
<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_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="6,236,122,263"/>
+<area shape="rect" id="node2" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER, LANES,\l MASK \&gt;" alt="" coords="171,184,344,240"/>
+<area shape="rect" id="node3" href="$class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="185,265,329,306"/>
+<area shape="rect" id="node4" href="$class_a_p_a102_controller.html" title="APA102 controller class. " alt="" coords="393,5,623,61"/>
+<area shape="rect" id="node5" href="$class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="436,86,580,127"/>
+<area shape="rect" id="node7" href="$class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="407,151,609,193"/>
+<area shape="rect" id="node9" href="$class_l_p_d8806_controller.html" title="LPD8806 controller class. " alt="" coords="407,217,609,273"/>
+<area shape="rect" id="node10" href="$class_p9813_controller.html" title="P9813 controller class. " alt="" coords="423,297,593,353"/>
+<area shape="rect" id="node11" href="$class_pixie_controller.html" title="Adafruit Pixie controller class. " alt="" coords="430,378,586,419"/>
+<area shape="rect" id="node13" href="$class_s_m16716_controller.html" title="SM16716 controller class. " alt="" coords="407,444,609,500"/>
+<area shape="rect" id="node14" href="$class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="393,524,623,580"/>
+<area shape="rect" id="node6" href="$class_d_m_x_s_e_r_i_a_l.html" title="DMXSERIAL\&lt; RGB_ORDER \&gt;" alt="" coords="685,93,891,120"/>
+<area shape="rect" id="node8" href="$class_d_m_x_s_i_m_p_l_e.html" title="DMXSIMPLE\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="697,151,879,193"/>
+<area shape="rect" id="node12" href="$class_p_i_x_i_e.html" title="PIXIE\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="703,378,873,419"/>
+<area shape="rect" id="node15" href="$class_w_s2803_controller.html" title="WS2803Controller\&lt; DATA\l_PIN, CLOCK_PIN, RGB_ORDER,\l SPI_SPEED \&gt;" alt="" coords="673,524,903,580"/>
</map>
diff --git a/docs/3.1/inherit_graph_8.md5 b/docs/3.1/inherit_graph_8.md5
index c0fa1719..b39c40ae 100644
--- a/docs/3.1/inherit_graph_8.md5
+++ b/docs/3.1/inherit_graph_8.md5
@@ -1 +1 @@
-ec403eb7aeba941ec587f7cd276ab7a4 \ No newline at end of file
+a878b326b996d695ab331bb2b6106a30 \ 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 29a98e00..39061c2b 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 e68c6225..428f1342 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; 2000 \&gt;" alt="" coords="6,5,138,32"/>
+<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_9.md5 b/docs/3.1/inherit_graph_9.md5
index 39792e79..c0fa1719 100644
--- a/docs/3.1/inherit_graph_9.md5
+++ b/docs/3.1/inherit_graph_9.md5
@@ -1 +1 @@
-f99346592fe17ae919dbbbe220c77b53 \ No newline at end of file
+ec403eb7aeba941ec587f7cd276ab7a4 \ 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 ac679613..29a98e00 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 dbdff97b..a5863034 100644
--- a/docs/3.1/inherits.html
+++ b/docs/3.1/inherits.html
@@ -142,119 +142,123 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
<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_7.png" border="0" alt="" usemap="#_c_l_e_d_controller"/>
+<tr><td><img src="inherit_graph_7.png" border="0" alt="" usemap="#_c_h_s_v_palette32"/>
+<map name="_c_h_s_v_palette32" id="_c_h_s_v_palette32">
+<area shape="rect" id="node1" href="class_c_h_s_v_palette32.html" title="CHSVPalette32" alt="" coords="6,5,122,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_8.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,272,122,299"/><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_pixie_controller.html" title="Adafruit Pixie controller class. " alt="" coords="209,378,365,419"/><area shape="rect" id="node11" href="class_s_m16716_controller.html" title="SM16716 controller class. " alt="" coords="185,444,388,500"/><area shape="rect" id="node12" href="class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="171,524,402,580"/><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="node10" href="class_p_i_x_i_e.html" title="PIXIE\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="482,378,651,419"/><area shape="rect" id="node13" href="class_w_s2803_controller.html" title="WS2803Controller\&lt; DATA\l_PIN, CLOCK_PIN, RGB_ORDER,\l SPI_SPEED \&gt;" alt="" coords="451,524,682,580"/></map>
+<area shape="rect" id="node1" href="class_c_l_e_d_controller.html" title="Base definition for an LED controller. " alt="" coords="6,236,122,263"/><area shape="rect" id="node2" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER, LANES,\l MASK \&gt;" alt="" coords="171,184,344,240"/><area shape="rect" id="node3" href="class_c_pixel_l_e_d_controller.html" title="CPixelLEDController\l\&lt; RGB_ORDER \&gt;" alt="" coords="185,265,329,306"/><area shape="rect" id="node4" href="class_a_p_a102_controller.html" title="APA102 controller class. " alt="" coords="393,5,623,61"/><area shape="rect" id="node5" href="class_d_m_x_serial_controller.html" title="DMXSerialController\l\&lt; RGB_ORDER \&gt;" alt="" coords="436,86,580,127"/><area shape="rect" id="node7" href="class_d_m_x_simple_controller.html" title="DMXSimpleController\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="407,151,609,193"/><area shape="rect" id="node9" href="class_l_p_d8806_controller.html" title="LPD8806 controller class. " alt="" coords="407,217,609,273"/><area shape="rect" id="node10" href="class_p9813_controller.html" title="P9813 controller class. " alt="" coords="423,297,593,353"/><area shape="rect" id="node11" href="class_pixie_controller.html" title="Adafruit Pixie controller class. " alt="" coords="430,378,586,419"/><area shape="rect" id="node13" href="class_s_m16716_controller.html" title="SM16716 controller class. " alt="" coords="407,444,609,500"/><area shape="rect" id="node14" href="class_w_s2801_controller.html" title="WS2801 controller class. " alt="" coords="393,524,623,580"/><area shape="rect" id="node6" href="class_d_m_x_s_e_r_i_a_l.html" title="DMXSERIAL\&lt; RGB_ORDER \&gt;" alt="" coords="685,93,891,120"/><area shape="rect" id="node8" href="class_d_m_x_s_i_m_p_l_e.html" title="DMXSIMPLE\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="697,151,879,193"/><area shape="rect" id="node12" href="class_p_i_x_i_e.html" title="PIXIE\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="703,378,873,419"/><area shape="rect" id="node15" href="class_w_s2803_controller.html" title="WS2803Controller\&lt; DATA\l_PIN, CLOCK_PIN, RGB_ORDER,\l SPI_SPEED \&gt;" alt="" coords="673,524,903,580"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_8.png" border="0" alt="" usemap="#_c_min_wait_3_011000_01_4"/>
+<tr><td><img src="inherit_graph_9.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_9.png" border="0" alt="" usemap="#_c_min_wait_3_012000_01_4"/>
+<tr><td><img src="inherit_graph_10.png" border="0" alt="" usemap="#_c_min_wait_3_012000_01_4"/>
<map name="_c_min_wait_3_012000_01_4" id="_c_min_wait_3_012000_01_4">
<area shape="rect" id="node1" href="class_c_min_wait.html" title="CMinWait\&lt; 2000 \&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_11.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_pixel_view_3_01_c_r_g_b_01_4"/>
+<tr><td><img src="inherit_graph_12.png" border="0" alt="" usemap="#_c_pixel_view_3_01_c_r_g_b_01_4"/>
<map name="_c_pixel_view_3_01_c_r_g_b_01_4" id="_c_pixel_view_3_01_c_r_g_b_01_4">
<area shape="rect" id="node1" href="class_c_pixel_view.html" title="CPixelView\&lt; CRGB \&gt;" alt="" coords="6,5,157,32"/><area shape="rect" id="node2" href="class_c_r_g_b_array.html" title="CRGBArray\&lt; SIZE \&gt;" alt="" coords="206,5,351,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_12.png" border="0" alt="" usemap="#_c_pixel_view_3_01_p_i_x_e_l___t_y_p_e_01_4"/>
+<tr><td><img src="inherit_graph_13.png" border="0" alt="" usemap="#_c_pixel_view_3_01_p_i_x_e_l___t_y_p_e_01_4"/>
<map name="_c_pixel_view_3_01_p_i_x_e_l___t_y_p_e_01_4" id="_c_pixel_view_3_01_p_i_x_e_l___t_y_p_e_01_4">
<area shape="rect" id="node1" href="class_c_pixel_view.html" title="Represents a set of CRGB led objects. " alt="" coords="5,5,197,32"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_13.png" border="0" alt="" usemap="#_c_pixel_view_3_01_p_i_x_e_l___t_y_p_e_01_4_1_1pixelset__iterator__base_3_01_t_01_4"/>
+<tr><td><img src="inherit_graph_14.png" border="0" alt="" usemap="#_c_pixel_view_3_01_p_i_x_e_l___t_y_p_e_01_4_1_1pixelset__iterator__base_3_01_t_01_4"/>
<map name="_c_pixel_view_3_01_p_i_x_e_l___t_y_p_e_01_4_1_1pixelset__iterator__base_3_01_t_01_4" id="_c_pixel_view_3_01_p_i_x_e_l___t_y_p_e_01_4_1_1pixelset__iterator__base_3_01_t_01_4">
<area shape="rect" id="node1" href="class_c_pixel_view_1_1pixelset__iterator__base.html" title="CPixelView\&lt; PIXEL_TYPE\l \&gt;::pixelset_iterator\l_base\&lt; T \&gt;" alt="" coords="5,5,187,61"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_14.png" border="0" alt="" usemap="#_c_r_g_b"/>
+<tr><td><img src="inherit_graph_15.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_15.png" border="0" alt="" usemap="#_c_r_g_b_palette16"/>
+<tr><td><img src="inherit_graph_16.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_16.png" border="0" alt="" usemap="#_c_r_g_b_palette256"/>
+<tr><td><img src="inherit_graph_17.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_17.png" border="0" alt="" usemap="#_d_a_t_a___n_o_p"/>
+<tr><td><img src="inherit_graph_18.png" border="0" alt="" usemap="#_c_r_g_b_palette32"/>
+<map name="_c_r_g_b_palette32" id="_c_r_g_b_palette32">
+<area shape="rect" id="node1" href="class_c_r_g_b_palette32.html" title="CRGBPalette32" alt="" coords="5,5,123,32"/></map>
+</td></tr>
+<tr><td><img src="inherit_graph_19.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_18.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_20.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_19.png" border="0" alt="" usemap="#_fast_pin_3_01_p_i_n_01_4"/>
+<tr><td><img src="inherit_graph_21.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_20.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_22.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,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_u_c_s2903_controller.html" title="UCS2903Controller\&lt;\l DATA_PIN, RGB_ORDER \&gt;" alt="" coords="196,854,391,895"/><area shape="rect" id="node29" href="class_w_s2811_controller400_khz.html" title="WS2811Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,919,395,961"/><area shape="rect" id="node31" href="class_w_s2811_controller800_khz.html" title="WS2811Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,985,395,1026"/><area shape="rect" id="node34" href="class_w_s2812_controller800_khz.html" title="WS2812Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,1115,395,1157"/><area shape="rect" id="node37" href="class_w_s2812_controller800_khz.html" title="WS2812Controller800Khz\l\&lt; DATA_PIN, GRB \&gt;" alt="" coords="205,1210,381,1251"/><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_u_c_s2903.html" title="UCS2903\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="457,854,617,895"/><area shape="rect" id="node30" href="class_w_s2811__400.html" title="WS2811_400\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="446,919,629,961"/><area shape="rect" id="node32" href="class_a_p_a104.html" title="APA104\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,985,629,1026"/><area shape="rect" id="node33" href="class_w_s2811.html" title="WS2811\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="444,1050,631,1091"/><area shape="rect" id="node35" href="class_w_s2812.html" title="WS2812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="444,1115,631,1157"/><area shape="rect" id="node36" href="class_w_s2812_b.html" title="WS2812B\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="456,1181,619,1222"/><area shape="rect" id="node38" href="class_n_e_o_p_i_x_e_l.html" title="NEOPIXEL\&lt; DATA_PIN \&gt;" alt="" coords="449,1247,626,1273"/></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,71,395,113"/><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,138,395,179"/><area shape="rect" id="node8" href="class_p_l9823_controller.html" title="PL9823Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="207,206,380,247"/><area shape="rect" id="node10" href="class_s_k6812_controller.html" title="SK6812Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="206,275,381,317"/><area shape="rect" id="node12" href="class_s_k6822_controller.html" title="SK6822Controller\&lt; DATA\l_PIN, RGB_ORDER \&gt;" alt="" coords="206,349,381,390"/><area shape="rect" id="node14" href="class_t_m1803_controller400_khz.html" title="TM1803Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,430,395,471"/><area shape="rect" id="node16" href="class_t_m1809_controller800_khz.html" title="TM1809Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,527,395,569"/><area shape="rect" id="node20" href="class_t_m1829_controller1600_khz.html" title="TM1829Controller1600Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,593,395,634"/><area shape="rect" id="node21" href="class_t_m1829_controller800_khz.html" title="TM1829Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,658,395,699"/><area shape="rect" id="node23" href="class_u_c_s1903_b_controller800_khz.html" title="UCS1903BController800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,723,395,765"/><area shape="rect" id="node25" href="class_u_c_s1903_controller400_khz.html" title="UCS1903Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,789,395,830"/><area shape="rect" id="node27" href="class_u_c_s1904_controller800_khz.html" title="UCS1904Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,854,395,895"/><area shape="rect" id="node29" href="class_u_c_s2903_controller.html" title="UCS2903Controller\&lt;\l DATA_PIN, RGB_ORDER \&gt;" alt="" coords="196,919,391,961"/><area shape="rect" id="node31" href="class_w_s2811_controller400_khz.html" title="WS2811Controller400Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,985,395,1026"/><area shape="rect" id="node33" href="class_w_s2811_controller800_khz.html" title="WS2811Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,1050,395,1091"/><area shape="rect" id="node36" href="class_w_s2812_controller800_khz.html" title="WS2812Controller800Khz\l\&lt; DATA_PIN, RGB_ORDER \&gt;" alt="" coords="192,1181,395,1222"/><area shape="rect" id="node39" href="class_w_s2812_controller800_khz.html" title="WS2812Controller800Khz\l\&lt; DATA_PIN, GRB \&gt;" alt="" coords="205,1275,381,1317"/><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_s_k6822.html" title="SK6822\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="446,331,629,373"/><area shape="rect" id="node15" href="class_t_m1803.html" title="TM1803\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,397,629,438"/><area shape="rect" id="node17" href="class_t_m1804.html" title="TM1804\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,462,629,503"/><area shape="rect" id="node18" href="class_t_m1809.html" title="TM1809\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,527,629,569"/><area shape="rect" id="node19" href="class_t_m1812.html" title="TM1812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,593,629,634"/><area shape="rect" id="node22" href="class_t_m1829.html" title="TM1829\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,658,629,699"/><area shape="rect" id="node24" href="class_u_c_s1903_b.html" title="UCS1903B\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="453,723,622,765"/><area shape="rect" id="node26" href="class_u_c_s1903.html" title="UCS1903\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="457,789,617,830"/><area shape="rect" id="node28" href="class_u_c_s1904.html" title="UCS1904\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="457,854,617,895"/><area shape="rect" id="node30" href="class_u_c_s2903.html" title="UCS2903\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="457,919,617,961"/><area shape="rect" id="node32" href="class_w_s2811__400.html" title="WS2811_400\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="446,985,629,1026"/><area shape="rect" id="node34" href="class_a_p_a104.html" title="APA104\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="445,1050,629,1091"/><area shape="rect" id="node35" href="class_w_s2811.html" title="WS2811\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="444,1115,631,1157"/><area shape="rect" id="node37" href="class_w_s2812.html" title="WS2812\&lt; DATA_PIN, RGB\l_ORDER \&gt;" alt="" coords="444,1181,631,1222"/><area shape="rect" id="node38" href="class_w_s2812_b.html" title="WS2812B\&lt; DATA_PIN,\l RGB_ORDER \&gt;" alt="" coords="456,1246,619,1287"/><area shape="rect" id="node40" href="class_n_e_o_p_i_x_e_l.html" title="NEOPIXEL\&lt; DATA_PIN \&gt;" alt="" coords="449,1312,626,1339"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_21.png" border="0" alt="" usemap="#_i_e_e_e754binary32__t"/>
+<tr><td><img src="inherit_graph_23.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_22.png" border="0" alt="" usemap="#just8bits"/>
+<tr><td><img src="inherit_graph_24.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_23.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_24.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"/>
+<tr><td><img src="inherit_graph_25.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_25.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>
+<tr><td><img src="inherit_graph_26.png" border="0" alt="" usemap="#_pixel_controller_3_01_r_g_b___o_r_d_e_r_00_01_l_a_n_e_s_00_01_m_a_s_k_01_4"/>
+<map name="_pixel_controller_3_01_r_g_b___o_r_d_e_r_00_01_l_a_n_e_s_00_01_m_a_s_k_01_4" id="_pixel_controller_3_01_r_g_b___o_r_d_e_r_00_01_l_a_n_e_s_00_01_m_a_s_k_01_4">
+<area shape="rect" id="node1" href="struct_pixel_controller.html" title="PixelController\&lt; RGB\l_ORDER, LANES, MASK \&gt;" alt="" coords="6,5,191,46"/></map>
</td></tr>
-<tr><td><img src="inherit_graph_26.png" border="0" alt="" usemap="#q_3_01_t_00_01_f_00_01_i_01_4"/>
+<tr><td><img src="inherit_graph_27.png" border="0" alt="" usemap="#q_3_01_t_00_01_f_00_01_i_01_4"/>
<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_27.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"/>
+<tr><td><img src="inherit_graph_28.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_28.png" border="0" alt="" usemap="#_selectable"/>
+<tr><td><img src="inherit_graph_29.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_29.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"/>
+<tr><td><img src="inherit_graph_30.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_30.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_31.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_31.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_32.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_32.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_33.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_33.png" border="0" alt="" usemap="#sub4"/>
+<tr><td><img src="inherit_graph_34.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_34.png" border="0" alt="" usemap="#t_bytes_for_long"/>
+<tr><td><img src="inherit_graph_35.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_35.png" border="0" alt="" usemap="#_t_r_g_b_gradient_palette_entry_union"/>
+<tr><td><img src="inherit_graph_36.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>
@@ -264,7 +268,7 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/led__sysdefs_8h_source.html b/docs/3.1/led__sysdefs_8h_source.html
index 582d25e6..1335e652 100644
--- a/docs/3.1/led__sysdefs_8h_source.html
+++ b/docs/3.1/led__sysdefs_8h_source.html
@@ -112,52 +112,55 @@ $(document).ready(function(){initNavTree('led__sysdefs_8h_source.html','');});
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_LED_SYSDEFS_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_LED_SYSDEFS_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">#include &quot;<a class="code" href="fastled__config_8h.html">fastled_config.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&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">#if defined(NRF51) || defined(__RFduino__)</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/nrf51/led_sysdefs_arm_nrf51.h&quot;</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#elif defined(__MK20DX128__) || defined(__MK20DX256__)</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// Include k20/T3 headers</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/k20/led_sysdefs_arm_k20.h&quot;</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#elif defined(__MKL26Z64__)</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// Include kl26/T-LC headers</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/kl26/led_sysdefs_arm_kl26.h&quot;</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#elif defined(__SAM3X8E__)</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Include sam/due headers</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/sam/led_sysdefs_arm_sam.h&quot;</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#elif defined(STM32F10X_MD)</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/stm32/led_sysdefs_arm_stm32.h&quot;</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#elif defined(__SAMD21G18A__)</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/d21/led_sysdefs_arm_d21.h&quot;</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#elif defined(__XTENSA__)</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#error &quot;XTENSA-architecture microcontrollers are not supported.&quot;</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// AVR platforms</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;platforms/avr/led_sysdefs_avr.h&quot;</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</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;<span class="preprocessor">#ifndef FASTLED_NAMESPACE_BEGIN</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define FASTLED_NAMESPACE_BEGIN</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#define FASTLED_NAMESPACE_END</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define FASTLED_USING_NAMESPACE</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">// Arduino.h needed for convenience functions digitalPinToPort/BitMask/portOutputRegister and the pinMode methods.</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#ifdef ARDUINO</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include&lt;Arduino.h&gt;</span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#endif</span></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="preprocessor">#define CLKS_PER_US (F_CPU/1000000)</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</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="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#if defined(NRF51) || defined(__RFduino__)</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/nrf51/led_sysdefs_arm_nrf51.h&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#elif defined(__MK20DX128__) || defined(__MK20DX256__)</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// Include k20/T3 headers</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/k20/led_sysdefs_arm_k20.h&quot;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#elif defined(__MKL26Z64__)</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// Include kl26/T-LC headers</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/kl26/led_sysdefs_arm_kl26.h&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#elif defined(__SAM3X8E__)</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// Include sam/due headers</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/sam/led_sysdefs_arm_sam.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#elif defined(STM32F10X_MD)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/stm32/led_sysdefs_arm_stm32.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#elif defined(__SAMD21G18A__)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/d21/led_sysdefs_arm_d21.h&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#elif defined(ESP8266)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;platforms/esp/8266/led_sysdefs_esp8266.h&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// AVR platforms</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;platforms/avr/led_sysdefs_avr.h&quot;</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef FASTLED_NAMESPACE_BEGIN</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define FASTLED_NAMESPACE_BEGIN</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#define FASTLED_NAMESPACE_END</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#define FASTLED_USING_NAMESPACE</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#endif</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="comment">// Arduino.h needed for convenience functions digitalPinToPort/BitMask/portOutputRegister and the pinMode methods.</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#ifdef ARDUINO</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include&lt;Arduino.h&gt;</span></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">#endif</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#define CLKS_PER_US (F_CPU/1000000)</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">#endif</span></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="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>led_sysdefs.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/lib8tion_8cpp_source.html b/docs/3.1/lib8tion_8cpp_source.html
index f4ee33bd..93af5373 100644
--- a/docs/3.1/lib8tion_8cpp_source.html
+++ b/docs/3.1/lib8tion_8cpp_source.html
@@ -361,22 +361,22 @@ $(document).ready(function(){initNavTree('lib8tion_8cpp_source.html','');});
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;FASTLED_NAMESPACE_END</div>
<div class="ttc" id="group___random_html_ga6f2ab7e21aae59453832b2933632f016"><div class="ttname"><a href="group___random.html#ga6f2ab7e21aae59453832b2933632f016">rand16seed</a></div><div class="ttdeci">uint16_t rand16seed</div><div class="ttdoc">random number seed </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8cpp_source.html#l00008">lib8tion.cpp:8</a></div></div>
-<div class="ttc" id="group___math_html_ga4bf8996c4a130e96521495d4a1395a01"><div class="ttname"><a href="group___math.html#ga4bf8996c4a130e96521495d4a1395a01">abs8</a></div><div class="ttdeci">LIB8STATIC int8_t abs8(int8_t i)</div><div class="ttdoc">take abs() of a signed 8-bit uint8_t </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00301">math8.h:301</a></div></div>
+<div class="ttc" id="group___math_html_ga4bf8996c4a130e96521495d4a1395a01"><div class="ttname"><a href="group___math.html#ga4bf8996c4a130e96521495d4a1395a01">abs8</a></div><div class="ttdeci">LIB8STATIC int8_t abs8(int8_t i)</div><div class="ttdoc">take abs() of a signed 8-bit uint8_t </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00354">math8.h:354</a></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> <a href="scale8_8h_source.html#l00020">scale8.h:20</a></div></div>
<div class="ttc" id="group___scaling_html_ga333095ffa436c94d3e77ee9dc39da1c1"><div class="ttname"><a href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1">scale8_video</a></div><div class="ttdeci">LIB8STATIC uint8_t scale8_video(uint8_t i, fract8 scale)</div><div class="ttdoc">The "video" version of scale8 guarantees that the output will be only be zero if one or both of the i...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00073">scale8.h:73</a></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> <a href="math8_8h_source.html#l00021">math8.h:21</a></div></div>
<div class="ttc" id="group___random_html_ga4e63c74426f6516f28470dc1b814aefe"><div class="ttname"><a href="group___random.html#ga4e63c74426f6516f28470dc1b814aefe">random8</a></div><div class="ttdeci">LIB8STATIC uint8_t random8()</div><div class="ttdoc">Generate an 8-bit random number. </div><div class="ttdef"><b>Definition:</b> <a href="random8_8h_source.html#l00019">random8.h:19</a></div></div>
-<div class="ttc" id="group___math_html_ga10181a03cf8b8428fc524aa78e7fbf7f"><div class="ttname"><a href="group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f">mul8</a></div><div class="ttdeci">LIB8STATIC uint8_t mul8(uint8_t i, uint8_t j)</div><div class="ttdoc">8x8 bit multiplication, with 8 bit result </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00242">math8.h:242</a></div></div>
+<div class="ttc" id="group___math_html_ga10181a03cf8b8428fc524aa78e7fbf7f"><div class="ttname"><a href="group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f">mul8</a></div><div class="ttdeci">LIB8STATIC uint8_t mul8(uint8_t i, uint8_t j)</div><div class="ttdoc">8x8 bit multiplication, with 8 bit result </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00295">math8.h:295</a></div></div>
<div class="ttc" id="group___scaling_html_ga700b7f510f32e8c91385093c436c27d9"><div class="ttname"><a href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a></div><div class="ttdeci">LIB8STATIC void nscale8x3_video(uint8_t &amp;r, uint8_t &amp;g, uint8_t &amp;b, fract8 scale)</div><div class="ttdoc">scale three one byte values by a fourth one, which is treated as the numerator of a fraction whose de...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00282">scale8.h:282</a></div></div>
<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </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> <a href="lib8tion_8h_source.html#l00743">lib8tion.h:743</a></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> <a href="lib8tion_8h_source.html#l00753">lib8tion.h:753</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>lib8tion.cpp</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/lib8tion_8h_source.html b/docs/3.1/lib8tion_8h_source.html
index 9932fe91..f0cb1210 100644
--- a/docs/3.1/lib8tion_8h_source.html
+++ b/docs/3.1/lib8tion_8h_source.html
@@ -109,1003 +109,1014 @@ $(document).ready(function(){initNavTree('lib8tion_8h_source.html','');});
<div class="title">lib8tion.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_LED_SYSDEFS_H</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#error WTH? led_sysdefs needs to be included first</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#ifndef __INC_LIB8TION_H</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#define __INC_LIB8TION_H</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_LIB8TION_H</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_LIB8TION_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">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&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">#ifndef __INC_LED_SYSDEFS_H</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#error WTH? led_sysdefs needs to be included first</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#endif</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="comment">/*</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> Fast, efficient 8-bit math functions specifically</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> designed for high-performance LED programming.</span></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"> Because of the AVR(Arduino) and ARM assembly language</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> implementations provided, using these functions often</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> results in smaller and faster code than the equivalent</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> program using plain &quot;C&quot; arithmetic and logic.</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="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> Included are:</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;FASTLED_NAMESPACE_BEGIN</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;<span class="comment">/*</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> Fast, efficient 8-bit math functions specifically</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> designed for high-performance LED programming.</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="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> Because of the AVR(Arduino) and ARM assembly language</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> implementations provided, using these functions often</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> results in smaller and faster code than the equivalent</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> program using plain &quot;C&quot; arithmetic and logic.</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"> 22</span>&#160;<span class="comment"></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="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> - Saturating unsigned 8-bit add and subtract.</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> Instead of wrapping around if an overflow occurs,</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> these routines just &#39;clamp&#39; the output at a maxumum</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> of 255, or a minimum of 0. Useful for adding pixel</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> values. E.g., qadd8( 200, 100) = 255.</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> qadd8( i, j) == MIN( (i + j), 0xFF )</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> qsub8( i, j) == MAX( (i - j), 0 )</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"> - Saturating signed 8-bit (&quot;7-bit&quot;) add.</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> qadd7( i, j) == MIN( (i + j), 0x7F)</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment"> - Scaling (down) of unsigned 8- and 16- bit values.</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment"> Scaledown value is specified in 1/256ths.</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> scale8( i, sc) == (i * sc) / 256</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> scale16by8( i, sc) == (i * sc) / 256</span></div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> Example: scaling a 0-255 value down into a</span></div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> range from 0-99:</span></div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> downscaled = scale8( originalnumber, 100);</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> A special version of scale8 is provided for scaling</span></div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"> LED brightness values, to make sure that they don&#39;t</span></div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> accidentally scale down to total black at low</span></div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> dimming levels, since that would look wrong:</span></div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> scale8_video( i, sc) = ((i * sc) / 256) +? 1</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> Example: reducing an LED brightness by a</span></div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"> dimming factor:</span></div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> new_bright = scale8_video( orig_bright, dimming);</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> - Fast 8- and 16- bit unsigned random numbers.</span></div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> Significantly faster than Arduino random(), but</span></div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> also somewhat less random. You can add entropy.</span></div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> random8() == random from 0..255</span></div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> random8( n) == random from 0..(N-1)</span></div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> random8( n, m) == random from N..(M-1)</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment"> random16() == random from 0..65535</span></div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"> random16( n) == random from 0..(N-1)</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> random16( n, m) == random from N..(M-1)</span></div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"> random16_set_seed( k) == seed = k</span></div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"> random16_add_entropy( k) == seed += k</span></div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"> - Absolute value of a signed 8-bit value.</span></div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"> abs8( i) == abs( i)</span></div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"> - 8-bit math operations which return 8-bit values.</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"> These are provided mostly for completeness,</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"> not particularly for performance.</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment"> mul8( i, j) == (i * j) &amp; 0xFF</span></div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment"> add8( i, j) == (i + j) &amp; 0xFF</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"> sub8( i, j) == (i - j) &amp; 0xFF</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"> - Fast 16-bit approximations of sin and cos.</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment"> Input angle is a uint16_t from 0-65535.</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"> Output is a signed int16_t from -32767 to 32767.</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"> sin16( x) == sin( (x/32768.0) * pi) * 32767</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"> cos16( x) == cos( (x/32768.0) * pi) * 32767</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment"> Accurate to more than 99% in all cases.</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment"> - Fast 8-bit approximations of sin and cos.</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment"> Input angle is a uint8_t from 0-255.</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"> Output is an UNsigned uint8_t from 0 to 255.</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment"> sin8( x) == (sin( (x/128.0) * pi) * 128) + 128</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment"> cos8( x) == (cos( (x/128.0) * pi) * 128) + 128</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"> Accurate to within about 2%.</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"> - Fast 8-bit &quot;easing in/out&quot; function.</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment"> ease8InOutCubic(x) == 3(x^i) - 2(x^3)</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment"> ease8InOutApprox(x) ==</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"> faster, rougher, approximation of cubic easing</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment"> ease8InOutQuad(x) == quadratic (vs cubic) easing</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"> - Cubic, Quadratic, and Triangle wave functions.</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment"> Input is a uint8_t representing phase withing the wave,</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment"> similar to how sin8 takes an angle &#39;theta&#39;.</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment"> Output is a uint8_t representing the amplitude of</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment"> the wave at that point.</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"> cubicwave8( x)</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> quadwave8( x)</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"> triwave8( x)</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment"> - Square root for 16-bit integers. About three times</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"> faster and five times smaller than Arduino&#39;s built-in</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment"> generic 32-bit sqrt routine.</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment"> sqrt16( uint16_t x ) == sqrt( x)</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"> - Dimming and brightening functions for 8-bit</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"> light values.</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"> dim8_video( x) == scale8_video( x, x)</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"> dim8_raw( x) == scale8( x, x)</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"> dim8_lin( x) == (x&lt;128) ? ((x+1)/2) : scale8(x,x)</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"> brighten8_video( x) == 255 - dim8_video( 255 - x)</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> brighten8_raw( x) == 255 - dim8_raw( 255 - x)</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> brighten8_lin( x) == 255 - dim8_lin( 255 - x)</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"> The dimming functions in particular are suitable</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> for making LED light output appear more &#39;linear&#39;.</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"> - Linear interpolation between two values, with the</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"> fraction between them expressed as an 8- or 16-bit</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"> fixed point fraction (fract8 or fract16).</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"> lerp8by8( fromU8, toU8, fract8 )</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"> lerp16by8( fromU16, toU16, fract8 )</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment"> lerp15by8( fromS16, toS16, fract8 )</span></div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"> == from + (( to - from ) * fract8) / 256)</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> lerp16by16( fromU16, toU16, fract16 )</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment"> == from + (( to - from ) * fract16) / 65536)</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"> map8( in, rangeStart, rangeEnd)</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"> == map( in, 0, 255, rangeStart, rangeEnd);</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"> - Optimized memmove, memcpy, and memset, that are</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"> faster than standard avr-libc 1.8.</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment"> memmove8( dest, src, bytecount)</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="comment"> memcpy8( dest, src, bytecount)</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment"> memset8( buf, value, bytecount)</span></div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment"> - Beat generators which return sine or sawtooth</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"> waves in a specified number of Beats Per Minute.</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> Sine wave beat generators can specify a low and</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"> high range for the output. Sawtooth wave beat</span></div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> generators always range 0-255 or 0-65535.</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"> beatsin8( BPM, low8, high8)</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment"> = (sine(beatphase) * (high8-low8)) + low8</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment"> beatsin16( BPM, low16, high16)</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"> = (sine(beatphase) * (high16-low16)) + low16</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"> beatsin88( BPM88, low16, high16)</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> Included are:</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> - Saturating unsigned 8-bit add and subtract.</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> Instead of wrapping around if an overflow occurs,</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> these routines just &#39;clamp&#39; the output at a maxumum</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> of 255, or a minimum of 0. Useful for adding pixel</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> values. E.g., qadd8( 200, 100) = 255.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> qadd8( i, j) == MIN( (i + j), 0xFF )</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> qsub8( i, j) == MAX( (i - j), 0 )</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"> - Saturating signed 8-bit (&quot;7-bit&quot;) add.</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> qadd7( i, j) == MIN( (i + j), 0x7F)</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;<span class="comment"></span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment"> - Scaling (down) of unsigned 8- and 16- bit values.</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment"> Scaledown value is specified in 1/256ths.</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment"> scale8( i, sc) == (i * sc) / 256</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment"> scale16by8( i, sc) == (i * sc) / 256</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> Example: scaling a 0-255 value down into a</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment"> range from 0-99:</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment"> downscaled = scale8( originalnumber, 100);</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment"> A special version of scale8 is provided for scaling</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment"> LED brightness values, to make sure that they don&#39;t</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment"> accidentally scale down to total black at low</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment"> dimming levels, since that would look wrong:</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment"> scale8_video( i, sc) = ((i * sc) / 256) +? 1</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> Example: reducing an LED brightness by a</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> dimming factor:</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> new_bright = scale8_video( orig_bright, dimming);</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> - Fast 8- and 16- bit unsigned random numbers.</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> Significantly faster than Arduino random(), but</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> also somewhat less random. You can add entropy.</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment"> random8() == random from 0..255</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment"> random8( n) == random from 0..(N-1)</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment"> random8( n, m) == random from N..(M-1)</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment"> random16() == random from 0..65535</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment"> random16( n) == random from 0..(N-1)</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment"> random16( n, m) == random from N..(M-1)</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment"> random16_set_seed( k) == seed = k</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment"> random16_add_entropy( k) == seed += k</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment"> - Absolute value of a signed 8-bit value.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment"> abs8( i) == abs( i)</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment"> - 8-bit math operations which return 8-bit values.</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment"> These are provided mostly for completeness,</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment"> not particularly for performance.</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment"> mul8( i, j) == (i * j) &amp; 0xFF</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment"> add8( i, j) == (i + j) &amp; 0xFF</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment"> sub8( i, j) == (i - j) &amp; 0xFF</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment"> - Fast 16-bit approximations of sin and cos.</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment"> Input angle is a uint16_t from 0-65535.</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment"> Output is a signed int16_t from -32767 to 32767.</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment"> sin16( x) == sin( (x/32768.0) * pi) * 32767</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment"> cos16( x) == cos( (x/32768.0) * pi) * 32767</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment"> Accurate to more than 99% in all cases.</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="comment"> - Fast 8-bit approximations of sin and cos.</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment"> Input angle is a uint8_t from 0-255.</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment"> Output is an UNsigned uint8_t from 0 to 255.</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment"> sin8( x) == (sin( (x/128.0) * pi) * 128) + 128</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="comment"> cos8( x) == (cos( (x/128.0) * pi) * 128) + 128</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment"> Accurate to within about 2%.</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="comment"> - Fast 8-bit &quot;easing in/out&quot; function.</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment"> ease8InOutCubic(x) == 3(x^i) - 2(x^3)</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment"> ease8InOutApprox(x) ==</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment"> faster, rougher, approximation of cubic easing</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment"> ease8InOutQuad(x) == quadratic (vs cubic) easing</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment"> - Cubic, Quadratic, and Triangle wave functions.</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment"> Input is a uint8_t representing phase withing the wave,</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment"> similar to how sin8 takes an angle &#39;theta&#39;.</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment"> Output is a uint8_t representing the amplitude of</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment"> the wave at that point.</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment"> cubicwave8( x)</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment"> quadwave8( x)</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment"> triwave8( x)</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment"> - Square root for 16-bit integers. About three times</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="comment"> faster and five times smaller than Arduino&#39;s built-in</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment"> generic 32-bit sqrt routine.</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment"> sqrt16( uint16_t x ) == sqrt( x)</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment"> - Dimming and brightening functions for 8-bit</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment"> light values.</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment"> dim8_video( x) == scale8_video( x, x)</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment"> dim8_raw( x) == scale8( x, x)</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="comment"> dim8_lin( x) == (x&lt;128) ? ((x+1)/2) : scale8(x,x)</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment"> brighten8_video( x) == 255 - dim8_video( 255 - x)</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment"> brighten8_raw( x) == 255 - dim8_raw( 255 - x)</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment"> brighten8_lin( x) == 255 - dim8_lin( 255 - x)</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="comment"> The dimming functions in particular are suitable</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment"> for making LED light output appear more &#39;linear&#39;.</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment"> - Linear interpolation between two values, with the</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment"> fraction between them expressed as an 8- or 16-bit</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment"> fixed point fraction (fract8 or fract16).</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment"> lerp8by8( fromU8, toU8, fract8 )</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment"> lerp16by8( fromU16, toU16, fract8 )</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment"> lerp15by8( fromS16, toS16, fract8 )</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment"> == from + (( to - from ) * fract8) / 256)</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment"> lerp16by16( fromU16, toU16, fract16 )</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="comment"> == from + (( to - from ) * fract16) / 65536)</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment"> map8( in, rangeStart, rangeEnd)</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment"> == map( in, 0, 255, rangeStart, rangeEnd);</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment"> - Optimized memmove, memcpy, and memset, that are</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="comment"> faster than standard avr-libc 1.8.</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment"> memmove8( dest, src, bytecount)</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment"> memcpy8( dest, src, bytecount)</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment"> memset8( buf, value, bytecount)</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment"> - Beat generators which return sine or sawtooth</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment"> waves in a specified number of Beats Per Minute.</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment"> Sine wave beat generators can specify a low and</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="comment"> high range for the output. Sawtooth wave beat</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment"> generators always range 0-255 or 0-65535.</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment"> beatsin8( BPM, low8, high8)</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment"> = (sine(beatphase) * (high8-low8)) + low8</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="comment"> beatsin16( BPM, low16, high16)</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment"> = (sine(beatphase) * (high16-low16)) + low16</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"> beat8( BPM) = 8-bit repeating sawtooth wave</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment"> beat16( BPM) = 16-bit repeating sawtooth wave</span></div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"> beat88( BPM88) = 16-bit repeating sawtooth wave</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"> BPM is beats per minute in either simple form</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"> e.g. 120, or Q8.8 fixed-point form.</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"> BPM88 is beats per minute in ONLY Q8.8 fixed-point</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment"> form.</span></div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="comment">Lib8tion is pronounced like &#39;libation&#39;: lie-BAY-shun</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment"> beatsin88( BPM88, low16, high16)</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment"> = (sine(beatphase) * (high16-low16)) + low16</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="comment"> beat8( BPM) = 8-bit repeating sawtooth wave</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment"> beat16( BPM) = 16-bit repeating sawtooth wave</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment"> beat88( BPM88) = 16-bit repeating sawtooth wave</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment"> BPM is beats per minute in either simple form</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="comment"> e.g. 120, or Q8.8 fixed-point form.</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="comment"> BPM88 is beats per minute in ONLY Q8.8 fixed-point</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="comment"> form.</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="comment"></span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="comment">Lib8tion is pronounced like &#39;libation&#39;: lie-BAY-shun</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment">*/</span></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;<span class="preprocessor">#include &lt;stdint.h&gt;</span></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;<span class="preprocessor">#define LIB8STATIC __attribute__ ((unused)) static inline</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor">#if !defined(__AVR__)</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="comment">// for memmove, memcpy, and memset if not defined here</span></div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#endif</span></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="preprocessor">#if defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega8U2__) || defined(__AVR_AT90USB162__) || defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) || defined(__AVR_ATtiny167__) || defined(__AVR_ATtiny87__)</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor">#define LIB8_ATTINY 1</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor">#endif</span></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;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor">#if defined(__arm__)</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="preprocessor">#define LIB8STATIC __attribute__ ((unused)) static inline</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="preprocessor">#if !defined(__AVR__)</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment">// for memmove, memcpy, and memset if not defined here</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#endif</span></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="preprocessor">#if defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega8U2__) || defined(__AVR_AT90USB162__) || defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) || defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) || defined(__AVR_ATtiny167__) || defined(__AVR_ATtiny87__)</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor">#define LIB8_ATTINY 1</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor">#endif</span></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;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor">#if defined(FASTLED_TEENSY3)</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment">// Can use Cortex M4 DSP instructions</span></div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor">#define QADD8_C 0</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor">#define QADD7_C 0</span></div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor">#define QADD8_ARM_DSP_ASM 1</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor">#define QADD7_ARM_DSP_ASM 1</span></div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment">// Generic ARM</span></div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#define QADD8_C 1</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor">#define QADD7_C 1</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor">#define QSUB8_C 1</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor">#define SCALE8_C 1</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="preprocessor">#define SCALE16BY8_C 1</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#define SCALE16_C 1</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor">#define ABS8_C 1</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor">#define MUL8_C 1</span></div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor">#define QMUL8_C 1</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor">#define ADD8_C 1</span></div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#define SUB8_C 1</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor">#define EASE8_C 1</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor">#define AVG8_C 1</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor">#define AVG7_C 1</span></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;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor">#elif defined(__AVR__)</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment">// AVR ATmega and friends Arduino</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor">#if defined(__arm__)</span></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;<span class="preprocessor">#if defined(FASTLED_TEENSY3)</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment">// Can use Cortex M4 DSP instructions</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="preprocessor">#define QADD8_C 0</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="preprocessor">#define QADD7_C 0</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor">#define QADD8_ARM_DSP_ASM 1</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="preprocessor">#define QADD7_ARM_DSP_ASM 1</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment">// Generic ARM</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor">#define QADD8_C 1</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="preprocessor">#define QADD7_C 1</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="preprocessor">#endif</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;<span class="preprocessor">#define QSUB8_C 1</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="preprocessor">#define SCALE8_C 1</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="preprocessor">#define SCALE16BY8_C 1</span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor">#define SCALE16_C 1</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor">#define ABS8_C 1</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor">#define MUL8_C 1</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#define QMUL8_C 1</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="preprocessor">#define ADD8_C 1</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="preprocessor">#define SUB8_C 1</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor">#define EASE8_C 1</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="preprocessor">#define AVG8_C 1</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="preprocessor">#define AVG7_C 1</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="preprocessor">#define AVG16_C 1</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="preprocessor">#define AVG15_C 1</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor">#define QADD8_C 0</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor">#define QADD7_C 0</span></div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor">#define QSUB8_C 0</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="preprocessor">#define ABS8_C 0</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor">#define ADD8_C 0</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor">#define SUB8_C 0</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor">#define AVG8_C 0</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor">#define AVG7_C 0</span></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;<span class="preprocessor">#define QADD8_AVRASM 1</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor">#define QADD7_AVRASM 1</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor">#define QSUB8_AVRASM 1</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor">#define ABS8_AVRASM 1</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor">#define ADD8_AVRASM 1</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor">#define SUB8_AVRASM 1</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor">#define AVG8_AVRASM 1</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor">#define AVG7_AVRASM 1</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment">// Note: these require hardware MUL instruction</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment">// -- sorry, ATtiny!</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor">#if !defined(LIB8_ATTINY)</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor">#define SCALE8_C 0</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor">#define SCALE16BY8_C 0</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor">#define SCALE16_C 0</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor">#define MUL8_C 0</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor">#define QMUL8_C 0</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor">#define EASE8_C 0</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="preprocessor">#define SCALE8_AVRASM 1</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#define SCALE16BY8_AVRASM 1</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor">#define SCALE16_AVRASM 1</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor">#define MUL8_AVRASM 1</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor">#define QMUL8_AVRASM 1</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor">#define EASE8_AVRASM 1</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor">#define CLEANUP_R1_AVRASM 1</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="comment">// On ATtiny, we just use C implementations</span></div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor">#define SCALE8_C 1</span></div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor">#define SCALE16BY8_C 1</span></div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor">#define SCALE16_C 1</span></div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor">#define MUL8_C 1</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor">#define QMUL8_C 1</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor">#define EASE8_C 1</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor">#define SCALE8_AVRASM 0</span></div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor">#define SCALE16BY8_AVRASM 0</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor">#define SCALE16_AVRASM 0</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#define MUL8_AVRASM 0</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor">#define QMUL8_AVRASM 0</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor">#define EASE8_AVRASM 0</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="comment">// unspecified architecture, so</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment">// no ASM, everything in C</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor">#define QADD8_C 1</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#define QADD7_C 1</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor">#define QSUB8_C 1</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="preprocessor">#define SCALE8_C 1</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor">#define SCALE16BY8_C 1</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor">#define SCALE16_C 1</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor">#define ABS8_C 1</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="preprocessor">#define MUL8_C 1</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor">#define QMUL8_C 1</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor">#define ADD8_C 1</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor">#define SUB8_C 1</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor">#define EASE8_C 1</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor">#define AVG8_C 1</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor">#define AVG7_C 1</span></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="preprocessor">#endif</span></div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="comment">// typdefs for fixed-point fractional types.</span></div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="comment">// sfract7 should be interpreted as signed 128ths.</span></div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="comment">// fract8 should be interpreted as unsigned 256ths.</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="comment">// sfract15 should be interpreted as signed 32768ths.</span></div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="comment">// fract16 should be interpreted as unsigned 65536ths.</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="comment">// Example: if a fract8 has the value &quot;64&quot;, that should be interpreted</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="comment">// as 64/256ths, or one-quarter.</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor">#elif defined(__AVR__)</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment">// AVR ATmega and friends Arduino</span></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">#define QADD8_C 0</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="preprocessor">#define QADD7_C 0</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor">#define QSUB8_C 0</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor">#define ABS8_C 0</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor">#define ADD8_C 0</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor">#define SUB8_C 0</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="preprocessor">#define AVG8_C 0</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="preprocessor">#define AVG7_C 0</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="preprocessor">#define AVG16_C 0</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="preprocessor">#define AVG15_C 0</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor">#define QADD8_AVRASM 1</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor">#define QADD7_AVRASM 1</span></div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#define QSUB8_AVRASM 1</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="preprocessor">#define ABS8_AVRASM 1</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="preprocessor">#define ADD8_AVRASM 1</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="preprocessor">#define SUB8_AVRASM 1</span></div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor">#define AVG8_AVRASM 1</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="preprocessor">#define AVG7_AVRASM 1</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor">#define AVG16_AVRASM 1</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="preprocessor">#define AVG15_AVRASM 1</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment">// Note: these require hardware MUL instruction</span></div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment">// -- sorry, ATtiny!</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor">#if !defined(LIB8_ATTINY)</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor">#define SCALE8_C 0</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="preprocessor">#define SCALE16BY8_C 0</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor">#define SCALE16_C 0</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor">#define MUL8_C 0</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor">#define QMUL8_C 0</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor">#define EASE8_C 0</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor">#define SCALE8_AVRASM 1</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor">#define SCALE16BY8_AVRASM 1</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="preprocessor">#define SCALE16_AVRASM 1</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor">#define MUL8_AVRASM 1</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor">#define QMUL8_AVRASM 1</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor">#define EASE8_AVRASM 1</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor">#define CLEANUP_R1_AVRASM 1</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment">// On ATtiny, we just use C implementations</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor">#define SCALE8_C 1</span></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="preprocessor">#define SCALE16BY8_C 1</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor">#define SCALE16_C 1</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor">#define MUL8_C 1</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor">#define QMUL8_C 1</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="preprocessor">#define EASE8_C 1</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor">#define SCALE8_AVRASM 0</span></div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor">#define SCALE16BY8_AVRASM 0</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor">#define SCALE16_AVRASM 0</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor">#define MUL8_AVRASM 0</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor">#define QMUL8_AVRASM 0</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor">#define EASE8_AVRASM 0</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor">#endif</span></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="preprocessor">#else</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">// unspecified architecture, so</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="comment">// no ASM, everything in C</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor">#define QADD8_C 1</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor">#define QADD7_C 1</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor">#define QSUB8_C 1</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor">#define SCALE8_C 1</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor">#define SCALE16BY8_C 1</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor">#define SCALE16_C 1</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor">#define ABS8_C 1</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="preprocessor">#define MUL8_C 1</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor">#define QMUL8_C 1</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor">#define ADD8_C 1</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor">#define SUB8_C 1</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor">#define EASE8_C 1</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor">#define AVG8_C 1</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor">#define AVG7_C 1</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor">#define AVG16_C 1</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="preprocessor">#define AVG15_C 1</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</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="l00307"></a><span class="lineno"> 307</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="comment">// fract8 range is 0 to 0.99609375</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="comment">// in steps of 0.00390625</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="comment">// sfract7 range is -0.9921875 to 0.9921875</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="comment">// in steps of 0.0078125</span></div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="comment">// typdefs for fixed-point fractional types.</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="comment">// sfract7 should be interpreted as signed 128ths.</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="comment">// fract8 should be interpreted as unsigned 256ths.</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="comment">// sfract15 should be interpreted as signed 32768ths.</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="comment">// fract16 should be interpreted as unsigned 65536ths.</span></div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="comment">// fract16 range is 0 to 0.99998474121</span></div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="comment">// in steps of 0.00001525878</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="comment">// Example: if a fract8 has the value &quot;64&quot;, that should be interpreted</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="comment">// as 64/256ths, or one-quarter.</span></div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="comment">// sfract15 range is -0.99996948242 to 0.99996948242</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="comment">// in steps of 0.00003051757</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div>
-<div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644"> 324</a></span>&#160;<span class="keyword">typedef</span> uint8_t <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a>; </div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div>
-<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga7d6219a7247ab1923ed623e7ae0f34ae"> 328</a></span>&#160;<span class="keyword">typedef</span> int8_t <a class="code" href="group__lib8tion.html#ga7d6219a7247ab1923ed623e7ae0f34ae">sfract7</a>; </div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div>
-<div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5"> 332</a></span>&#160;<span class="keyword">typedef</span> uint16_t <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a>; </div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div>
-<div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga00cb5dc9e5b477a58669a3e40bc473c2"> 336</a></span>&#160;<span class="keyword">typedef</span> int16_t <a class="code" href="group__lib8tion.html#ga00cb5dc9e5b477a58669a3e40bc473c2">sfract15</a>; </div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="comment">// accumXY types should be interpreted as X bits of integer,</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="comment">// and Y bits of fraction.</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="comment">// E.g., accum88 has 8 bits of int, 8 bits of fraction</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div>
-<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a"> 343</a></span>&#160;<span class="keyword">typedef</span> uint16_t <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a>; </div>
-<div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga9585be88f27cab4c367399d8e91c8467"> 344</a></span>&#160;<span class="keyword">typedef</span> int16_t <a class="code" href="group__lib8tion.html#ga9585be88f27cab4c367399d8e91c8467">saccum78</a>; </div>
-<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gae3ac7def25ef5ddea2da1a3bc0c00f44"> 345</a></span>&#160;<span class="keyword">typedef</span> uint32_t <a class="code" href="group__lib8tion.html#gae3ac7def25ef5ddea2da1a3bc0c00f44">accum1616</a>;</div>
-<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gad2dad84f67c8a4cc6d4c92e2c7d3e89f"> 346</a></span>&#160;<span class="keyword">typedef</span> int32_t <a class="code" href="group__lib8tion.html#gad2dad84f67c8a4cc6d4c92e2c7d3e89f">saccum1516</a>;</div>
-<div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga7bcc9ebf20b0dd74d9999d5a630d443f"> 347</a></span>&#160;<span class="keyword">typedef</span> uint16_t <a class="code" href="group__lib8tion.html#ga7bcc9ebf20b0dd74d9999d5a630d443f">accum124</a>; </div>
-<div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga95e7a40d98aa0371e9adce9220d3a67c"> 348</a></span>&#160;<span class="keyword">typedef</span> int32_t <a class="code" href="group__lib8tion.html#ga95e7a40d98aa0371e9adce9220d3a67c">saccum114</a>;</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div>
-<div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="union_i_e_e_e754binary32__t.html"> 352</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; uint32_t i;</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordtype">float</span> f;</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; uint32_t mantissa: 23;</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; uint32_t exponent: 8;</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; uint32_t signbit: 1;</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="keyword">struct </span>{</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; uint32_t mant7 : 7;</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; uint32_t mant16: 16;</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; uint32_t exp_ : 8;</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; uint32_t sb_ : 1;</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="keyword">struct </span>{</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; uint32_t mant_lo8 : 8;</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; uint32_t mant_hi16_exp_lo1 : 16;</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; uint32_t sb_exphi7 : 8;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; };</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;} <a class="code" href="union_i_e_e_e754binary32__t.html">IEEE754binary32_t</a>;</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="preprocessor">#include &quot;lib8tion/math8.h&quot;</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor">#include &quot;lib8tion/scale8.h&quot;</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor">#include &quot;lib8tion/random8.h&quot;</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor">#include &quot;lib8tion/trig8.h&quot;</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</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;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="comment">// fract8 range is 0 to 0.99609375</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="comment">// in steps of 0.00390625</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="comment">// sfract7 range is -0.9921875 to 0.9921875</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="comment">// in steps of 0.0078125</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="comment">// fract16 range is 0 to 0.99998474121</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="comment">// in steps of 0.00001525878</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="comment">// sfract15 range is -0.99996948242 to 0.99996948242</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="comment">// in steps of 0.00003051757</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div>
+<div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644"> 334</a></span>&#160;<span class="keyword">typedef</span> uint8_t <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a>; </div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div>
+<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga7d6219a7247ab1923ed623e7ae0f34ae"> 338</a></span>&#160;<span class="keyword">typedef</span> int8_t <a class="code" href="group__lib8tion.html#ga7d6219a7247ab1923ed623e7ae0f34ae">sfract7</a>; </div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5"> 342</a></span>&#160;<span class="keyword">typedef</span> uint16_t <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a>; </div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
+<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga00cb5dc9e5b477a58669a3e40bc473c2"> 346</a></span>&#160;<span class="keyword">typedef</span> int16_t <a class="code" href="group__lib8tion.html#ga00cb5dc9e5b477a58669a3e40bc473c2">sfract15</a>; </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;<span class="comment">// accumXY types should be interpreted as X bits of integer,</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="comment">// and Y bits of fraction.</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="comment">// E.g., accum88 has 8 bits of int, 8 bits of fraction</span></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"><a class="line" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a"> 353</a></span>&#160;<span class="keyword">typedef</span> uint16_t <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a>; </div>
+<div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga9585be88f27cab4c367399d8e91c8467"> 354</a></span>&#160;<span class="keyword">typedef</span> int16_t <a class="code" href="group__lib8tion.html#ga9585be88f27cab4c367399d8e91c8467">saccum78</a>; </div>
+<div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gae3ac7def25ef5ddea2da1a3bc0c00f44"> 355</a></span>&#160;<span class="keyword">typedef</span> uint32_t <a class="code" href="group__lib8tion.html#gae3ac7def25ef5ddea2da1a3bc0c00f44">accum1616</a>;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gad2dad84f67c8a4cc6d4c92e2c7d3e89f"> 356</a></span>&#160;<span class="keyword">typedef</span> int32_t <a class="code" href="group__lib8tion.html#gad2dad84f67c8a4cc6d4c92e2c7d3e89f">saccum1516</a>;</div>
+<div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga7bcc9ebf20b0dd74d9999d5a630d443f"> 357</a></span>&#160;<span class="keyword">typedef</span> uint16_t <a class="code" href="group__lib8tion.html#ga7bcc9ebf20b0dd74d9999d5a630d443f">accum124</a>; </div>
+<div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga95e7a40d98aa0371e9adce9220d3a67c"> 358</a></span>&#160;<span class="keyword">typedef</span> int32_t <a class="code" href="group__lib8tion.html#ga95e7a40d98aa0371e9adce9220d3a67c">saccum114</a>;</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="l00362"></a><span class="lineno"><a class="line" href="union_i_e_e_e754binary32__t.html"> 362</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; uint32_t i;</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordtype">float</span> f;</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; uint32_t mantissa: 23;</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; uint32_t exponent: 8;</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; uint32_t signbit: 1;</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="keyword">struct </span>{</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; uint32_t mant7 : 7;</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; uint32_t mant16: 16;</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; uint32_t exp_ : 8;</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; uint32_t sb_ : 1;</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">struct </span>{</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; uint32_t mant_lo8 : 8;</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; uint32_t mant_hi16_exp_lo1 : 16;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; uint32_t sb_exphi7 : 8;</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;} <a class="code" href="union_i_e_e_e754binary32__t.html">IEEE754binary32_t</a>;</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;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="comment">// float-to-fixed and fixed-to-float conversions</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="comment">// Note that anything involving a &#39;float&#39; on AVR will be slower.</span></div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor">#include &quot;lib8tion/math8.h&quot;</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor">#include &quot;lib8tion/scale8.h&quot;</span></div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor">#include &quot;lib8tion/random8.h&quot;</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor">#include &quot;lib8tion/trig8.h&quot;</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</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;</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div>
-<div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gab947c1150e3b9056cb91685a14270173"> 394</a></span>&#160;LIB8STATIC <span class="keywordtype">float</span> <a class="code" href="group__lib8tion.html#gab947c1150e3b9056cb91685a14270173">sfract15ToFloat</a>( <a class="code" href="group__lib8tion.html#ga00cb5dc9e5b477a58669a3e40bc473c2">sfract15</a> y)</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="keywordflow">return</span> y / 32768.0;</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;</div>
-<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaa2facbc0ec935e34c629aef43d6262c0"> 403</a></span>&#160;LIB8STATIC <a class="code" href="group__lib8tion.html#ga00cb5dc9e5b477a58669a3e40bc473c2">sfract15</a> <a class="code" href="group__lib8tion.html#gaa2facbc0ec935e34c629aef43d6262c0">floatToSfract15</a>( <span class="keywordtype">float</span> f)</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="keywordflow">return</span> f * 32768.0;</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="l00392"></a><span class="lineno"> 392</span>&#160;</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="comment">// float-to-fixed and fixed-to-float conversions</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="comment">// Note that anything involving a &#39;float&#39; on AVR will be slower.</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div>
+<div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gab947c1150e3b9056cb91685a14270173"> 404</a></span>&#160;LIB8STATIC <span class="keywordtype">float</span> <a class="code" href="group__lib8tion.html#gab947c1150e3b9056cb91685a14270173">sfract15ToFloat</a>( <a class="code" href="group__lib8tion.html#ga00cb5dc9e5b477a58669a3e40bc473c2">sfract15</a> y)</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">return</span> y / 32768.0;</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="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">// memmove8, memcpy8, and memset8:</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;<span class="comment">// alternatives to memmove, memcpy, and memset that are</span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;<span class="comment">// faster on AVR than standard avr-libc 1.8</span></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">#if defined(__AVR__)</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<span class="keywordtype">void</span> * memmove8( <span class="keywordtype">void</span> * dst, <span class="keyword">const</span> <span class="keywordtype">void</span> * src, uint16_t num );</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="keywordtype">void</span> * memcpy8 ( <span class="keywordtype">void</span> * dst, <span class="keyword">const</span> <span class="keywordtype">void</span> * src, uint16_t num ) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((noinline));</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;<span class="keywordtype">void</span> * memset8 ( <span class="keywordtype">void</span> * ptr, uint8_t value, uint16_t num ) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((noinline)) ;</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;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="comment">// on non-AVR platforms, these names just call standard libc.</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="preprocessor">#define memmove8 memmove</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;<span class="preprocessor">#define memcpy8 memcpy</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor">#define memset8 memset</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="preprocessor">#endif</span></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;</div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;<span class="comment">// linear interpolation, such as could be used for Perlin noise, etc.</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="comment">// A note on the structure of the lerp functions:</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="comment">// The cases for b&gt;a and b&lt;=a are handled separately for</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="comment">// speed: without knowing the relative order of a and b,</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;<span class="comment">// the value (a-b) might be overflow the width of a or b,</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;<span class="comment">// and have to be promoted to a wider, slower type.</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="comment">// To avoid that, we separate the two cases, and are able</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="comment">// to do all the math in the same width as the arguments,</span></div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="comment">// which is much faster and smaller on AVR.</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div>
-<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72"> 446</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>( uint8_t a, uint8_t b, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> frac)</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; uint8_t result;</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; uint8_t delta = b - a;</div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; uint8_t scaled = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( delta, frac);</div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; result = a + scaled;</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; uint8_t delta = a - b;</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; uint8_t scaled = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( delta, frac);</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; result = a - scaled;</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="keywordflow">return</span> result;</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;</div>
-<div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3"> 463</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a>( uint16_t a, uint16_t b, <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> frac)</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; uint16_t result;</div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">if</span>( b &gt; a ) {</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; uint16_t delta = b - a;</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; uint32_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(delta, frac);</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; result = a + scaled;</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; uint16_t delta = a - b;</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( delta, frac);</div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; result = a - scaled;</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> result;</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="l00480"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga8c8f06da86c5d7cf13f55c3a5bfdf251"> 480</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga8c8f06da86c5d7cf13f55c3a5bfdf251">lerp16by8</a>( uint16_t a, uint16_t b, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> frac)</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; uint16_t result;</div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; uint16_t delta = b - a;</div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( delta, frac);</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; result = a + scaled;</div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; uint16_t delta = a - b;</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( delta, frac);</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; result = a - scaled;</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="keywordflow">return</span> result;</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;</div>
-<div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaacea0eaea98a065dfa08bb1c147c52a1"> 497</a></span>&#160;LIB8STATIC int16_t <a class="code" href="group__lib8tion.html#gaacea0eaea98a065dfa08bb1c147c52a1">lerp15by8</a>( int16_t a, int16_t b, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> frac)</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; int16_t result;</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; uint16_t delta = b - a;</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( delta, frac);</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; result = a + scaled;</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; uint16_t delta = a - b;</div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( delta, frac);</div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; result = a - scaled;</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="keywordflow">return</span> result;</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="l00514"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gad4b09aba4e188e14d3e71d1c9f77f1a5"> 514</a></span>&#160;LIB8STATIC int16_t <a class="code" href="group__lib8tion.html#gad4b09aba4e188e14d3e71d1c9f77f1a5">lerp15by16</a>( int16_t a, int16_t b, <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> frac)</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; int16_t result;</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; uint16_t delta = b - a;</div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( delta, frac);</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; result = a + scaled;</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; uint16_t delta = a - b;</div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( delta, frac);</div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; result = a - scaled;</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">return</span> result;</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;</div>
-<div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d"> 546</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d">map8</a>( uint8_t in, uint8_t rangeStart, uint8_t rangeEnd)</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; uint8_t rangeWidth = rangeEnd - rangeStart;</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; uint8_t out = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( in, rangeWidth);</div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; out += rangeStart;</div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">return</span> out;</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;</div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="comment">// easing functions; see http://easings.net</span></div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;</div>
-<div class="line"><a name="l00562"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0"> 562</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0">ease8InOutQuad</a>( uint8_t i)</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; uint8_t j = i;</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">if</span>( j &amp; 0x80 ) {</div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; j = 255 - j;</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; uint8_t jj = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( j, (j+1));</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; uint8_t jj2 = jj &lt;&lt; 1;</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">if</span>( i &amp; 0x80 ) {</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; jj2 = 255 - jj2;</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> jj2;</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;</div>
-<div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568"> 579</a></span>&#160;LIB8STATIC <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> <a class="code" href="group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568">ease8InOutCubic</a>( <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> i)</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; uint8_t ii = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( i, i);</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; uint8_t iii = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( ii, i);</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; uint16_t r1 = (3 * (uint16_t)(ii)) - ( 2 * (uint16_t)(iii));</div>
+<div class="line"><a name="l00413"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaa2facbc0ec935e34c629aef43d6262c0"> 413</a></span>&#160;LIB8STATIC <a class="code" href="group__lib8tion.html#ga00cb5dc9e5b477a58669a3e40bc473c2">sfract15</a> <a class="code" href="group__lib8tion.html#gaa2facbc0ec935e34c629aef43d6262c0">floatToSfract15</a>( <span class="keywordtype">float</span> f)</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> f * 32768.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;</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="l00421"></a><span class="lineno"> 421</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="comment">// memmove8, memcpy8, and memset8:</span></div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;<span class="comment">// alternatives to memmove, memcpy, and memset that are</span></div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;<span class="comment">// faster on AVR than standard avr-libc 1.8</span></div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;<span class="keywordtype">void</span> * memmove8( <span class="keywordtype">void</span> * dst, <span class="keyword">const</span> <span class="keywordtype">void</span> * src, uint16_t num );</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="keywordtype">void</span> * memcpy8 ( <span class="keywordtype">void</span> * dst, <span class="keyword">const</span> <span class="keywordtype">void</span> * src, uint16_t num ) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((noinline));</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="keywordtype">void</span> * memset8 ( <span class="keywordtype">void</span> * ptr, uint8_t value, uint16_t num ) <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a> ((noinline)) ;</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">#else</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="comment">// on non-AVR platforms, these names just call standard libc.</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;<span class="preprocessor">#define memmove8 memmove</span></div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="preprocessor">#define memcpy8 memcpy</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;<span class="preprocessor">#define memset8 memset</span></div>
+<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="preprocessor">#endif</span></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="l00441"></a><span class="lineno"> 441</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="comment">// linear interpolation, such as could be used for Perlin noise, etc.</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;<span class="comment">// A note on the structure of the lerp functions:</span></div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;<span class="comment">// The cases for b&gt;a and b&lt;=a are handled separately for</span></div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="comment">// speed: without knowing the relative order of a and b,</span></div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<span class="comment">// the value (a-b) might be overflow the width of a or b,</span></div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;<span class="comment">// and have to be promoted to a wider, slower type.</span></div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;<span class="comment">// To avoid that, we separate the two cases, and are able</span></div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;<span class="comment">// to do all the math in the same width as the arguments,</span></div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;<span class="comment">// which is much faster and smaller on AVR.</span></div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;</div>
+<div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72"> 456</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>( uint8_t a, uint8_t b, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> frac)</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; uint8_t result;</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; uint8_t delta = b - a;</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; uint8_t scaled = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( delta, frac);</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; result = a + scaled;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; uint8_t delta = a - b;</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; uint8_t scaled = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( delta, frac);</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; result = a - scaled;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; }</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">return</span> result;</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;</div>
+<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3"> 473</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a>( uint16_t a, uint16_t b, <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> frac)</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; uint16_t result;</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">if</span>( b &gt; a ) {</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; uint16_t delta = b - a;</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; uint32_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(delta, frac);</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; result = a + scaled;</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; uint16_t delta = a - b;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( delta, frac);</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; result = a - scaled;</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> result;</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="l00490"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga8c8f06da86c5d7cf13f55c3a5bfdf251"> 490</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga8c8f06da86c5d7cf13f55c3a5bfdf251">lerp16by8</a>( uint16_t a, uint16_t b, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> frac)</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; uint16_t result;</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; uint16_t delta = b - a;</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( delta, frac);</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; result = a + scaled;</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; uint16_t delta = a - b;</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( delta, frac);</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; result = a - scaled;</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> result;</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;</div>
+<div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaacea0eaea98a065dfa08bb1c147c52a1"> 507</a></span>&#160;LIB8STATIC int16_t <a class="code" href="group__lib8tion.html#gaacea0eaea98a065dfa08bb1c147c52a1">lerp15by8</a>( int16_t a, int16_t b, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> frac)</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; int16_t result;</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; uint16_t delta = b - a;</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( delta, frac);</div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; result = a + scaled;</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; uint16_t delta = a - b;</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a>( delta, frac);</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; result = a - scaled;</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; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;}</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;</div>
+<div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gad4b09aba4e188e14d3e71d1c9f77f1a5"> 524</a></span>&#160;LIB8STATIC int16_t <a class="code" href="group__lib8tion.html#gad4b09aba4e188e14d3e71d1c9f77f1a5">lerp15by16</a>( int16_t a, int16_t b, <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> frac)</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; int16_t result;</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; uint16_t delta = b - a;</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( delta, frac);</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; result = a + scaled;</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; uint16_t delta = a - b;</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( delta, frac);</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; result = a - scaled;</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="keywordflow">return</span> result;</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="l00556"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d"> 556</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d">map8</a>( uint8_t in, uint8_t rangeStart, uint8_t rangeEnd)</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; uint8_t rangeWidth = rangeEnd - rangeStart;</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; uint8_t out = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( in, rangeWidth);</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; out += rangeStart;</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">return</span> out;</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;</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;<span class="comment">// easing functions; see http://easings.net</span></div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;</div>
+<div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0"> 572</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0">ease8InOutQuad</a>( uint8_t i)</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; uint8_t j = i;</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">if</span>( j &amp; 0x80 ) {</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; j = 255 - j;</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; uint8_t jj = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( j, (j+1));</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; uint8_t jj2 = jj &lt;&lt; 1;</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">if</span>( i &amp; 0x80 ) {</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; jj2 = 255 - jj2;</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="keywordflow">return</span> jj2;</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;</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="comment">/* the code generated for the above *&#39;s automatically</span></div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="comment"> cleans up R1, so there&#39;s no need to explicitily call</span></div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="comment"> cleanup_R1(); */</span></div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; uint8_t result = r1;</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="comment">// if we got &quot;256&quot;, return 255:</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">if</span>( r1 &amp; 0x100 ) {</div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; result = 255;</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; <span class="keywordflow">return</span> result;</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="l00606"></a><span class="lineno"> 606</span>&#160;</div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="preprocessor">#if EASE8_C == 1</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23"> 608</a></span>&#160;LIB8STATIC <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> <a class="code" href="group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23">ease8InOutApprox</a>( <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> i)</div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;{</div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keywordflow">if</span>( i &lt; 64) {</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="comment">// start with slope 0.5</span></div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; i /= 2;</div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( i &gt; (255 - 64)) {</div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="comment">// end with slope 0.5</span></div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; i = 255 - i;</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; i /= 2;</div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; i = 255 - i;</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="comment">// in the middle, use slope 192/128 = 1.5</span></div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; i -= 64;</div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; i += (i / 2);</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; i += 32;</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;</div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">return</span> i;</div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;}</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="preprocessor">#elif EASE8_AVRASM == 1</span></div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23">ease8InOutApprox</a>( <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> i)</div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;{</div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="comment">// takes around 7 cycles on AVR</span></div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span> (</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="stringliteral">&quot; subi %[i], 64 \n\t&quot;</span></div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="stringliteral">&quot; cpi %[i], 128 \n\t&quot;</span></div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="stringliteral">&quot; brcc Lshift_%= \n\t&quot;</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; <span class="comment">// middle case</span></div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="stringliteral">&quot; mov __tmp_reg__, %[i] \n\t&quot;</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="stringliteral">&quot; lsr __tmp_reg__ \n\t&quot;</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="stringliteral">&quot; add %[i], __tmp_reg__ \n\t&quot;</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="stringliteral">&quot; subi %[i], 224 \n\t&quot;</span></div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="stringliteral">&quot; rjmp Ldone_%= \n\t&quot;</span></div>
-<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="comment">// start or end case</span></div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="stringliteral">&quot;Lshift_%=: \n\t&quot;</span></div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="stringliteral">&quot; lsr %[i] \n\t&quot;</span></div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="stringliteral">&quot; subi %[i], 96 \n\t&quot;</span></div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;</div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="stringliteral">&quot;Ldone_%=: \n\t&quot;</span></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; : [i] <span class="stringliteral">&quot;+a&quot;</span> (i)</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; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span></div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; );</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keywordflow">return</span> i;</div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;}</div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="preprocessor">#error &quot;No implementation for ease8 available.&quot;</span></div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div>
+<div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568"> 589</a></span>&#160;LIB8STATIC <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> <a class="code" href="group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568">ease8InOutCubic</a>( <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> i)</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; uint8_t ii = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( i, i);</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; uint8_t iii = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>( ii, i);</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; uint16_t r1 = (3 * (uint16_t)(ii)) - ( 2 * (uint16_t)(iii));</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; <span class="comment">/* the code generated for the above *&#39;s automatically</span></div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="comment"> cleans up R1, so there&#39;s no need to explicitily call</span></div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="comment"> cleanup_R1(); */</span></div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; uint8_t result = r1;</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="comment">// if we got &quot;256&quot;, return 255:</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">if</span>( r1 &amp; 0x100 ) {</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; result = 255;</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; }</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">return</span> result;</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;</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="preprocessor">#if EASE8_C == 1</span></div>
+<div class="line"><a name="l00618"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23"> 618</a></span>&#160;LIB8STATIC <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> <a class="code" href="group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23">ease8InOutApprox</a>( <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> i)</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; <span class="keywordflow">if</span>( i &lt; 64) {</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="comment">// start with slope 0.5</span></div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; i /= 2;</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( i &gt; (255 - 64)) {</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="comment">// end with slope 0.5</span></div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; i = 255 - i;</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; i /= 2;</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; i = 255 - i;</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="comment">// in the middle, use slope 192/128 = 1.5</span></div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; i -= 64;</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; i += (i / 2);</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; i += 32;</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; }</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">return</span> i;</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;<span class="preprocessor">#elif EASE8_AVRASM == 1</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23">ease8InOutApprox</a>( <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> i)</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;{</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="comment">// takes around 7 cycles on AVR</span></div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span> (</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="stringliteral">&quot; subi %[i], 64 \n\t&quot;</span></div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="stringliteral">&quot; cpi %[i], 128 \n\t&quot;</span></div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="stringliteral">&quot; brcc Lshift_%= \n\t&quot;</span></div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="comment">// middle case</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="stringliteral">&quot; mov __tmp_reg__, %[i] \n\t&quot;</span></div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="stringliteral">&quot; lsr __tmp_reg__ \n\t&quot;</span></div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="stringliteral">&quot; add %[i], __tmp_reg__ \n\t&quot;</span></div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="stringliteral">&quot; subi %[i], 224 \n\t&quot;</span></div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="stringliteral">&quot; rjmp Ldone_%= \n\t&quot;</span></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="comment">// start or end case</span></div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="stringliteral">&quot;Lshift_%=: \n\t&quot;</span></div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="stringliteral">&quot; lsr %[i] \n\t&quot;</span></div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="stringliteral">&quot; subi %[i], 96 \n\t&quot;</span></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="stringliteral">&quot;Ldone_%=: \n\t&quot;</span></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;</div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div>
-<div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac"> 673</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac">triwave8</a>(uint8_t in)</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; <span class="keywordflow">if</span>( in &amp; 0x80) {</div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; in = 255 - in;</div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; }</div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; uint8_t out = in &lt;&lt; 1;</div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordflow">return</span> out;</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;</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;<span class="comment">// quadwave8 and cubicwave8: S-shaped wave generators (like &#39;sine&#39;).</span></div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;<span class="comment">// Useful for turning a one-byte &#39;counter&#39; value into a</span></div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;<span class="comment">// one-byte oscillating value that moves smoothly up and down,</span></div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="comment">// with an &#39;acceleration&#39; and &#39;deceleration&#39; curve.</span></div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;<span class="comment">// These are even faster than &#39;sin8&#39;, and have</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;<span class="comment">// slightly different curve shapes.</span></div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; : [i] <span class="stringliteral">&quot;+a&quot;</span> (i)</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="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span></div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; );</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">return</span> i;</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="preprocessor">#else</span></div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;<span class="preprocessor">#error &quot;No implementation for ease8 available.&quot;</span></div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<span class="preprocessor">#endif</span></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;</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div>
+<div class="line"><a name="l00683"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac"> 683</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac">triwave8</a>(uint8_t in)</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="keywordflow">if</span>( in &amp; 0x80) {</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; in = 255 - in;</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; }</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; uint8_t out = in &lt;&lt; 1;</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">return</span> out;</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="l00694"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f"> 694</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f">quadwave8</a>(uint8_t in)</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; <span class="keywordflow">return</span> <a class="code" href="group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0">ease8InOutQuad</a>( <a class="code" href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac">triwave8</a>( in));</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;</div>
-<div class="line"><a name="l00701"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga06b04a0cf955ec107d49b76e0cb35225"> 701</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga06b04a0cf955ec107d49b76e0cb35225">cubicwave8</a>(uint8_t in)</div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;{</div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568">ease8InOutCubic</a>( <a class="code" href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac">triwave8</a>( in));</div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;}</div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;</div>
-<div class="line"><a name="l00730"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga17ae8fcfd9c485bb1120d908f836637a"> 730</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga17ae8fcfd9c485bb1120d908f836637a">squarewave8</a>( uint8_t in, uint8_t pulsewidth=128)</div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;{</div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordflow">if</span>( in &lt; pulsewidth || (pulsewidth == 255)) {</div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keywordflow">return</span> 255;</div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keywordflow">return</span> 0;</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;}</div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;</div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;</div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;</div>
-<div class="line"><a name="l00743"></a><span class="lineno"><a class="line" href="classq.html"> 743</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">class </span><a class="code" href="classq.html">q</a> {</div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; T i:I;</div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; T f:F;</div>
-<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <a class="code" href="classq.html">q</a>(<span class="keywordtype">float</span> fx) { i = fx; f = (fx-i) * (1&lt;&lt;F); }</div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <a class="code" href="classq.html">q</a>(uint8_t _i, uint8_t _f) {i=_i; f=_f; }</div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; uint32_t operator*(uint32_t v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; uint16_t operator*(uint16_t v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; int32_t operator*(int32_t v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; int16_t operator*(int16_t v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;<span class="preprocessor">#ifdef FASTLED_ARM</span></div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="keywordtype">int</span> operator*(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;<span class="preprocessor">#endif</span></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;</div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> uint32_t operator*(uint32_t v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> uint16_t operator*(uint16_t v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> int32_t operator*(int32_t v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> int16_t operator*(int16_t v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;<span class="preprocessor">#ifdef FASTLED_ARM</span></div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> <span class="keywordtype">int</span> operator*(<span class="keywordtype">int</span> v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
-<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;</div>
-<div class="line"><a name="l00767"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga85082c3ed8843d32076222e82d72f80d"> 767</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classq.html">q&lt;uint8_t, 4,4&gt;</a> <a class="code" href="group__lib8tion.html#ga85082c3ed8843d32076222e82d72f80d">q44</a>;</div>
-<div class="line"><a name="l00769"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gafea4166e233d92817eada7203021089a"> 769</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classq.html">q&lt;uint8_t, 6,2&gt;</a> <a class="code" href="group__lib8tion.html#gafea4166e233d92817eada7203021089a">q62</a>;</div>
-<div class="line"><a name="l00771"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gad5dca0e1248b916799dde6dc44ef369b"> 771</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classq.html">q&lt;uint16_t, 8,8&gt;</a> <a class="code" href="group__lib8tion.html#gad5dca0e1248b916799dde6dc44ef369b">q88</a>;</div>
-<div class="line"><a name="l00773"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga0f02a1da674754f48c5f89c1610e118c"> 773</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classq.html">q&lt;uint16_t, 12,4&gt;</a> <a class="code" href="group__lib8tion.html#ga0f02a1da674754f48c5f89c1610e118c">q124</a>;</div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;<span class="comment">// quadwave8 and cubicwave8: S-shaped wave generators (like &#39;sine&#39;).</span></div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;<span class="comment">// Useful for turning a one-byte &#39;counter&#39; value into a</span></div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;<span class="comment">// one-byte oscillating value that moves smoothly up and down,</span></div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;<span class="comment">// with an &#39;acceleration&#39; and &#39;deceleration&#39; curve.</span></div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="comment">// These are even faster than &#39;sin8&#39;, and have</span></div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;<span class="comment">// slightly different curve shapes.</span></div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;</div>
+<div class="line"><a name="l00704"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f"> 704</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f">quadwave8</a>(uint8_t in)</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="keywordflow">return</span> <a class="code" href="group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0">ease8InOutQuad</a>( <a class="code" href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac">triwave8</a>( in));</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="l00711"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga06b04a0cf955ec107d49b76e0cb35225"> 711</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga06b04a0cf955ec107d49b76e0cb35225">cubicwave8</a>(uint8_t in)</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> <a class="code" href="group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568">ease8InOutCubic</a>( <a class="code" href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac">triwave8</a>( in));</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="l00740"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga17ae8fcfd9c485bb1120d908f836637a"> 740</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga17ae8fcfd9c485bb1120d908f836637a">squarewave8</a>( uint8_t in, uint8_t pulsewidth=128)</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; <span class="keywordflow">if</span>( in &lt; pulsewidth || (pulsewidth == 255)) {</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">return</span> 255;</div>
+<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; }</div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;}</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;</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;</div>
+<div class="line"><a name="l00753"></a><span class="lineno"><a class="line" href="classq.html"> 753</a></span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">class </span><a class="code" href="classq.html">q</a> {</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; T i:I;</div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; T f:F;</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <a class="code" href="classq.html">q</a>(<span class="keywordtype">float</span> fx) { i = fx; f = (fx-i) * (1&lt;&lt;F); }</div>
+<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <a class="code" href="classq.html">q</a>(uint8_t _i, uint8_t _f) {i=_i; f=_f; }</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; uint32_t operator*(uint32_t v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; uint16_t operator*(uint16_t v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; int32_t operator*(int32_t v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; int16_t operator*(int16_t v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;<span class="preprocessor">#ifdef FASTLED_ARM</span></div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordtype">int</span> operator*(<span class="keywordtype">int</span> v) { <span class="keywordflow">return</span> (v*i) + ((v*f)&gt;&gt;F); }</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;};</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> uint32_t operator*(uint32_t v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> uint16_t operator*(uint16_t v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> int32_t operator*(int32_t v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> int16_t operator*(int16_t v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;<span class="preprocessor">#ifdef FASTLED_ARM</span></div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> F, <span class="keywordtype">int</span> I&gt; <span class="keyword">static</span> <span class="keywordtype">int</span> operator*(<span class="keywordtype">int</span> v, <a class="code" href="classq.html">q&lt;T,F,I&gt;</a> &amp; <a class="code" href="classq.html">q</a>) { <span class="keywordflow">return</span> q * v; }</div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;</div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;</div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;<span class="comment">// Beat generators - These functions produce waves at a given</span></div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;<span class="comment">// number of &#39;beats per minute&#39;. Internally, they use</span></div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;<span class="comment">// the Arduino function &#39;millis&#39; to track elapsed time.</span></div>
-<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;<span class="comment">// Accuracy is a bit better than one part in a thousand.</span></div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;<span class="comment">// beat8( BPM ) returns an 8-bit value that cycles &#39;BPM&#39; times</span></div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;<span class="comment">// per minute, rising from 0 to 255, resetting to zero,</span></div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;<span class="comment">// rising up again, etc.. The output of this function</span></div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;<span class="comment">// is suitable for feeding directly into sin8, and cos8,</span></div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;<span class="comment">// triwave8, quadwave8, and cubicwave8.</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;<span class="comment">// beat16( BPM ) returns a 16-bit value that cycles &#39;BPM&#39; times</span></div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;<span class="comment">// per minute, rising from 0 to 65535, resetting to zero,</span></div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;<span class="comment">// rising up again, etc. The output of this function is</span></div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;<span class="comment">// suitable for feeding directly into sin16 and cos16.</span></div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;<span class="comment">// beat88( BPM88) is the same as beat16, except that the BPM88 argument</span></div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;<span class="comment">// MUST be in Q8.8 fixed point format, e.g. 120BPM must</span></div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;<span class="comment">// be specified as 120*256 = 30720.</span></div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;<span class="comment">// beatsin8( BPM, uint8_t low, uint8_t high) returns an 8-bit value that</span></div>
-<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;<span class="comment">// rises and falls in a sine wave, &#39;BPM&#39; times per minute,</span></div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;<span class="comment">// between the values of &#39;low&#39; and &#39;high&#39;.</span></div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;<span class="comment">// beatsin16( BPM, uint16_t low, uint16_t high) returns a 16-bit value</span></div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<span class="comment">// that rises and falls in a sine wave, &#39;BPM&#39; times per</span></div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;<span class="comment">// minute, between the values of &#39;low&#39; and &#39;high&#39;.</span></div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;<span class="comment">// beatsin88( BPM88, ...) is the same as beatsin16, except that the</span></div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;<span class="comment">// BPM88 argument MUST be in Q8.8 fixed point format,</span></div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<span class="comment">// e.g. 120BPM must be specified as 120*256 = 30720.</span></div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;<span class="comment">// BPM can be supplied two ways. The simpler way of specifying BPM is as</span></div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;<span class="comment">// a simple 8-bit integer from 1-255, (e.g., &quot;120&quot;).</span></div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;<span class="comment">// The more sophisticated way of specifying BPM allows for fractional</span></div>
-<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<span class="comment">// &quot;Q8.8&quot; fixed point number (an &#39;accum88&#39;) with an 8-bit integer part and</span></div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;<span class="comment">// an 8-bit fractional part. The easiest way to construct this is to multiply</span></div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;<span class="comment">// a floating point BPM value (e.g. 120.3) by 256, (e.g. resulting in 30796</span></div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;<span class="comment">// in this case), and pass that as the 16-bit BPM argument.</span></div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;<span class="comment">// &quot;BPM88&quot; MUST always be specified in Q8.8 format.</span></div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;<span class="comment">// Originally designed to make an entire animation project pulse with brightness.</span></div>
-<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;<span class="comment">// For that effect, add this line just above your existing call to &quot;FastLED.show()&quot;:</span></div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<span class="comment">// uint8_t bright = beatsin8( 60 /*BPM*/, 192 /*dimmest*/, 255 /*brightest*/ ));</span></div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;<span class="comment">// FastLED.setBrightness( bright );</span></div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;<span class="comment">// FastLED.show();</span></div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;<span class="comment">// The entire animation will now pulse between brightness 192 and 255 once per second.</span></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;<span class="comment">// The beat generators need access to a millisecond counter.</span></div>
-<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;<span class="comment">// On Arduino, this is &quot;millis()&quot;. On other platforms, you&#39;ll</span></div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;<span class="comment">// need to provide a function with this signature:</span></div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;<span class="comment">// uint32_t get_millisecond_timer();</span></div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;<span class="comment">// that provides similar functionality.</span></div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;<span class="comment">// You can also force use of the get_millisecond_timer function</span></div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;<span class="comment">// by #defining USE_GET_MILLISECOND_TIMER.</span></div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;<span class="preprocessor">#if (defined(ARDUINO) || defined(SPARK)) &amp;&amp; !defined(USE_GET_MILLISECOND_TIMER)</span></div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;<span class="comment">// Forward declaration of Arduino function &#39;millis&#39;.</span></div>
-<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;uint32_t millis();</div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;<span class="preprocessor">#define GET_MILLIS millis</span></div>
-<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;uint32_t get_millisecond_timer();</div>
-<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;<span class="preprocessor">#define GET_MILLIS get_millisecond_timer</span></div>
-<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;</div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;<span class="comment">// beat16 generates a 16-bit &#39;sawtooth&#39; wave at a given BPM,</span></div>
-<div class="line"><a name="l00844"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395"> 844</a></span>&#160;<span class="comment"></span>LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395">beat88</a>( <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> beats_per_minute_88, uint32_t timebase = 0)</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="comment">// BPM is &#39;beats per minute&#39;, or &#39;beats per 60000ms&#39;.</span></div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="comment">// To avoid using the (slower) division operator, we</span></div>
-<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="comment">// want to convert &#39;beats per 60000ms&#39; to &#39;beats per 65536ms&#39;,</span></div>
-<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="comment">// and then use a simple, fast bit-shift to divide by 65536.</span></div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="comment">//</span></div>
-<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="comment">// The ratio 65536:60000 is 279.620266667:256; we&#39;ll call it 280:256.</span></div>
-<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="comment">// The conversion is accurate to about 0.05%, more or less,</span></div>
-<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <span class="comment">// e.g. if you ask for &quot;120 BPM&quot;, you&#39;ll get about &quot;119.93&quot;.</span></div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keywordflow">return</span> (((GET_MILLIS()) - timebase) * beats_per_minute_88 * 280) &gt;&gt; 16;</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;</div>
-<div class="line"><a name="l00858"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2"> 858</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2">beat16</a>( <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> beats_per_minute, uint32_t timebase = 0)</div>
-<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;{</div>
-<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="comment">// Convert simple 8-bit BPM&#39;s to full Q8.8 accum88&#39;s if needed</span></div>
-<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="keywordflow">if</span>( beats_per_minute &lt; 256) beats_per_minute &lt;&lt;= 8;</div>
-<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395">beat88</a>(beats_per_minute, timebase);</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;</div>
-<div class="line"><a name="l00866"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe"> 866</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe">beat8</a>( <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> beats_per_minute, uint32_t timebase = 0)</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; <span class="keywordflow">return</span> <a class="code" href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2">beat16</a>( beats_per_minute, timebase) &gt;&gt; 8;</div>
-<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;}</div>
-<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160;</div>
-<div class="line"><a name="l00877"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaf917825ff26c8e1174c5b674a2f3c631"> 877</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#gaf917825ff26c8e1174c5b674a2f3c631">beatsin88</a>( <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> beats_per_minute_88, uint16_t lowest = 0, uint16_t highest = 65535,</div>
-<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; uint32_t timebase = 0, uint16_t phase_offset = 0)</div>
-<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;{</div>
-<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; uint16_t beat = <a class="code" href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395">beat88</a>( beats_per_minute_88, timebase);</div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; uint16_t beatsin = (sin16( beat + phase_offset) + 32768);</div>
-<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; uint16_t rangewidth = highest - lowest;</div>
-<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; uint16_t scaledbeat = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( beatsin, rangewidth);</div>
-<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; uint16_t result = lowest + scaledbeat;</div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keywordflow">return</span> result;</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="l00890"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaa46e5de1c4c27833359e7a97a18c839b"> 890</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#gaa46e5de1c4c27833359e7a97a18c839b">beatsin16</a>( <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> beats_per_minute, uint16_t lowest = 0, uint16_t highest = 65535,</div>
-<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; uint32_t timebase = 0, uint16_t phase_offset = 0)</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; uint16_t beat = <a class="code" href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2">beat16</a>( beats_per_minute, timebase);</div>
-<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; uint16_t beatsin = (sin16( beat + phase_offset) + 32768);</div>
-<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; uint16_t rangewidth = highest - lowest;</div>
-<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; uint16_t scaledbeat = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( beatsin, rangewidth);</div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; uint16_t result = lowest + scaledbeat;</div>
-<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keywordflow">return</span> result;</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;</div>
-<div class="line"><a name="l00903"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaecd7cbfc2640407cabf75afcc7d9ddf4"> 903</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#gaecd7cbfc2640407cabf75afcc7d9ddf4">beatsin8</a>( <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> beats_per_minute, uint8_t lowest = 0, uint8_t highest = 255,</div>
-<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; uint32_t timebase = 0, uint8_t phase_offset = 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; uint8_t beat = <a class="code" href="group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe">beat8</a>( beats_per_minute, timebase);</div>
-<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; uint8_t beatsin = sin8( beat + phase_offset);</div>
-<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; uint8_t rangewidth = highest - lowest;</div>
-<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; uint8_t scaledbeat = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( beatsin, rangewidth);</div>
-<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; uint8_t result = lowest + scaledbeat;</div>
-<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <span class="keywordflow">return</span> result;</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;</div>
-<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;</div>
-<div class="line"><a name="l00917"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69"> 917</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69">seconds16</a>()</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; uint32_t ms = GET_MILLIS();</div>
-<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; uint16_t s16;</div>
-<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; s16 = ms / 1000;</div>
-<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="keywordflow">return</span> s16;</div>
-<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160;}</div>
+<div class="line"><a name="l00777"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga85082c3ed8843d32076222e82d72f80d"> 777</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classq.html">q&lt;uint8_t, 4,4&gt;</a> <a class="code" href="group__lib8tion.html#ga85082c3ed8843d32076222e82d72f80d">q44</a>;</div>
+<div class="line"><a name="l00779"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gafea4166e233d92817eada7203021089a"> 779</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classq.html">q&lt;uint8_t, 6,2&gt;</a> <a class="code" href="group__lib8tion.html#gafea4166e233d92817eada7203021089a">q62</a>;</div>
+<div class="line"><a name="l00781"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gad5dca0e1248b916799dde6dc44ef369b"> 781</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classq.html">q&lt;uint16_t, 8,8&gt;</a> <a class="code" href="group__lib8tion.html#gad5dca0e1248b916799dde6dc44ef369b">q88</a>;</div>
+<div class="line"><a name="l00783"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga0f02a1da674754f48c5f89c1610e118c"> 783</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="classq.html">q&lt;uint16_t, 12,4&gt;</a> <a class="code" href="group__lib8tion.html#ga0f02a1da674754f48c5f89c1610e118c">q124</a>;</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;</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;</div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;<span class="comment">// Beat generators - These functions produce waves at a given</span></div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;<span class="comment">// number of &#39;beats per minute&#39;. Internally, they use</span></div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;<span class="comment">// the Arduino function &#39;millis&#39; to track elapsed time.</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;<span class="comment">// Accuracy is a bit better than one part in a thousand.</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;<span class="comment">// beat8( BPM ) returns an 8-bit value that cycles &#39;BPM&#39; times</span></div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;<span class="comment">// per minute, rising from 0 to 255, resetting to zero,</span></div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;<span class="comment">// rising up again, etc.. The output of this function</span></div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;<span class="comment">// is suitable for feeding directly into sin8, and cos8,</span></div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;<span class="comment">// triwave8, quadwave8, and cubicwave8.</span></div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;<span class="comment">// beat16( BPM ) returns a 16-bit value that cycles &#39;BPM&#39; times</span></div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<span class="comment">// per minute, rising from 0 to 65535, resetting to zero,</span></div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;<span class="comment">// rising up again, etc. The output of this function is</span></div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;<span class="comment">// suitable for feeding directly into sin16 and cos16.</span></div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;<span class="comment">// beat88( BPM88) is the same as beat16, except that the BPM88 argument</span></div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;<span class="comment">// MUST be in Q8.8 fixed point format, e.g. 120BPM must</span></div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;<span class="comment">// be specified as 120*256 = 30720.</span></div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;<span class="comment">// beatsin8( BPM, uint8_t low, uint8_t high) returns an 8-bit value that</span></div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;<span class="comment">// rises and falls in a sine wave, &#39;BPM&#39; times per minute,</span></div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;<span class="comment">// between the values of &#39;low&#39; and &#39;high&#39;.</span></div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<span class="comment">// beatsin16( BPM, uint16_t low, uint16_t high) returns a 16-bit value</span></div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;<span class="comment">// that rises and falls in a sine wave, &#39;BPM&#39; times per</span></div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;<span class="comment">// minute, between the values of &#39;low&#39; and &#39;high&#39;.</span></div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;<span class="comment">// beatsin88( BPM88, ...) is the same as beatsin16, except that the</span></div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;<span class="comment">// BPM88 argument MUST be in Q8.8 fixed point format,</span></div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;<span class="comment">// e.g. 120BPM must be specified as 120*256 = 30720.</span></div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;<span class="comment">// BPM can be supplied two ways. The simpler way of specifying BPM is as</span></div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;<span class="comment">// a simple 8-bit integer from 1-255, (e.g., &quot;120&quot;).</span></div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;<span class="comment">// The more sophisticated way of specifying BPM allows for fractional</span></div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;<span class="comment">// &quot;Q8.8&quot; fixed point number (an &#39;accum88&#39;) with an 8-bit integer part and</span></div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;<span class="comment">// an 8-bit fractional part. The easiest way to construct this is to multiply</span></div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;<span class="comment">// a floating point BPM value (e.g. 120.3) by 256, (e.g. resulting in 30796</span></div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;<span class="comment">// in this case), and pass that as the 16-bit BPM argument.</span></div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;<span class="comment">// &quot;BPM88&quot; MUST always be specified in Q8.8 format.</span></div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;<span class="comment">// Originally designed to make an entire animation project pulse with brightness.</span></div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;<span class="comment">// For that effect, add this line just above your existing call to &quot;FastLED.show()&quot;:</span></div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;<span class="comment">// uint8_t bright = beatsin8( 60 /*BPM*/, 192 /*dimmest*/, 255 /*brightest*/ ));</span></div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;<span class="comment">// FastLED.setBrightness( bright );</span></div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;<span class="comment">// FastLED.show();</span></div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;<span class="comment">// The entire animation will now pulse between brightness 192 and 255 once per second.</span></div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;</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">// The beat generators need access to a millisecond counter.</span></div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;<span class="comment">// On Arduino, this is &quot;millis()&quot;. On other platforms, you&#39;ll</span></div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;<span class="comment">// need to provide a function with this signature:</span></div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;<span class="comment">// uint32_t get_millisecond_timer();</span></div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;<span class="comment">// that provides similar functionality.</span></div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;<span class="comment">// You can also force use of the get_millisecond_timer function</span></div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;<span class="comment">// by #defining USE_GET_MILLISECOND_TIMER.</span></div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;<span class="preprocessor">#if (defined(ARDUINO) || defined(SPARK) || defined(FASTLED_HAS_MILLIS)) &amp;&amp; !defined(USE_GET_MILLISECOND_TIMER)</span></div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;<span class="comment">// Forward declaration of Arduino function &#39;millis&#39;.</span></div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;<span class="comment">//uint32_t millis();</span></div>
+<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;<span class="preprocessor">#define GET_MILLIS millis</span></div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;uint32_t get_millisecond_timer();</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;<span class="preprocessor">#define GET_MILLIS get_millisecond_timer</span></div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;</div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;<span class="comment">// beat16 generates a 16-bit &#39;sawtooth&#39; wave at a given BPM,</span></div>
+<div class="line"><a name="l00854"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395"> 854</a></span>&#160;<span class="comment"></span>LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395">beat88</a>( <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> beats_per_minute_88, uint32_t timebase = 0)</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="comment">// BPM is &#39;beats per minute&#39;, or &#39;beats per 60000ms&#39;.</span></div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <span class="comment">// To avoid using the (slower) division operator, we</span></div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="comment">// want to convert &#39;beats per 60000ms&#39; to &#39;beats per 65536ms&#39;,</span></div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <span class="comment">// and then use a simple, fast bit-shift to divide by 65536.</span></div>
+<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="comment">// The ratio 65536:60000 is 279.620266667:256; we&#39;ll call it 280:256.</span></div>
+<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="comment">// The conversion is accurate to about 0.05%, more or less,</span></div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="comment">// e.g. if you ask for &quot;120 BPM&quot;, you&#39;ll get about &quot;119.93&quot;.</span></div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <span class="keywordflow">return</span> (((GET_MILLIS()) - timebase) * beats_per_minute_88 * 280) &gt;&gt; 16;</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;</div>
+<div class="line"><a name="l00868"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2"> 868</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2">beat16</a>( <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> beats_per_minute, uint32_t timebase = 0)</div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;{</div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="comment">// Convert simple 8-bit BPM&#39;s to full Q8.8 accum88&#39;s if needed</span></div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="keywordflow">if</span>( beats_per_minute &lt; 256) beats_per_minute &lt;&lt;= 8;</div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395">beat88</a>(beats_per_minute, timebase);</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;</div>
+<div class="line"><a name="l00876"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe"> 876</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe">beat8</a>( <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> beats_per_minute, uint32_t timebase = 0)</div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;{</div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2">beat16</a>( beats_per_minute, timebase) &gt;&gt; 8;</div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;}</div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;</div>
+<div class="line"><a name="l00887"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaf917825ff26c8e1174c5b674a2f3c631"> 887</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#gaf917825ff26c8e1174c5b674a2f3c631">beatsin88</a>( <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> beats_per_minute_88, uint16_t lowest = 0, uint16_t highest = 65535,</div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; uint32_t timebase = 0, uint16_t phase_offset = 0)</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; uint16_t beat = <a class="code" href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395">beat88</a>( beats_per_minute_88, timebase);</div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; uint16_t beatsin = (sin16( beat + phase_offset) + 32768);</div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; uint16_t rangewidth = highest - lowest;</div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; uint16_t scaledbeat = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( beatsin, rangewidth);</div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; uint16_t result = lowest + scaledbeat;</div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;}</div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;</div>
+<div class="line"><a name="l00900"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaa46e5de1c4c27833359e7a97a18c839b"> 900</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#gaa46e5de1c4c27833359e7a97a18c839b">beatsin16</a>( <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> beats_per_minute, uint16_t lowest = 0, uint16_t highest = 65535,</div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; uint32_t timebase = 0, uint16_t phase_offset = 0)</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; uint16_t beat = <a class="code" href="group__lib8tion.html#gade6acbf6fd3c9d346148bccfcafb2fe2">beat16</a>( beats_per_minute, timebase);</div>
+<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; uint16_t beatsin = (sin16( beat + phase_offset) + 32768);</div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; uint16_t rangewidth = highest - lowest;</div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; uint16_t scaledbeat = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>( beatsin, rangewidth);</div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; uint16_t result = lowest + scaledbeat;</div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;}</div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;</div>
+<div class="line"><a name="l00913"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaecd7cbfc2640407cabf75afcc7d9ddf4"> 913</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#gaecd7cbfc2640407cabf75afcc7d9ddf4">beatsin8</a>( <a class="code" href="group__lib8tion.html#ga397f872082dbd788e04e8c6e443e563a">accum88</a> beats_per_minute, uint8_t lowest = 0, uint8_t highest = 255,</div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; uint32_t timebase = 0, uint8_t phase_offset = 0)</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; uint8_t beat = <a class="code" href="group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe">beat8</a>( beats_per_minute, timebase);</div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; uint8_t beatsin = sin8( beat + phase_offset);</div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; uint8_t rangewidth = highest - lowest;</div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; uint8_t scaledbeat = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( beatsin, rangewidth);</div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; uint8_t result = lowest + scaledbeat;</div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <span class="keywordflow">return</span> result;</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;</div>
-<div class="line"><a name="l00927"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336"> 927</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336">minutes16</a>()</div>
+<div class="line"><a name="l00927"></a><span class="lineno"><a class="line" href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69"> 927</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69">seconds16</a>()</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; uint32_t ms = GET_MILLIS();</div>
-<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; uint16_t m16;</div>
-<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; m16 = (ms / (60000L)) &amp; 0xFFFF;</div>
-<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <span class="keywordflow">return</span> m16;</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; uint16_t s16;</div>
+<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; s16 = ms / 1000;</div>
+<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <span class="keywordflow">return</span> s16;</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;</div>
-<div class="line"><a name="l00937"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga837f5a688998f3340994613944e47d41"> 937</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga837f5a688998f3340994613944e47d41">hours8</a>()</div>
+<div class="line"><a name="l00937"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336"> 937</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336">minutes16</a>()</div>
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;{</div>
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; uint32_t ms = GET_MILLIS();</div>
-<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; uint8_t h8;</div>
-<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; h8 = (ms / (3600000L)) &amp; 0xFF;</div>
-<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; <span class="keywordflow">return</span> h8;</div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; uint16_t m16;</div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; m16 = (ms / (60000L)) &amp; 0xFFFF;</div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; <span class="keywordflow">return</span> m16;</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;</div>
-<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160;</div>
-<div class="line"><a name="l00956"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e"> 956</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e">div1024_32_16</a>( uint32_t in32)</div>
-<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160;{</div>
-<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; uint16_t out16;</div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
-<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span> (</div>
-<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="stringliteral">&quot; lsr %D[in] \n\t&quot;</span></div>
-<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="stringliteral">&quot; ror %C[in] \n\t&quot;</span></div>
-<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <span class="stringliteral">&quot; ror %B[in] \n\t&quot;</span></div>
-<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="stringliteral">&quot; lsr %D[in] \n\t&quot;</span></div>
-<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <span class="stringliteral">&quot; ror %C[in] \n\t&quot;</span></div>
-<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <span class="stringliteral">&quot; ror %B[in] \n\t&quot;</span></div>
-<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="stringliteral">&quot; mov %B[out],%C[in] \n\t&quot;</span></div>
-<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <span class="stringliteral">&quot; mov %A[out],%B[in] \n\t&quot;</span></div>
-<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; : [in] <span class="stringliteral">&quot;+r&quot;</span> (in32),</div>
-<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; [out] <span class="stringliteral">&quot;=r&quot;</span> (out16)</div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; );</div>
-<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; out16 = (in32 &gt;&gt; 10) &amp; 0xFFFF;</div>
-<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="keywordflow">return</span> out16;</div>
-<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;}</div>
-<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;</div>
-<div class="line"><a name="l00981"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b"> 981</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b">bseconds16</a>()</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; uint32_t ms = GET_MILLIS();</div>
-<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; uint16_t s16;</div>
-<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; s16 = <a class="code" href="group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e">div1024_32_16</a>( ms);</div>
-<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <span class="keywordflow">return</span> s16;</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;</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;<span class="comment">// Classes to implement &quot;Every N Milliseconds&quot;, &quot;Every N Seconds&quot;,</span></div>
-<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;<span class="comment">// &quot;Every N Minutes&quot;, &quot;Every N Hours&quot;, and &quot;Every N BSeconds&quot;.</span></div>
-<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;<span class="preprocessor">#if 1</span></div>
-<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;<span class="preprocessor">#define INSTANTIATE_EVERY_N_TIME_PERIODS(NAME,TIMETYPE,TIMEGETTER) \</span></div>
-<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;<span class="preprocessor">class NAME { \</span></div>
-<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;<span class="preprocessor">public: \</span></div>
-<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;<span class="preprocessor"> TIMETYPE mPrevTrigger; \</span></div>
-<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;<span class="preprocessor"> TIMETYPE mPeriod; \</span></div>
-<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;<span class="preprocessor"> \</span></div>
-<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;<span class="preprocessor"> NAME() { reset(); mPeriod = 1; }; \</span></div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;<span class="preprocessor"> NAME(TIMETYPE period) { reset(); setPeriod(period); }; \</span></div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="preprocessor"> void setPeriod( TIMETYPE period) { mPeriod = period; }; \</span></div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;<span class="preprocessor"> TIMETYPE getTime() { return (TIMETYPE)(TIMEGETTER()); }; \</span></div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;<span class="preprocessor"> TIMETYPE getPeriod() { return mPeriod; }; \</span></div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;<span class="preprocessor"> TIMETYPE getElapsed() { return getTime() - mPrevTrigger; } \</span></div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;<span class="preprocessor"> TIMETYPE getRemaining() { return mPeriod - getElapsed(); } \</span></div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;<span class="preprocessor"> TIMETYPE getLastTriggerTime() { return mPrevTrigger; } \</span></div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;<span class="preprocessor"> bool ready() { \</span></div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;<span class="preprocessor"> bool isReady = (getElapsed() &gt;= mPeriod); \</span></div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;<span class="preprocessor"> if( isReady ) { reset(); } \</span></div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;<span class="preprocessor"> return isReady; \</span></div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;<span class="preprocessor"> } \</span></div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;<span class="preprocessor"> void reset() { mPrevTrigger = getTime(); }; \</span></div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;<span class="preprocessor"> void trigger() { mPrevTrigger = getTime() - mPeriod; }; \</span></div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;<span class="preprocessor"> \</span></div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;<span class="preprocessor"> operator bool() { return ready(); } \</span></div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;<span class="preprocessor">};</span></div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNMillis</a>,uint32_t,GET_MILLIS);</div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNSeconds</a>,uint16_t,<a class="code" href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69">seconds16</a>);</div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNBSeconds</a>,uint16_t,<a class="code" href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b">bseconds16</a>);</div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNMinutes</a>,uint16_t,<a class="code" href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336">minutes16</a>);</div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNHours</a>,uint8_t,<a class="code" href="group__lib8tion.html#ga837f5a688998f3340994613944e47d41">hours8</a>);</div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;</div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;<span class="comment">// Under C++11 rules, we would be allowed to use not-external</span></div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;<span class="comment">// -linkage-type symbols as template arguments,</span></div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;<span class="comment">// e.g., LIB8STATIC seconds16, and we&#39;d be able to use these</span></div>
-<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;<span class="comment">// templates as shown below.</span></div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;<span class="comment">// However, under C++03 rules, we cannot do that, and thus we</span></div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<span class="comment">// have to resort to the preprocessor to &#39;instantiate&#39; &#39;templates&#39;,</span></div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;<span class="comment">// as handled above.</span></div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> timeType,timeType (*timeGetter)()&gt;</div>
-<div class="line"><a name="l01032"></a><span class="lineno"><a class="line" href="class_c_every_n_time_periods.html"> 1032</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a> {</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; timeType mPrevTrigger;</div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; timeType mPeriod;</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; <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>() { reset(); mPeriod = 1; };</div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>(timeType period) { reset(); setPeriod(period); };</div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <span class="keywordtype">void</span> setPeriod( timeType period) { mPeriod = period; };</div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; timeType getTime() { <span class="keywordflow">return</span> (timeType)(timeGetter()); };</div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; timeType getPeriod() { <span class="keywordflow">return</span> mPeriod; };</div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; timeType getElapsed() { <span class="keywordflow">return</span> getTime() - mPrevTrigger; }</div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; timeType getRemaining() { <span class="keywordflow">return</span> mPeriod - getElapsed(); }</div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; timeType getLastTriggerTime() { <span class="keywordflow">return</span> mPrevTrigger; }</div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <span class="keywordtype">bool</span> ready() {</div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <span class="keywordtype">bool</span> isReady = (getElapsed() &gt;= mPeriod);</div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; <span class="keywordflow">if</span>( isReady ) { reset(); }</div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; <span class="keywordflow">return</span> isReady;</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="keywordtype">void</span> reset() { mPrevTrigger = getTime(); };</div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <span class="keywordtype">void</span> trigger() { mPrevTrigger = getTime() - mPeriod; };</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; <span class="keyword">operator</span> bool() { <span class="keywordflow">return</span> ready(); }</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> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint16_t,seconds16&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNSeconds</a>;</div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint16_t,bseconds16&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNBSeconds</a>;</div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint32_t,millis&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNMillis</a>;</div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint16_t,minutes16&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNMinutes</a>;</div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint8_t,hours8&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNHours</a>;</div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;</div>
+<div class="line"><a name="l00947"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga837f5a688998f3340994613944e47d41"> 947</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group__lib8tion.html#ga837f5a688998f3340994613944e47d41">hours8</a>()</div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;{</div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; uint32_t ms = GET_MILLIS();</div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; uint8_t h8;</div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; h8 = (ms / (3600000L)) &amp; 0xFF;</div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="keywordflow">return</span> h8;</div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160;}</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;</div>
+<div class="line"><a name="l00966"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e"> 966</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e">div1024_32_16</a>( uint32_t in32)</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; uint16_t out16;</div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span> (</div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="stringliteral">&quot; lsr %D[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <span class="stringliteral">&quot; ror %C[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; <span class="stringliteral">&quot; ror %B[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <span class="stringliteral">&quot; lsr %D[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="stringliteral">&quot; ror %C[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <span class="stringliteral">&quot; ror %B[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <span class="stringliteral">&quot; mov %B[out],%C[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="stringliteral">&quot; mov %A[out],%B[in] \n\t&quot;</span></div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; : [in] <span class="stringliteral">&quot;+r&quot;</span> (in32),</div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; [out] <span class="stringliteral">&quot;=r&quot;</span> (out16)</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;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; out16 = (in32 &gt;&gt; 10) &amp; 0xFFFF;</div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; <span class="keywordflow">return</span> out16;</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="l00991"></a><span class="lineno"><a class="line" href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b"> 991</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b">bseconds16</a>()</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; uint32_t ms = GET_MILLIS();</div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; uint16_t s16;</div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; s16 = <a class="code" href="group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e">div1024_32_16</a>( ms);</div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keywordflow">return</span> s16;</div>
+<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;}</div>
+<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;</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;<span class="comment">// Classes to implement &quot;Every N Milliseconds&quot;, &quot;Every N Seconds&quot;,</span></div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="comment">// &quot;Every N Minutes&quot;, &quot;Every N Hours&quot;, and &quot;Every N BSeconds&quot;.</span></div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;<span class="preprocessor">#if 1</span></div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;<span class="preprocessor">#define INSTANTIATE_EVERY_N_TIME_PERIODS(NAME,TIMETYPE,TIMEGETTER) \</span></div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;<span class="preprocessor">class NAME { \</span></div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;<span class="preprocessor">public: \</span></div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;<span class="preprocessor"> TIMETYPE mPrevTrigger; \</span></div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;<span class="preprocessor"> TIMETYPE mPeriod; \</span></div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;<span class="preprocessor"> \</span></div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;<span class="preprocessor"> NAME() { reset(); mPeriod = 1; }; \</span></div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;<span class="preprocessor"> NAME(TIMETYPE period) { reset(); setPeriod(period); }; \</span></div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;<span class="preprocessor"> void setPeriod( TIMETYPE period) { mPeriod = period; }; \</span></div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;<span class="preprocessor"> TIMETYPE getTime() { return (TIMETYPE)(TIMEGETTER()); }; \</span></div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;<span class="preprocessor"> TIMETYPE getPeriod() { return mPeriod; }; \</span></div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;<span class="preprocessor"> TIMETYPE getElapsed() { return getTime() - mPrevTrigger; } \</span></div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;<span class="preprocessor"> TIMETYPE getRemaining() { return mPeriod - getElapsed(); } \</span></div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;<span class="preprocessor"> TIMETYPE getLastTriggerTime() { return mPrevTrigger; } \</span></div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;<span class="preprocessor"> bool ready() { \</span></div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;<span class="preprocessor"> bool isReady = (getElapsed() &gt;= mPeriod); \</span></div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;<span class="preprocessor"> if( isReady ) { reset(); } \</span></div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;<span class="preprocessor"> return isReady; \</span></div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;<span class="preprocessor"> } \</span></div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;<span class="preprocessor"> void reset() { mPrevTrigger = getTime(); }; \</span></div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;<span class="preprocessor"> void trigger() { mPrevTrigger = getTime() - mPeriod; }; \</span></div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;<span class="preprocessor"> \</span></div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;<span class="preprocessor"> operator bool() { return ready(); } \</span></div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;<span class="preprocessor">};</span></div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNMillis</a>,uint32_t,GET_MILLIS);</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNSeconds</a>,uint16_t,<a class="code" href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69">seconds16</a>);</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNBSeconds</a>,uint16_t,<a class="code" href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b">bseconds16</a>);</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNMinutes</a>,uint16_t,<a class="code" href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336">minutes16</a>);</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;INSTANTIATE_EVERY_N_TIME_PERIODS(<a class="code" href="class_c_every_n_time_periods.html">CEveryNHours</a>,uint8_t,<a class="code" href="group__lib8tion.html#ga837f5a688998f3340994613944e47d41">hours8</a>);</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;<span class="comment">// Under C++11 rules, we would be allowed to use not-external</span></div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;<span class="comment">// -linkage-type symbols as template arguments,</span></div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;<span class="comment">// e.g., LIB8STATIC seconds16, and we&#39;d be able to use these</span></div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;<span class="comment">// templates as shown below.</span></div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;<span class="comment">// However, under C++03 rules, we cannot do that, and thus we</span></div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;<span class="comment">// have to resort to the preprocessor to &#39;instantiate&#39; &#39;templates&#39;,</span></div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;<span class="comment">// as handled above.</span></div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> timeType,timeType (*timeGetter)()&gt;</div>
+<div class="line"><a name="l01042"></a><span class="lineno"><a class="line" href="class_c_every_n_time_periods.html"> 1042</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a> {</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; timeType mPrevTrigger;</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; timeType mPeriod;</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; <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>() { reset(); mPeriod = 1; };</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a>(timeType period) { reset(); setPeriod(period); };</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; <span class="keywordtype">void</span> setPeriod( timeType period) { mPeriod = period; };</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; timeType getTime() { <span class="keywordflow">return</span> (timeType)(timeGetter()); };</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; timeType getPeriod() { <span class="keywordflow">return</span> mPeriod; };</div>
+<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; timeType getElapsed() { <span class="keywordflow">return</span> getTime() - mPrevTrigger; }</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; timeType getRemaining() { <span class="keywordflow">return</span> mPeriod - getElapsed(); }</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; timeType getLastTriggerTime() { <span class="keywordflow">return</span> mPrevTrigger; }</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; <span class="keywordtype">bool</span> ready() {</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; <span class="keywordtype">bool</span> isReady = (getElapsed() &gt;= mPeriod);</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; <span class="keywordflow">if</span>( isReady ) { reset(); }</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <span class="keywordflow">return</span> isReady;</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; }</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; <span class="keywordtype">void</span> reset() { mPrevTrigger = getTime(); };</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; <span class="keywordtype">void</span> trigger() { mPrevTrigger = getTime() - mPeriod; };</div>
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;</div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;<span class="preprocessor">#define CONCAT_HELPER( x, y ) x##y</span></div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="preprocessor">#define CONCAT_MACRO( x, y ) CONCAT_HELPER( x, y )</span></div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;<span class="preprocessor">#define EVERY_N_MILLIS(N) EVERY_N_MILLIS_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;<span class="preprocessor">#define EVERY_N_MILLIS_I(NAME,N) static CEveryNMillis NAME(N); if( NAME )</span></div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;<span class="preprocessor">#define EVERY_N_SECONDS(N) EVERY_N_SECONDS_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;<span class="preprocessor">#define EVERY_N_SECONDS_I(NAME,N) static CEveryNSeconds NAME(N); if( NAME )</span></div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;<span class="preprocessor">#define EVERY_N_BSECONDS(N) EVERY_N_BSECONDS_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;<span class="preprocessor">#define EVERY_N_BSECONDS_I(NAME,N) static CEveryNBSeconds NAME(N); if( NAME )</span></div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;<span class="preprocessor">#define EVERY_N_MINUTES(N) EVERY_N_MINUTES_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;<span class="preprocessor">#define EVERY_N_MINUTES_I(NAME,N) static CEveryNMinutes NAME(N); if( NAME )</span></div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;<span class="preprocessor">#define EVERY_N_HOURS(N) EVERY_N_HOURS_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;<span class="preprocessor">#define EVERY_N_HOURS_I(NAME,N) static CEveryNHours NAME(N); if( NAME )</span></div>
-<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;<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> <a href="lib8tion_8h_source.html#l00937">lib8tion.h:937</a></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> <a href="lib8tion_8h_source.html#l00480">lib8tion.h:480</a></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> <a href="lib8tion_8h_source.html#l00858">lib8tion.h:858</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga9585be88f27cab4c367399d8e91c8467"><div class="ttname"><a href="group__lib8tion.html#ga9585be88f27cab4c367399d8e91c8467">saccum78</a></div><div class="ttdeci">int16_t saccum78</div><div class="ttdoc">ANSI: signed short _Accum. 7 bits int, 8 bits fraction. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00344">lib8tion.h:344</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga381449070b2d6bfba356f87881ab28c0"><div class="ttname"><a href="group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0">ease8InOutQuad</a></div><div class="ttdeci">LIB8STATIC uint8_t ease8InOutQuad(uint8_t i)</div><div class="ttdoc">ease8InOutQuad: 8-bit quadratic ease-in / ease-out function Takes around 13 cycles on AVR ...</div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00562">lib8tion.h:562</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gae3ac7def25ef5ddea2da1a3bc0c00f44"><div class="ttname"><a href="group__lib8tion.html#gae3ac7def25ef5ddea2da1a3bc0c00f44">accum1616</a></div><div class="ttdeci">uint32_t accum1616</div><div class="ttdoc">ANSI: signed _Accum. 16 bits int, 16 bits fraction. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00345">lib8tion.h:345</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga223820399921e32ddf018a90223ff336"><div class="ttname"><a href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336">minutes16</a></div><div class="ttdeci">LIB8STATIC uint16_t minutes16()</div><div class="ttdoc">Return the current minutes since boot in a 16-bit value. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00927">lib8tion.h:927</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga62ed4425400bc4140902347dc54ffb72"><div class="ttname"><a href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a></div><div class="ttdeci">LIB8STATIC uint8_t lerp8by8(uint8_t a, uint8_t b, fract8 frac)</div><div class="ttdoc">linear interpolation between two unsigned 8-bit values, with 8-bit fraction </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00446">lib8tion.h:446</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gaaf46b9f719ef3bdb574f8e967af6dbb5"><div class="ttname"><a href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a></div><div class="ttdeci">uint16_t fract16</div><div class="ttdoc">ANSI: unsigned _Fract. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00332">lib8tion.h:332</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga7c02960d0f26e90054c7312e5f9a55b3"><div class="ttname"><a href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a></div><div class="ttdeci">LIB8STATIC uint16_t lerp16by16(uint16_t a, uint16_t b, fract16 frac)</div><div class="ttdoc">linear interpolation between two unsigned 16-bit values, with 16-bit fraction </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00463">lib8tion.h:463</a></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> <a href="lib8tion_8h_source.html#l00343">lib8tion.h:343</a></div></div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; <span class="keyword">operator</span> bool() { <span class="keywordflow">return</span> ready(); }</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;};</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint16_t,seconds16&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNSeconds</a>;</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint16_t,bseconds16&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNBSeconds</a>;</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint32_t,millis&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNMillis</a>;</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint16_t,minutes16&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNMinutes</a>;</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_every_n_time_periods.html">CEveryNTimePeriods&lt;uint8_t,hours8&gt;</a> <a class="code" href="class_c_every_n_time_periods.html">CEveryNHours</a>;</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;<span class="preprocessor">#endif</span></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;</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;<span class="preprocessor">#define CONCAT_HELPER( x, y ) x##y</span></div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;<span class="preprocessor">#define CONCAT_MACRO( x, y ) CONCAT_HELPER( x, y )</span></div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;<span class="preprocessor">#define EVERY_N_MILLIS(N) EVERY_N_MILLIS_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;<span class="preprocessor">#define EVERY_N_MILLIS_I(NAME,N) static CEveryNMillis NAME(N); if( NAME )</span></div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;<span class="preprocessor">#define EVERY_N_SECONDS(N) EVERY_N_SECONDS_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;<span class="preprocessor">#define EVERY_N_SECONDS_I(NAME,N) static CEveryNSeconds NAME(N); if( NAME )</span></div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;<span class="preprocessor">#define EVERY_N_BSECONDS(N) EVERY_N_BSECONDS_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;<span class="preprocessor">#define EVERY_N_BSECONDS_I(NAME,N) static CEveryNBSeconds NAME(N); if( NAME )</span></div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;<span class="preprocessor">#define EVERY_N_MINUTES(N) EVERY_N_MINUTES_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;<span class="preprocessor">#define EVERY_N_MINUTES_I(NAME,N) static CEveryNMinutes NAME(N); if( NAME )</span></div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;<span class="preprocessor">#define EVERY_N_HOURS(N) EVERY_N_HOURS_I(CONCAT_MACRO(PER, __COUNTER__ ),N)</span></div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;<span class="preprocessor">#define EVERY_N_HOURS_I(NAME,N) static CEveryNHours NAME(N); if( NAME )</span></div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;<span class="preprocessor">#define CEveryNMilliseconds CEveryNMillis</span></div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;<span class="preprocessor">#define EVERY_N_MILLISECONDS(N) EVERY_N_MILLIS(N)</span></div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</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="l01089"></a><span class="lineno"> 1089</span>&#160;</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;FASTLED_NAMESPACE_END</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;<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> <a href="lib8tion_8h_source.html#l00947">lib8tion.h:947</a></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> <a href="lib8tion_8h_source.html#l00490">lib8tion.h:490</a></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> <a href="lib8tion_8h_source.html#l00868">lib8tion.h:868</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga9585be88f27cab4c367399d8e91c8467"><div class="ttname"><a href="group__lib8tion.html#ga9585be88f27cab4c367399d8e91c8467">saccum78</a></div><div class="ttdeci">int16_t saccum78</div><div class="ttdoc">ANSI: signed short _Accum. 7 bits int, 8 bits fraction. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00354">lib8tion.h:354</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga381449070b2d6bfba356f87881ab28c0"><div class="ttname"><a href="group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0">ease8InOutQuad</a></div><div class="ttdeci">LIB8STATIC uint8_t ease8InOutQuad(uint8_t i)</div><div class="ttdoc">ease8InOutQuad: 8-bit quadratic ease-in / ease-out function Takes around 13 cycles on AVR ...</div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00572">lib8tion.h:572</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gae3ac7def25ef5ddea2da1a3bc0c00f44"><div class="ttname"><a href="group__lib8tion.html#gae3ac7def25ef5ddea2da1a3bc0c00f44">accum1616</a></div><div class="ttdeci">uint32_t accum1616</div><div class="ttdoc">ANSI: signed _Accum. 16 bits int, 16 bits fraction. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00355">lib8tion.h:355</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga223820399921e32ddf018a90223ff336"><div class="ttname"><a href="group__lib8tion.html#ga223820399921e32ddf018a90223ff336">minutes16</a></div><div class="ttdeci">LIB8STATIC uint16_t minutes16()</div><div class="ttdoc">Return the current minutes since boot in a 16-bit value. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00937">lib8tion.h:937</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga62ed4425400bc4140902347dc54ffb72"><div class="ttname"><a href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a></div><div class="ttdeci">LIB8STATIC uint8_t lerp8by8(uint8_t a, uint8_t b, fract8 frac)</div><div class="ttdoc">linear interpolation between two unsigned 8-bit values, with 8-bit fraction </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00456">lib8tion.h:456</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gaaf46b9f719ef3bdb574f8e967af6dbb5"><div class="ttname"><a href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a></div><div class="ttdeci">uint16_t fract16</div><div class="ttdoc">ANSI: unsigned _Fract. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00342">lib8tion.h:342</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga7c02960d0f26e90054c7312e5f9a55b3"><div class="ttname"><a href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a></div><div class="ttdeci">LIB8STATIC uint16_t lerp16by16(uint16_t a, uint16_t b, fract16 frac)</div><div class="ttdoc">linear interpolation between two unsigned 16-bit values, with 16-bit fraction </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00473">lib8tion.h:473</a></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> <a href="lib8tion_8h_source.html#l00353">lib8tion.h:353</a></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> <a href="scale8_8h_source.html#l00020">scale8.h:20</a></div></div>
-<div class="ttc" id="union_i_e_e_e754binary32__t_html"><div class="ttname"><a href="union_i_e_e_e754binary32__t.html">IEEE754binary32_t</a></div><div class="ttdoc">typedef for IEEE754 "binary32" float type internals </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00352">lib8tion.h:352</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga00cb5dc9e5b477a58669a3e40bc473c2"><div class="ttname"><a href="group__lib8tion.html#ga00cb5dc9e5b477a58669a3e40bc473c2">sfract15</a></div><div class="ttdeci">int16_t sfract15</div><div class="ttdoc">ANSI: signed _Fract. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00336">lib8tion.h:336</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gaa46e5de1c4c27833359e7a97a18c839b"><div class="ttname"><a href="group__lib8tion.html#gaa46e5de1c4c27833359e7a97a18c839b">beatsin16</a></div><div class="ttdeci">LIB8STATIC uint16_t beatsin16(accum88 beats_per_minute, uint16_t lowest=0, uint16_t highest=65535, uint32_t timebase=0, uint16_t phase_offset=0)</div><div class="ttdoc">beatsin16 generates a 16-bit sine wave at a given BPM, that oscillates within a given range...</div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00890">lib8tion.h:890</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gad5dca0e1248b916799dde6dc44ef369b"><div class="ttname"><a href="group__lib8tion.html#gad5dca0e1248b916799dde6dc44ef369b">q88</a></div><div class="ttdeci">q&lt; uint16_t, 8, 8 &gt; q88</div><div class="ttdoc">A 8.8 integer (8 bits integer, 8 bits fraction) </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00771">lib8tion.h:771</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gad4b09aba4e188e14d3e71d1c9f77f1a5"><div class="ttname"><a href="group__lib8tion.html#gad4b09aba4e188e14d3e71d1c9f77f1a5">lerp15by16</a></div><div class="ttdeci">LIB8STATIC int16_t lerp15by16(int16_t a, int16_t b, fract16 frac)</div><div class="ttdoc">linear interpolation between two signed 15-bit values, with 8-bit fraction </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00514">lib8tion.h:514</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga95e7a40d98aa0371e9adce9220d3a67c"><div class="ttname"><a href="group__lib8tion.html#ga95e7a40d98aa0371e9adce9220d3a67c">saccum114</a></div><div class="ttdeci">int32_t saccum114</div><div class="ttdoc">no direct ANSI counterpart. 1 bit int, 14 bits fraction </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00348">lib8tion.h:348</a></div></div>
+<div class="ttc" id="union_i_e_e_e754binary32__t_html"><div class="ttname"><a href="union_i_e_e_e754binary32__t.html">IEEE754binary32_t</a></div><div class="ttdoc">typedef for IEEE754 "binary32" float type internals </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00362">lib8tion.h:362</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga00cb5dc9e5b477a58669a3e40bc473c2"><div class="ttname"><a href="group__lib8tion.html#ga00cb5dc9e5b477a58669a3e40bc473c2">sfract15</a></div><div class="ttdeci">int16_t sfract15</div><div class="ttdoc">ANSI: signed _Fract. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00346">lib8tion.h:346</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gaa46e5de1c4c27833359e7a97a18c839b"><div class="ttname"><a href="group__lib8tion.html#gaa46e5de1c4c27833359e7a97a18c839b">beatsin16</a></div><div class="ttdeci">LIB8STATIC uint16_t beatsin16(accum88 beats_per_minute, uint16_t lowest=0, uint16_t highest=65535, uint32_t timebase=0, uint16_t phase_offset=0)</div><div class="ttdoc">beatsin16 generates a 16-bit sine wave at a given BPM, that oscillates within a given range...</div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00900">lib8tion.h:900</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gad5dca0e1248b916799dde6dc44ef369b"><div class="ttname"><a href="group__lib8tion.html#gad5dca0e1248b916799dde6dc44ef369b">q88</a></div><div class="ttdeci">q&lt; uint16_t, 8, 8 &gt; q88</div><div class="ttdoc">A 8.8 integer (8 bits integer, 8 bits fraction) </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00781">lib8tion.h:781</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gad4b09aba4e188e14d3e71d1c9f77f1a5"><div class="ttname"><a href="group__lib8tion.html#gad4b09aba4e188e14d3e71d1c9f77f1a5">lerp15by16</a></div><div class="ttdeci">LIB8STATIC int16_t lerp15by16(int16_t a, int16_t b, fract16 frac)</div><div class="ttdoc">linear interpolation between two signed 15-bit values, with 8-bit fraction </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00524">lib8tion.h:524</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga95e7a40d98aa0371e9adce9220d3a67c"><div class="ttname"><a href="group__lib8tion.html#ga95e7a40d98aa0371e9adce9220d3a67c">saccum114</a></div><div class="ttdeci">int32_t saccum114</div><div class="ttdoc">no direct ANSI counterpart. 1 bit int, 14 bits fraction </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00358">lib8tion.h:358</a></div></div>
<div class="ttc" id="group___scaling_html_gaf34fde0746c9c2e5ed44f9c437a2267e"><div class="ttname"><a href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a></div><div class="ttdeci">LIB8STATIC uint16_t scale16by8(uint16_t i, fract8 scale)</div><div class="ttdoc">scale a 16-bit unsigned value by an 8-bit value, considered as numerator of a fraction whose denomina...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00348">scale8.h:348</a></div></div>
<div class="ttc" id="group___scaling_html_ga1ff8ac00ad78e22acc7bb7445bfdb145"><div class="ttname"><a href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a></div><div class="ttdeci">LIB8STATIC uint16_t scale16(uint16_t i, fract16 scale)</div><div class="ttdoc">scale a 16-bit unsigned value by a 16-bit value, considered as numerator of a fraction whose denomina...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00384">scale8.h:384</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gaa2facbc0ec935e34c629aef43d6262c0"><div class="ttname"><a href="group__lib8tion.html#gaa2facbc0ec935e34c629aef43d6262c0">floatToSfract15</a></div><div class="ttdeci">LIB8STATIC sfract15 floatToSfract15(float f)</div><div class="ttdoc">conversion from IEEE754 float in the range (-1,1) to 16-bit fixed point. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00403">lib8tion.h:403</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gaa2abcee2fe76fafd7f3a2aeab03e3b69"><div class="ttname"><a href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69">seconds16</a></div><div class="ttdeci">LIB8STATIC uint16_t seconds16()</div><div class="ttdoc">Return the current seconds since boot in a 16-bit value. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00917">lib8tion.h:917</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga7bcc9ebf20b0dd74d9999d5a630d443f"><div class="ttname"><a href="group__lib8tion.html#ga7bcc9ebf20b0dd74d9999d5a630d443f">accum124</a></div><div class="ttdeci">uint16_t accum124</div><div class="ttdoc">no direct ANSI counterpart. 12 bits int, 4 bits fraction </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00347">lib8tion.h:347</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga52659d1994f2f21eb05080c97417e93b"><div class="ttname"><a href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b">bseconds16</a></div><div class="ttdeci">LIB8STATIC uint16_t bseconds16()</div><div class="ttdoc">bseconds16 returns the current time-since-boot in "binary seconds", which are actually 1024/1000 of a...</div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00981">lib8tion.h:981</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga0f02a1da674754f48c5f89c1610e118c"><div class="ttname"><a href="group__lib8tion.html#ga0f02a1da674754f48c5f89c1610e118c">q124</a></div><div class="ttdeci">q&lt; uint16_t, 12, 4 &gt; q124</div><div class="ttdoc">A 12.4 integer (12 bits integer, 4 bits fraction) </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00773">lib8tion.h:773</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga209d6cbdb109cc3139e7bb1e46c6228f"><div class="ttname"><a href="group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f">quadwave8</a></div><div class="ttdeci">LIB8STATIC uint8_t quadwave8(uint8_t in)</div><div class="ttdoc">quadwave8: quadratic waveform generator. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00694">lib8tion.h:694</a></div></div>
-<div class="ttc" id="class_c_every_n_time_periods_html"><div class="ttname"><a href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a></div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l01032">lib8tion.h:1032</a></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> <a href="lib8tion_8h_source.html#l00324">lib8tion.h:324</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga85082c3ed8843d32076222e82d72f80d"><div class="ttname"><a href="group__lib8tion.html#ga85082c3ed8843d32076222e82d72f80d">q44</a></div><div class="ttdeci">q&lt; uint8_t, 4, 4 &gt; q44</div><div class="ttdoc">A 4.4 integer (4 bits integer, 4 bits fraction) </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00767">lib8tion.h:767</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gaf917825ff26c8e1174c5b674a2f3c631"><div class="ttname"><a href="group__lib8tion.html#gaf917825ff26c8e1174c5b674a2f3c631">beatsin88</a></div><div class="ttdeci">LIB8STATIC uint16_t beatsin88(accum88 beats_per_minute_88, uint16_t lowest=0, uint16_t highest=65535, uint32_t timebase=0, uint16_t phase_offset=0)</div><div class="ttdoc">beatsin88 generates a 16-bit sine wave at a given BPM, that oscillates within a given range...</div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00877">lib8tion.h:877</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gaa2facbc0ec935e34c629aef43d6262c0"><div class="ttname"><a href="group__lib8tion.html#gaa2facbc0ec935e34c629aef43d6262c0">floatToSfract15</a></div><div class="ttdeci">LIB8STATIC sfract15 floatToSfract15(float f)</div><div class="ttdoc">conversion from IEEE754 float in the range (-1,1) to 16-bit fixed point. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00413">lib8tion.h:413</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gaa2abcee2fe76fafd7f3a2aeab03e3b69"><div class="ttname"><a href="group__lib8tion.html#gaa2abcee2fe76fafd7f3a2aeab03e3b69">seconds16</a></div><div class="ttdeci">LIB8STATIC uint16_t seconds16()</div><div class="ttdoc">Return the current seconds since boot in a 16-bit value. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00927">lib8tion.h:927</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga7bcc9ebf20b0dd74d9999d5a630d443f"><div class="ttname"><a href="group__lib8tion.html#ga7bcc9ebf20b0dd74d9999d5a630d443f">accum124</a></div><div class="ttdeci">uint16_t accum124</div><div class="ttdoc">no direct ANSI counterpart. 12 bits int, 4 bits fraction </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00357">lib8tion.h:357</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga52659d1994f2f21eb05080c97417e93b"><div class="ttname"><a href="group__lib8tion.html#ga52659d1994f2f21eb05080c97417e93b">bseconds16</a></div><div class="ttdeci">LIB8STATIC uint16_t bseconds16()</div><div class="ttdoc">bseconds16 returns the current time-since-boot in "binary seconds", which are actually 1024/1000 of a...</div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00991">lib8tion.h:991</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga0f02a1da674754f48c5f89c1610e118c"><div class="ttname"><a href="group__lib8tion.html#ga0f02a1da674754f48c5f89c1610e118c">q124</a></div><div class="ttdeci">q&lt; uint16_t, 12, 4 &gt; q124</div><div class="ttdoc">A 12.4 integer (12 bits integer, 4 bits fraction) </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00783">lib8tion.h:783</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga209d6cbdb109cc3139e7bb1e46c6228f"><div class="ttname"><a href="group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f">quadwave8</a></div><div class="ttdeci">LIB8STATIC uint8_t quadwave8(uint8_t in)</div><div class="ttdoc">quadwave8: quadratic waveform generator. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00704">lib8tion.h:704</a></div></div>
+<div class="ttc" id="class_c_every_n_time_periods_html"><div class="ttname"><a href="class_c_every_n_time_periods.html">CEveryNTimePeriods</a></div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l01042">lib8tion.h:1042</a></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> <a href="lib8tion_8h_source.html#l00334">lib8tion.h:334</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga85082c3ed8843d32076222e82d72f80d"><div class="ttname"><a href="group__lib8tion.html#ga85082c3ed8843d32076222e82d72f80d">q44</a></div><div class="ttdeci">q&lt; uint8_t, 4, 4 &gt; q44</div><div class="ttdoc">A 4.4 integer (4 bits integer, 4 bits fraction) </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00777">lib8tion.h:777</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gaf917825ff26c8e1174c5b674a2f3c631"><div class="ttname"><a href="group__lib8tion.html#gaf917825ff26c8e1174c5b674a2f3c631">beatsin88</a></div><div class="ttdeci">LIB8STATIC uint16_t beatsin88(accum88 beats_per_minute_88, uint16_t lowest=0, uint16_t highest=65535, uint32_t timebase=0, uint16_t phase_offset=0)</div><div class="ttdoc">beatsin88 generates a 16-bit sine wave at a given BPM, that oscillates within a given range...</div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00887">lib8tion.h:887</a></div></div>
<div class="ttc" id="group___scaling_html_ga39579fcf09743f15545fe0b831ca313c"><div class="ttname"><a href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC uint8_t scale8_LEAVING_R1_DIRTY(uint8_t i, fract8 scale)</div><div class="ttdoc">This version of scale8 does not clean up the R1 register on AVR If you are doing several &#39;scale8&#39;s in...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00121">scale8.h:121</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga06b04a0cf955ec107d49b76e0cb35225"><div class="ttname"><a href="group__lib8tion.html#ga06b04a0cf955ec107d49b76e0cb35225">cubicwave8</a></div><div class="ttdeci">LIB8STATIC uint8_t cubicwave8(uint8_t in)</div><div class="ttdoc">cubicwave8: cubic waveform generator. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00701">lib8tion.h:701</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga1b48fc520db5f40910caf79974992395"><div class="ttname"><a href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395">beat88</a></div><div class="ttdeci">LIB8STATIC uint16_t beat88(accum88 beats_per_minute_88, uint32_t timebase=0)</div><div class="ttdoc">with BPM specified in Q8.8 fixed-point format; e.g. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00844">lib8tion.h:844</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gaa041cdbb17f073dbd352fcae6962dc23"><div class="ttname"><a href="group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23">ease8InOutApprox</a></div><div class="ttdeci">LIB8STATIC fract8 ease8InOutApprox(fract8 i)</div><div class="ttdoc">ease8InOutApprox: fast, rough 8-bit ease-in/ease-out function shaped approximately like &#39;ease8InOutCu...</div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00608">lib8tion.h:608</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga7d6219a7247ab1923ed623e7ae0f34ae"><div class="ttname"><a href="group__lib8tion.html#ga7d6219a7247ab1923ed623e7ae0f34ae">sfract7</a></div><div class="ttdeci">int8_t sfract7</div><div class="ttdoc">ANSI: signed short _Fract. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00328">lib8tion.h:328</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga3fa6d71702477e71d7c0dd864eb1d568"><div class="ttname"><a href="group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568">ease8InOutCubic</a></div><div class="ttdeci">LIB8STATIC fract8 ease8InOutCubic(fract8 i)</div><div class="ttdoc">ease8InOutCubic: 8-bit cubic ease-in / ease-out function Takes around 18 cycles on AVR ...</div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00579">lib8tion.h:579</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga12014943214a72eec31433d9682d4ebe"><div class="ttname"><a href="group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe">beat8</a></div><div class="ttdeci">LIB8STATIC uint8_t beat8(accum88 beats_per_minute, uint32_t timebase=0)</div><div class="ttdoc">beat8 generates an 8-bit &#39;sawtooth&#39; wave at a given BPM </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00866">lib8tion.h:866</a></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> <a href="fastled__delay_8h_source.html#l00085">fastled_delay.h:85</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gae9e011ff745ade1164ae77b0ef62bfac"><div class="ttname"><a href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac">triwave8</a></div><div class="ttdeci">LIB8STATIC uint8_t triwave8(uint8_t in)</div><div class="ttdoc">triwave8: triangle (sawtooth) wave generator. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00673">lib8tion.h:673</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gaecd7cbfc2640407cabf75afcc7d9ddf4"><div class="ttname"><a href="group__lib8tion.html#gaecd7cbfc2640407cabf75afcc7d9ddf4">beatsin8</a></div><div class="ttdeci">LIB8STATIC uint8_t beatsin8(accum88 beats_per_minute, uint8_t lowest=0, uint8_t highest=255, uint32_t timebase=0, uint8_t phase_offset=0)</div><div class="ttdoc">beatsin8 generates an 8-bit sine wave at a given BPM, that oscillates within a given range...</div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00903">lib8tion.h:903</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga17ae8fcfd9c485bb1120d908f836637a"><div class="ttname"><a href="group__lib8tion.html#ga17ae8fcfd9c485bb1120d908f836637a">squarewave8</a></div><div class="ttdeci">LIB8STATIC uint8_t squarewave8(uint8_t in, uint8_t pulsewidth=128)</div><div class="ttdoc">squarewave8: square wave generator. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00730">lib8tion.h:730</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gaacea0eaea98a065dfa08bb1c147c52a1"><div class="ttname"><a href="group__lib8tion.html#gaacea0eaea98a065dfa08bb1c147c52a1">lerp15by8</a></div><div class="ttdeci">LIB8STATIC int16_t lerp15by8(int16_t a, int16_t b, fract8 frac)</div><div class="ttdoc">linear interpolation between two signed 15-bit values, with 8-bit fraction </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00497">lib8tion.h:497</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gafea4166e233d92817eada7203021089a"><div class="ttname"><a href="group__lib8tion.html#gafea4166e233d92817eada7203021089a">q62</a></div><div class="ttdeci">q&lt; uint8_t, 6, 2 &gt; q62</div><div class="ttdoc">A 6.2 integer (6 bits integer, 2 bits fraction) </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00769">lib8tion.h:769</a></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> <a href="lib8tion_8h_source.html#l00743">lib8tion.h:743</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gaf65357c7aeca9778e5a2f80a6bac2b5d"><div class="ttname"><a href="group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d">map8</a></div><div class="ttdeci">LIB8STATIC uint8_t map8(uint8_t in, uint8_t rangeStart, uint8_t rangeEnd)</div><div class="ttdoc">map8: map from one full-range 8-bit value into a narrower range of 8-bit values, possibly a range of ...</div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00546">lib8tion.h:546</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gad2dad84f67c8a4cc6d4c92e2c7d3e89f"><div class="ttname"><a href="group__lib8tion.html#gad2dad84f67c8a4cc6d4c92e2c7d3e89f">saccum1516</a></div><div class="ttdeci">int32_t saccum1516</div><div class="ttdoc">ANSI: signed _Accum. 15 bits int, 16 bits fraction. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00346">lib8tion.h:346</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga5f95d6e55b4986bd88f662528cef717e"><div class="ttname"><a href="group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e">div1024_32_16</a></div><div class="ttdeci">LIB8STATIC uint16_t div1024_32_16(uint32_t in32)</div><div class="ttdoc">Helper routine to divide a 32-bit value by 1024, returning only the low 16 bits. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00956">lib8tion.h:956</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gab947c1150e3b9056cb91685a14270173"><div class="ttname"><a href="group__lib8tion.html#gab947c1150e3b9056cb91685a14270173">sfract15ToFloat</a></div><div class="ttdeci">LIB8STATIC float sfract15ToFloat(sfract15 y)</div><div class="ttdoc">sfract15ToFloat: conversion from sfract15 fixed point to IEEE754 32-bit float. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00394">lib8tion.h:394</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga06b04a0cf955ec107d49b76e0cb35225"><div class="ttname"><a href="group__lib8tion.html#ga06b04a0cf955ec107d49b76e0cb35225">cubicwave8</a></div><div class="ttdeci">LIB8STATIC uint8_t cubicwave8(uint8_t in)</div><div class="ttdoc">cubicwave8: cubic waveform generator. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00711">lib8tion.h:711</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
+<div class="ttc" id="group__lib8tion_html_ga1b48fc520db5f40910caf79974992395"><div class="ttname"><a href="group__lib8tion.html#ga1b48fc520db5f40910caf79974992395">beat88</a></div><div class="ttdeci">LIB8STATIC uint16_t beat88(accum88 beats_per_minute_88, uint32_t timebase=0)</div><div class="ttdoc">with BPM specified in Q8.8 fixed-point format; e.g. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00854">lib8tion.h:854</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gaa041cdbb17f073dbd352fcae6962dc23"><div class="ttname"><a href="group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23">ease8InOutApprox</a></div><div class="ttdeci">LIB8STATIC fract8 ease8InOutApprox(fract8 i)</div><div class="ttdoc">ease8InOutApprox: fast, rough 8-bit ease-in/ease-out function shaped approximately like &#39;ease8InOutCu...</div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00618">lib8tion.h:618</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga7d6219a7247ab1923ed623e7ae0f34ae"><div class="ttname"><a href="group__lib8tion.html#ga7d6219a7247ab1923ed623e7ae0f34ae">sfract7</a></div><div class="ttdeci">int8_t sfract7</div><div class="ttdoc">ANSI: signed short _Fract. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00338">lib8tion.h:338</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga3fa6d71702477e71d7c0dd864eb1d568"><div class="ttname"><a href="group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568">ease8InOutCubic</a></div><div class="ttdeci">LIB8STATIC fract8 ease8InOutCubic(fract8 i)</div><div class="ttdoc">ease8InOutCubic: 8-bit cubic ease-in / ease-out function Takes around 18 cycles on AVR ...</div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00589">lib8tion.h:589</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga12014943214a72eec31433d9682d4ebe"><div class="ttname"><a href="group__lib8tion.html#ga12014943214a72eec31433d9682d4ebe">beat8</a></div><div class="ttdeci">LIB8STATIC uint8_t beat8(accum88 beats_per_minute, uint32_t timebase=0)</div><div class="ttdoc">beat8 generates an 8-bit &#39;sawtooth&#39; wave at a given BPM </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00876">lib8tion.h:876</a></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> <a href="fastled__delay_8h_source.html#l00092">fastled_delay.h:92</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gae9e011ff745ade1164ae77b0ef62bfac"><div class="ttname"><a href="group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac">triwave8</a></div><div class="ttdeci">LIB8STATIC uint8_t triwave8(uint8_t in)</div><div class="ttdoc">triwave8: triangle (sawtooth) wave generator. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00683">lib8tion.h:683</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gaecd7cbfc2640407cabf75afcc7d9ddf4"><div class="ttname"><a href="group__lib8tion.html#gaecd7cbfc2640407cabf75afcc7d9ddf4">beatsin8</a></div><div class="ttdeci">LIB8STATIC uint8_t beatsin8(accum88 beats_per_minute, uint8_t lowest=0, uint8_t highest=255, uint32_t timebase=0, uint8_t phase_offset=0)</div><div class="ttdoc">beatsin8 generates an 8-bit sine wave at a given BPM, that oscillates within a given range...</div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00913">lib8tion.h:913</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga17ae8fcfd9c485bb1120d908f836637a"><div class="ttname"><a href="group__lib8tion.html#ga17ae8fcfd9c485bb1120d908f836637a">squarewave8</a></div><div class="ttdeci">LIB8STATIC uint8_t squarewave8(uint8_t in, uint8_t pulsewidth=128)</div><div class="ttdoc">squarewave8: square wave generator. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00740">lib8tion.h:740</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gaacea0eaea98a065dfa08bb1c147c52a1"><div class="ttname"><a href="group__lib8tion.html#gaacea0eaea98a065dfa08bb1c147c52a1">lerp15by8</a></div><div class="ttdeci">LIB8STATIC int16_t lerp15by8(int16_t a, int16_t b, fract8 frac)</div><div class="ttdoc">linear interpolation between two signed 15-bit values, with 8-bit fraction </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00507">lib8tion.h:507</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gafea4166e233d92817eada7203021089a"><div class="ttname"><a href="group__lib8tion.html#gafea4166e233d92817eada7203021089a">q62</a></div><div class="ttdeci">q&lt; uint8_t, 6, 2 &gt; q62</div><div class="ttdoc">A 6.2 integer (6 bits integer, 2 bits fraction) </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00779">lib8tion.h:779</a></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> <a href="lib8tion_8h_source.html#l00753">lib8tion.h:753</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gaf65357c7aeca9778e5a2f80a6bac2b5d"><div class="ttname"><a href="group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d">map8</a></div><div class="ttdeci">LIB8STATIC uint8_t map8(uint8_t in, uint8_t rangeStart, uint8_t rangeEnd)</div><div class="ttdoc">map8: map from one full-range 8-bit value into a narrower range of 8-bit values, possibly a range of ...</div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00556">lib8tion.h:556</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gad2dad84f67c8a4cc6d4c92e2c7d3e89f"><div class="ttname"><a href="group__lib8tion.html#gad2dad84f67c8a4cc6d4c92e2c7d3e89f">saccum1516</a></div><div class="ttdeci">int32_t saccum1516</div><div class="ttdoc">ANSI: signed _Accum. 15 bits int, 16 bits fraction. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00356">lib8tion.h:356</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga5f95d6e55b4986bd88f662528cef717e"><div class="ttname"><a href="group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e">div1024_32_16</a></div><div class="ttdeci">LIB8STATIC uint16_t div1024_32_16(uint32_t in32)</div><div class="ttdoc">Helper routine to divide a 32-bit value by 1024, returning only the low 16 bits. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00966">lib8tion.h:966</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gab947c1150e3b9056cb91685a14270173"><div class="ttname"><a href="group__lib8tion.html#gab947c1150e3b9056cb91685a14270173">sfract15ToFloat</a></div><div class="ttdeci">LIB8STATIC float sfract15ToFloat(sfract15 y)</div><div class="ttdoc">sfract15ToFloat: conversion from sfract15 fixed point to IEEE754 32-bit float. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00404">lib8tion.h:404</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>lib8tion.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/math8_8h_source.html b/docs/3.1/math8_8h_source.html
index 3611a604..baa159cc 100644
--- a/docs/3.1/math8_8h_source.html
+++ b/docs/3.1/math8_8h_source.html
@@ -249,179 +249,227 @@ $(document).ready(function(){initNavTree('math8_8h_source.html','');});
<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;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
-<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="group___math.html#ga30558a835c484b418165909118e702b1"> 171</a></span>&#160;LIB8STATIC int8_t <a class="code" href="group___math.html#ga30558a835c484b418165909118e702b1">avg7</a>( int8_t i, int8_t j)</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="preprocessor">#if AVG7_C == 1</span></div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> ((i + j) &gt;&gt; 1) + (i &amp; 0x1);</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor">#elif AVG7_AVRASM == 1</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="stringliteral">&quot;asr %1 \n\t&quot;</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="stringliteral">&quot;asr %0 \n\t&quot;</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="stringliteral">&quot;adc %0, %1 \n\t&quot;</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; : <span class="stringliteral">&quot;+a&quot;</span> (i)</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; : <span class="stringliteral">&quot;a&quot;</span> (j) );</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> i;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;<span class="preprocessor">#error &quot;No implementation for avg7 available.&quot;</span></div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="preprocessor">#endif</span></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;</div>
-<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="group___math.html#gaa5e80daec10cc13bf1eca8b125ee0e88"> 196</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___math.html#gaa5e80daec10cc13bf1eca8b125ee0e88">mod8</a>( uint8_t a, uint8_t m)</div>
+<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="group___math.html#gac09b1bbea319b879bded54d129eb5358"> 169</a></span>&#160;LIB8STATIC uint16_t <a class="code" href="group___math.html#gac09b1bbea319b879bded54d129eb5358">avg16</a>( uint16_t i, uint16_t j)</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;<span class="preprocessor">#if AVG16_C == 1</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> (uint32_t)((uint32_t)(i) + (uint32_t)(j)) &gt;&gt; 1;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="preprocessor">#elif AVG16_AVRASM == 1</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">/* First, add jLo (heh) to iLo, 9th bit overflows into C flag */</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="stringliteral">&quot;add %A[i], %A[j] \n\t&quot;</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">/* Now, add C + jHi to iHi, 17th bit overflows into C flag */</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="stringliteral">&quot;adc %B[i], %B[j] \n\t&quot;</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">/* Divide iHi by two, moving C flag into high 16th bit, old 9th bit now in C */</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="stringliteral">&quot;ror %B[i] \n\t&quot;</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">/* Divide iLo by two, moving C flag into high 8th bit */</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="stringliteral">&quot;ror %A[i] \n\t&quot;</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; : [i] <span class="stringliteral">&quot;+a&quot;</span> (i)</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; : [j] <span class="stringliteral">&quot;a&quot;</span> (j) );</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> i;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="preprocessor">#error &quot;No implementation for avg16 available.&quot;</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor">#endif</span></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;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="group___math.html#ga30558a835c484b418165909118e702b1"> 196</a></span>&#160;LIB8STATIC int8_t <a class="code" href="group___math.html#ga30558a835c484b418165909118e702b1">avg7</a>( int8_t i, int8_t j)</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;{</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span> (</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="stringliteral">&quot;L_%=: sub %[a],%[m] \n\t&quot;</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="stringliteral">&quot; brcc L_%= \n\t&quot;</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="stringliteral">&quot; add %[a],%[m] \n\t&quot;</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; : [a] <span class="stringliteral">&quot;+r&quot;</span> (a)</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; : [m] <span class="stringliteral">&quot;r&quot;</span> (m)</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="preprocessor">#else</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">while</span>( a &gt;= m) a -= m;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> a;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;}</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="group___math.html#ga2bcd51c47538dbc933999382e272a7a7"> 223</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___math.html#ga2bcd51c47538dbc933999382e272a7a7">addmod8</a>( uint8_t a, uint8_t b, uint8_t m)</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;<span class="preprocessor">#if defined(__AVR__)</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span> (</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="stringliteral">&quot; add %[a],%[b] \n\t&quot;</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="stringliteral">&quot;L_%=: sub %[a],%[m] \n\t&quot;</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="stringliteral">&quot; brcc L_%= \n\t&quot;</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="stringliteral">&quot; add %[a],%[m] \n\t&quot;</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; : [a] <span class="stringliteral">&quot;+r&quot;</span> (a)</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; : [b] <span class="stringliteral">&quot;r&quot;</span> (b), [m] <span class="stringliteral">&quot;r&quot;</span> (m)</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">#else</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; a += b;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">while</span>( a &gt;= m) a -= m;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="preprocessor">#if AVG7_C == 1</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> ((i + j) &gt;&gt; 1) + (i &amp; 0x1);</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="preprocessor">#elif AVG7_AVRASM == 1</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="stringliteral">&quot;asr %1 \n\t&quot;</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="stringliteral">&quot;asr %0 \n\t&quot;</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="stringliteral">&quot;adc %0, %1 \n\t&quot;</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; : <span class="stringliteral">&quot;+a&quot;</span> (i)</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; : <span class="stringliteral">&quot;a&quot;</span> (j) );</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> i;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="preprocessor">#error &quot;No implementation for avg7 available.&quot;</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;}</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="group___math.html#ga5873ff4e986c61d72cb291709190ed25"> 217</a></span>&#160;LIB8STATIC int16_t <a class="code" href="group___math.html#ga5873ff4e986c61d72cb291709190ed25">avg15</a>( int16_t i, int16_t j)</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;{</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="preprocessor">#if AVG15_C == 1</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> ((int32_t)((int32_t)(i) + (int32_t)(j)) &gt;&gt; 1) + (i &amp; 0x1);</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="preprocessor">#elif AVG15_AVRASM == 1</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">/* first divide j by 2, throwing away lowest bit */</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="stringliteral">&quot;asr %B[j] \n\t&quot;</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="stringliteral">&quot;ror %A[j] \n\t&quot;</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="comment">/* now divide i by 2, with lowest bit going into C */</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="stringliteral">&quot;asr %B[i] \n\t&quot;</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="stringliteral">&quot;ror %A[i] \n\t&quot;</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="comment">/* add j + C to i */</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="stringliteral">&quot;adc %A[i], %A[j] \n\t&quot;</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="stringliteral">&quot;adc %B[i], %B[j] \n\t&quot;</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; : [i] <span class="stringliteral">&quot;+a&quot;</span> (i)</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; : [j] <span class="stringliteral">&quot;a&quot;</span> (j) );</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> i;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="preprocessor">#error &quot;No implementation for avg15 available.&quot;</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> a;</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</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;</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f"> 242</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f">mul8</a>( uint8_t i, uint8_t j)</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;<span class="preprocessor">#if MUL8_C == 1</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> ((<span class="keywordtype">int</span>)i * (<span class="keywordtype">int</span>)(j) ) &amp; 0xFF;</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor">#elif MUL8_AVRASM == 1</span></div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="comment">/* Multiply 8-bit i * 8-bit j, giving 16-bit r1,r0 */</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="stringliteral">&quot;mul %0, %1 \n\t&quot;</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="comment">/* Extract the LOW 8-bits (r0) */</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="stringliteral">&quot;mov %0, r0 \n\t&quot;</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="comment">/* Restore r1 to &quot;0&quot;; it&#39;s expected to always be that */</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="stringliteral">&quot;clr __zero_reg__ \n\t&quot;</span></div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; : <span class="stringliteral">&quot;+a&quot;</span> (i)</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; : <span class="stringliteral">&quot;a&quot;</span> (j)</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</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; <span class="keywordflow">return</span> i;</div>
+<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="group___math.html#gaa5e80daec10cc13bf1eca8b125ee0e88"> 249</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___math.html#gaa5e80daec10cc13bf1eca8b125ee0e88">mod8</a>( uint8_t a, uint8_t m)</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;{</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span> (</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="stringliteral">&quot;L_%=: sub %[a],%[m] \n\t&quot;</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="stringliteral">&quot; brcc L_%= \n\t&quot;</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="stringliteral">&quot; add %[a],%[m] \n\t&quot;</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; : [a] <span class="stringliteral">&quot;+r&quot;</span> (a)</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; : [m] <span class="stringliteral">&quot;r&quot;</span> (m)</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="preprocessor">#else</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor">#error &quot;No implementation for mul8 available.&quot;</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">while</span>( a &gt;= m) a -= m;</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;}</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span> a;</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="l00267"></a><span class="lineno"><a class="line" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4"> 267</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( uint8_t i, uint8_t j)</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">#if QMUL8_C == 1</span></div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordtype">int</span> p = ((int)i * (<span class="keywordtype">int</span>)(j) );</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span>( p &gt; 255) p = 255;</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">return</span> p;</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="preprocessor">#elif QMUL8_AVRASM == 1</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="comment">/* Multiply 8-bit i * 8-bit j, giving 16-bit r1,r0 */</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="stringliteral">&quot; mul %0, %1 \n\t&quot;</span></div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="comment">/* If high byte of result is zero, all is well. */</span></div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="stringliteral">&quot; tst r1 \n\t&quot;</span></div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="stringliteral">&quot; breq Lnospill_%= \n\t&quot;</span></div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="comment">/* If high byte of result &gt; 0, saturate low byte to 0xFF */</span></div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="stringliteral">&quot; ldi %0,0xFF \n\t&quot;</span></div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="stringliteral">&quot; rjmp Ldone_%= \n\t&quot;</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="stringliteral">&quot;Lnospill_%=: \n\t&quot;</span></div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">/* Extract the LOW 8-bits (r0) */</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="stringliteral">&quot; mov %0, r0 \n\t&quot;</span></div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="stringliteral">&quot;Ldone_%=: \n\t&quot;</span></div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="comment">/* Restore r1 to &quot;0&quot;; it&#39;s expected to always be that */</span></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="stringliteral">&quot; clr __zero_reg__ \n\t&quot;</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; : <span class="stringliteral">&quot;+a&quot;</span> (i)</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; : <span class="stringliteral">&quot;a&quot;</span> (j)</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</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">return</span> i;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor">#error &quot;No implementation for qmul8 available.&quot;</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;}</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div>
-<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="group___math.html#ga4bf8996c4a130e96521495d4a1395a01"> 301</a></span>&#160;LIB8STATIC int8_t <a class="code" href="group___math.html#ga4bf8996c4a130e96521495d4a1395a01">abs8</a>( int8_t i)</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">#if ABS8_C == 1</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">if</span>( i &lt; 0) i = -i;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">return</span> i;</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor">#elif ABS8_AVRASM == 1</span></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;</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="comment">/* First, check the high bit, and prepare to skip if it&#39;s clear */</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="stringliteral">&quot;sbrc %0, 7 \n&quot;</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="comment">/* Negate the value */</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="stringliteral">&quot;neg %0 \n&quot;</span></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="stringliteral">&quot;+r&quot;</span> (i) : <span class="stringliteral">&quot;r&quot;</span> (i) );</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> i;</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor">#error &quot;No implementation for abs8 available.&quot;</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor">#endif</span></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="l00326"></a><span class="lineno"><a class="line" href="group___math.html#ga66ecef97faa5f9b92c49766651c5afe9"> 326</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___math.html#ga66ecef97faa5f9b92c49766651c5afe9">sqrt16</a>(uint16_t x)</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; <span class="keywordflow">if</span>( x &lt;= 1) {</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">return</span> x;</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; uint8_t low = 1; <span class="comment">// lower bound</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; uint8_t hi, mid;</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">if</span>( x &gt; 7904) {</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; hi = 255;</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; hi = (x &gt;&gt; 5) + 8; <span class="comment">// initial estimate for upper bound</span></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="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">do</span> {</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; mid = (low + hi) &gt;&gt; 1;</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">if</span> ((uint16_t)(mid * mid) &gt; x) {</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; hi = mid - 1;</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">if</span>( mid == 255) {</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">return</span> 255;</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; low = mid + 1;</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; }</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; } <span class="keywordflow">while</span> (hi &gt;= low);</div>
+<div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="group___math.html#ga2bcd51c47538dbc933999382e272a7a7"> 276</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___math.html#ga2bcd51c47538dbc933999382e272a7a7">addmod8</a>( uint8_t a, uint8_t b, uint8_t m)</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="preprocessor">#if defined(__AVR__)</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span> (</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="stringliteral">&quot; add %[a],%[b] \n\t&quot;</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="stringliteral">&quot;L_%=: sub %[a],%[m] \n\t&quot;</span></div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="stringliteral">&quot; brcc L_%= \n\t&quot;</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="stringliteral">&quot; add %[a],%[m] \n\t&quot;</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; : [a] <span class="stringliteral">&quot;+r&quot;</span> (a)</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; : [b] <span class="stringliteral">&quot;r&quot;</span> (b), [m] <span class="stringliteral">&quot;r&quot;</span> (m)</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;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; a += b;</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">while</span>( a &gt;= m) a -= m;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">return</span> a;</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="l00295"></a><span class="lineno"><a class="line" href="group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f"> 295</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f">mul8</a>( uint8_t i, uint8_t j)</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="preprocessor">#if MUL8_C == 1</span></div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span> ((<span class="keywordtype">int</span>)i * (<span class="keywordtype">int</span>)(j) ) &amp; 0xFF;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor">#elif MUL8_AVRASM == 1</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="comment">/* Multiply 8-bit i * 8-bit j, giving 16-bit r1,r0 */</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="stringliteral">&quot;mul %0, %1 \n\t&quot;</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="comment">/* Extract the LOW 8-bits (r0) */</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="stringliteral">&quot;mov %0, r0 \n\t&quot;</span></div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="comment">/* Restore r1 to &quot;0&quot;; it&#39;s expected to always be that */</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="stringliteral">&quot;clr __zero_reg__ \n\t&quot;</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; : <span class="stringliteral">&quot;+a&quot;</span> (i)</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; : <span class="stringliteral">&quot;a&quot;</span> (j)</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span>);</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="keywordflow">return</span> i;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor">#error &quot;No implementation for mul8 available.&quot;</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor">#endif</span></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;</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div>
+<div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4"> 320</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( uint8_t i, uint8_t j)</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">#if QMUL8_C == 1</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordtype">int</span> p = ((int)i * (<span class="keywordtype">int</span>)(j) );</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">if</span>( p &gt; 255) p = 255;</div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">return</span> p;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor">#elif QMUL8_AVRASM == 1</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="comment">/* Multiply 8-bit i * 8-bit j, giving 16-bit r1,r0 */</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="stringliteral">&quot; mul %0, %1 \n\t&quot;</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="comment">/* If high byte of result is zero, all is well. */</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="stringliteral">&quot; tst r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="stringliteral">&quot; breq Lnospill_%= \n\t&quot;</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="comment">/* If high byte of result &gt; 0, saturate low byte to 0xFF */</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="stringliteral">&quot; ldi %0,0xFF \n\t&quot;</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="stringliteral">&quot; rjmp Ldone_%= \n\t&quot;</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="stringliteral">&quot;Lnospill_%=: \n\t&quot;</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="comment">/* Extract the LOW 8-bits (r0) */</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="stringliteral">&quot; mov %0, r0 \n\t&quot;</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="stringliteral">&quot;Ldone_%=: \n\t&quot;</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="comment">/* Restore r1 to &quot;0&quot;; it&#39;s expected to always be that */</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="stringliteral">&quot; clr __zero_reg__ \n\t&quot;</span></div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; : <span class="stringliteral">&quot;+a&quot;</span> (i)</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; : <span class="stringliteral">&quot;a&quot;</span> (j)</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span>);</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="keywordflow">return</span> i;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor">#error &quot;No implementation for qmul8 available.&quot;</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;}</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</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="keywordflow">return</span> low - 1;</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"> 357</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> <a href="math8_8h_source.html#l00267">math8.h:267</a></div></div>
-<div class="ttc" id="group___math_html_ga4bf8996c4a130e96521495d4a1395a01"><div class="ttname"><a href="group___math.html#ga4bf8996c4a130e96521495d4a1395a01">abs8</a></div><div class="ttdeci">LIB8STATIC int8_t abs8(int8_t i)</div><div class="ttdoc">take abs() of a signed 8-bit uint8_t </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00301">math8.h:301</a></div></div>
+<div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="group___math.html#ga4bf8996c4a130e96521495d4a1395a01"> 354</a></span>&#160;LIB8STATIC int8_t <a class="code" href="group___math.html#ga4bf8996c4a130e96521495d4a1395a01">abs8</a>( int8_t i)</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;<span class="preprocessor">#if ABS8_C == 1</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">if</span>( i &lt; 0) i = -i;</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">return</span> i;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor">#elif ABS8_AVRASM == 1</span></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">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="comment">/* First, check the high bit, and prepare to skip if it&#39;s clear */</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="stringliteral">&quot;sbrc %0, 7 \n&quot;</span></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">/* Negate the value */</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="stringliteral">&quot;neg %0 \n&quot;</span></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="stringliteral">&quot;+r&quot;</span> (i) : <span class="stringliteral">&quot;r&quot;</span> (i) );</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">return</span> i;</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor">#error &quot;No implementation for abs8 available.&quot;</span></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;}</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="group___math.html#ga66ecef97faa5f9b92c49766651c5afe9"> 379</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___math.html#ga66ecef97faa5f9b92c49766651c5afe9">sqrt16</a>(uint16_t x)</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;{</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">if</span>( x &lt;= 1) {</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">return</span> x;</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;</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; uint8_t low = 1; <span class="comment">// lower bound</span></div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; uint8_t hi, mid;</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="keywordflow">if</span>( x &gt; 7904) {</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; hi = 255;</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; hi = (x &gt;&gt; 5) + 8; <span class="comment">// initial estimate for upper bound</span></div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; mid = (low + hi) &gt;&gt; 1;</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">if</span> ((uint16_t)(mid * mid) &gt; x) {</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; hi = mid - 1;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">if</span>( mid == 255) {</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span> 255;</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; low = mid + 1;</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="keywordflow">while</span> (hi &gt;= low);</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">return</span> low - 1;</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="l00410"></a><span class="lineno"> 410</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> <a href="math8_8h_source.html#l00320">math8.h:320</a></div></div>
+<div class="ttc" id="group___math_html_ga4bf8996c4a130e96521495d4a1395a01"><div class="ttname"><a href="group___math.html#ga4bf8996c4a130e96521495d4a1395a01">abs8</a></div><div class="ttdeci">LIB8STATIC int8_t abs8(int8_t i)</div><div class="ttdoc">take abs() of a signed 8-bit uint8_t </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00354">math8.h:354</a></div></div>
+<div class="ttc" id="group___math_html_ga5873ff4e986c61d72cb291709190ed25"><div class="ttname"><a href="group___math.html#ga5873ff4e986c61d72cb291709190ed25">avg15</a></div><div class="ttdeci">LIB8STATIC int16_t avg15(int16_t i, int16_t j)</div><div class="ttdoc">Calculate an integer average of two signed 15-bit integers (int16_t) If the first argument is even...</div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00217">math8.h:217</a></div></div>
<div class="ttc" id="group___math_html_ga6bfedf0473d4c3705e8feeb6a25b9ea5"><div class="ttname"><a href="group___math.html#ga6bfedf0473d4c3705e8feeb6a25b9ea5">avg8</a></div><div class="ttdeci">LIB8STATIC uint8_t avg8(uint8_t i, uint8_t j)</div><div class="ttdoc">Calculate an integer average of two unsigned 8-bit integer values (uint8_t). </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00148">math8.h:148</a></div></div>
+<div class="ttc" id="group___math_html_gac09b1bbea319b879bded54d129eb5358"><div class="ttname"><a href="group___math.html#gac09b1bbea319b879bded54d129eb5358">avg16</a></div><div class="ttdeci">LIB8STATIC uint16_t avg16(uint16_t i, uint16_t j)</div><div class="ttdoc">Calculate an integer average of two unsigned 16-bit integer values (uint16_t). </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00169">math8.h:169</a></div></div>
<div class="ttc" id="group___math_html_gaaaa16f47aca46653d51793b1af177587"><div class="ttname"><a href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a></div><div class="ttdeci">LIB8STATIC uint8_t qsub8(uint8_t i, uint8_t j)</div><div class="ttdoc">subtract one byte from another, saturating at 0x00 </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00086">math8.h:86</a></div></div>
-<div class="ttc" id="group___math_html_ga2bcd51c47538dbc933999382e272a7a7"><div class="ttname"><a href="group___math.html#ga2bcd51c47538dbc933999382e272a7a7">addmod8</a></div><div class="ttdeci">LIB8STATIC uint8_t addmod8(uint8_t a, uint8_t b, uint8_t m)</div><div class="ttdoc">Add two numbers, and calculate the modulo of the sum and a third number, M. </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00223">math8.h:223</a></div></div>
+<div class="ttc" id="group___math_html_ga2bcd51c47538dbc933999382e272a7a7"><div class="ttname"><a href="group___math.html#ga2bcd51c47538dbc933999382e272a7a7">addmod8</a></div><div class="ttdeci">LIB8STATIC uint8_t addmod8(uint8_t a, uint8_t b, uint8_t m)</div><div class="ttdoc">Add two numbers, and calculate the modulo of the sum and a third number, M. </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00276">math8.h:276</a></div></div>
<div class="ttc" id="group___math_html_ga9f1f93145ca1955562b7f50f5db96ac1"><div class="ttname"><a href="group___math.html#ga9f1f93145ca1955562b7f50f5db96ac1">add8</a></div><div class="ttdeci">LIB8STATIC uint8_t add8(uint8_t i, uint8_t j)</div><div class="ttdoc">add one byte to another, with one byte result </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00115">math8.h:115</a></div></div>
-<div class="ttc" id="group___math_html_ga30558a835c484b418165909118e702b1"><div class="ttname"><a href="group___math.html#ga30558a835c484b418165909118e702b1">avg7</a></div><div class="ttdeci">LIB8STATIC int8_t avg7(int8_t i, int8_t j)</div><div class="ttdoc">Calculate an integer average of two signed 7-bit integers (int8_t) If the first argument is even...</div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00171">math8.h:171</a></div></div>
+<div class="ttc" id="group___math_html_ga30558a835c484b418165909118e702b1"><div class="ttname"><a href="group___math.html#ga30558a835c484b418165909118e702b1">avg7</a></div><div class="ttdeci">LIB8STATIC int8_t avg7(int8_t i, int8_t j)</div><div class="ttdoc">Calculate an integer average of two signed 7-bit integers (int8_t) If the first argument is even...</div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00196">math8.h:196</a></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> <a href="math8_8h_source.html#l00021">math8.h:21</a></div></div>
-<div class="ttc" id="group___math_html_gaa5e80daec10cc13bf1eca8b125ee0e88"><div class="ttname"><a href="group___math.html#gaa5e80daec10cc13bf1eca8b125ee0e88">mod8</a></div><div class="ttdeci">LIB8STATIC uint8_t mod8(uint8_t a, uint8_t m)</div><div class="ttdoc">Calculate the remainder of one unsigned 8-bit value divided by anoter, aka A % M. ...</div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00196">math8.h:196</a></div></div>
+<div class="ttc" id="group___math_html_gaa5e80daec10cc13bf1eca8b125ee0e88"><div class="ttname"><a href="group___math.html#gaa5e80daec10cc13bf1eca8b125ee0e88">mod8</a></div><div class="ttdeci">LIB8STATIC uint8_t mod8(uint8_t a, uint8_t m)</div><div class="ttdoc">Calculate the remainder of one unsigned 8-bit value divided by anoter, aka A % M. ...</div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00249">math8.h:249</a></div></div>
<div class="ttc" id="group___math_html_ga0c40c15ab5af36ddabded161941f2091"><div class="ttname"><a href="group___math.html#ga0c40c15ab5af36ddabded161941f2091">sub8</a></div><div class="ttdeci">LIB8STATIC uint8_t sub8(uint8_t i, uint8_t j)</div><div class="ttdoc">subtract one byte from another, 8-bit result </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00131">math8.h:131</a></div></div>
-<div class="ttc" id="group___math_html_ga10181a03cf8b8428fc524aa78e7fbf7f"><div class="ttname"><a href="group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f">mul8</a></div><div class="ttdeci">LIB8STATIC uint8_t mul8(uint8_t i, uint8_t j)</div><div class="ttdoc">8x8 bit multiplication, with 8 bit result </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00242">math8.h:242</a></div></div>
-<div class="ttc" id="group___math_html_ga66ecef97faa5f9b92c49766651c5afe9"><div class="ttname"><a href="group___math.html#ga66ecef97faa5f9b92c49766651c5afe9">sqrt16</a></div><div class="ttdeci">LIB8STATIC uint8_t sqrt16(uint16_t x)</div><div class="ttdoc">square root for 16-bit integers About three times faster and five times smaller than Arduino&#39;s genera...</div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00326">math8.h:326</a></div></div>
+<div class="ttc" id="group___math_html_ga10181a03cf8b8428fc524aa78e7fbf7f"><div class="ttname"><a href="group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f">mul8</a></div><div class="ttdeci">LIB8STATIC uint8_t mul8(uint8_t i, uint8_t j)</div><div class="ttdoc">8x8 bit multiplication, with 8 bit result </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00295">math8.h:295</a></div></div>
+<div class="ttc" id="group___math_html_ga66ecef97faa5f9b92c49766651c5afe9"><div class="ttname"><a href="group___math.html#ga66ecef97faa5f9b92c49766651c5afe9">sqrt16</a></div><div class="ttdeci">LIB8STATIC uint8_t sqrt16(uint16_t x)</div><div class="ttdoc">square root for 16-bit integers About three times faster and five times smaller than Arduino&#39;s genera...</div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00379">math8.h:379</a></div></div>
<div class="ttc" id="group___math_html_gadf60ccff727f52078aecdd5873b6f0bc"><div class="ttname"><a href="group___math.html#gadf60ccff727f52078aecdd5873b6f0bc">qadd7</a></div><div class="ttdeci">LIB8STATIC int8_t qadd7(int8_t i, int8_t j)</div><div class="ttdoc">Add one byte to another, saturating at 0x7F. </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00054">math8.h:54</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
@@ -429,7 +477,7 @@ $(document).ready(function(){initNavTree('math8_8h_source.html','');});
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_fbb9e787cf27434374136273d35a9c17.html">lib8tion</a></li><li class="navelem"><b>math8.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 f43094f2..0f4d2e33 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
@@ -133,7 +133,7 @@ $(document).ready(function(){initNavTree('md__p_o_r_t_i_n_g.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 85311eeb..adcab326 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
@@ -104,7 +104,7 @@ $(document).ready(function(){initNavTree('md__r_e_a_d_m_e.html','');});
</div><!--header-->
<div class="contents">
<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>
+<p>IMPORTANT NOTE: For AVR based systems, avr-gcc 4.8.x is supported and tested. This means Arduino 1.6.5 and later.</p>
<h1>FastLED 3.1 </h1>
<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>
@@ -166,7 +166,7 @@ void loop() {
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/md_release_notes.html b/docs/3.1/md_release_notes.html
index 0c53f1e8..e663f667 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.1.1pre</title>
+<title>FastLED: FastLED3.1.2pre</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>
@@ -100,10 +100,14 @@ $(document).ready(function(){initNavTree('md_release_notes.html','');});
<div class="header">
<div class="headertitle">
-<div class="title">FastLED3.1.1pre </div> </div>
+<div class="title">FastLED3.1.2pre </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><ul>
+<li>Add <a class="el" href="class_s_k6822.html">SK6822</a> timings</li>
+</ul>
+<h1>FastLED3.1.1 </h1>
+<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>
@@ -261,7 +265,7 @@ $(document).ready(function(){initNavTree('md_release_notes.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/modules.html b/docs/3.1/modules.html
index 5531f3db..1a2f6bd8 100644
--- a/docs/3.1/modules.html
+++ b/docs/3.1/modules.html
@@ -126,7 +126,7 @@ $(document).ready(function(){initNavTree('modules.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/navtreedata.js b/docs/3.1/navtreedata.js
index 3376a839..6bff6eb4 100644
--- a/docs/3.1/navtreedata.js
+++ b/docs/3.1/navtreedata.js
@@ -3,7 +3,7 @@ var NAVTREE =
[ "FastLED", "index.html", [
[ "PORTING", "md__p_o_r_t_i_n_g.html", null ],
[ "README", "md__r_e_a_d_m_e.html", null ],
- [ "FastLED3.1.1pre", "md_release_notes.html", null ],
+ [ "FastLED3.1.2pre", "md_release_notes.html", null ],
[ "Todo List", "todo.html", null ],
[ "Modules", "modules.html", "modules" ],
[ "Classes", null, [
@@ -32,10 +32,10 @@ var NAVTREE =
var NAVTREEINDEX =
[
"_fast_l_e_d_8cpp_source.html",
-"class_c_r_g_b_palette16.html#a4ee47d64732750b038bec307f56b491d",
-"fastled__config_8h.html",
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a3b48c8058f1b90d745a5c94bdb38fc23",
-"struct_c_r_g_b.html#a8bb881dd011552b412af2845562b0df3"
+"class_c_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e",
+"class_t_m1829_controller800_khz.html",
+"group___noise.html#gaa521ccca6038d7b5e881fe2e8f35d3bc",
+"md_release_notes.html"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/docs/3.1/navtreeindex0.js b/docs/3.1/navtreeindex0.js
index fc63ac14..f297930e 100644
--- a/docs/3.1/navtreeindex0.js
+++ b/docs/3.1/navtreeindex0.js
@@ -2,32 +2,32 @@ var NAVTREEINDEX0 =
{
"_fast_l_e_d_8cpp_source.html":[6,0,11],
"_fast_l_e_d_8h.html":[6,0,12],
-"_fast_l_e_d_8h.html#a69ae16731cd4ff30f81793033758d59c":[6,0,12,28],
-"_fast_l_e_d_8h.html#a69ae16731cd4ff30f81793033758d59ca10d9d52d47d8577b3e576c5f807d8086":[6,0,12,28,0],
-"_fast_l_e_d_8h.html#a69ae16731cd4ff30f81793033758d59ca761b5cf7f03fedac25ca74bee937516d":[6,0,12,28,1],
-"_fast_l_e_d_8h.html#a7077a6a69b1339a4c04f4bb9ecc0ad3f":[6,0,12,29],
-"_fast_l_e_d_8h.html#aa8a26176bfad65ad4447edd2ca99145e":[6,0,12,24],
-"_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926":[6,0,12,27],
-"_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926a2b3d5f8c6b150204ef98ad5e69b41e1b":[6,0,12,27,4],
-"_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926a4e945233515bf2b534cc1734dd8eaf18":[6,0,12,27,2],
-"_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926a9ad8203d90d0a1d1825fde65c84304ef":[6,0,12,27,1],
-"_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926aa38c183e00af9030ff455d2ae0e1d5c3":[6,0,12,27,6],
-"_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926ab58884059d69c6f6fdb432cc53b5db48":[6,0,12,27,5],
-"_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926ab8a3967574a80ed1fe3b6f862f1d695e":[6,0,12,27,0],
-"_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926ae3310d0ea78bcb438c431e44f4da34f7":[6,0,12,27,3],
-"_fast_l_e_d_8h.html#ac8839f06bbcecd0dc5bde0a94510a657":[6,0,12,26],
-"_fast_l_e_d_8h.html#ac8839f06bbcecd0dc5bde0a94510a657aad6c1549c0bf19cdf4ca4838d761987e":[6,0,12,26,0],
-"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cc":[6,0,12,25],
-"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca133d6dc3225ca299a492d7017e723927":[6,0,12,25,6],
-"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca1d2ab9b2bb2985fb877371be83773f7b":[6,0,12,25,8],
-"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca2c5f26c9459dd07fa1694cd23bc2963f":[6,0,12,25,5],
-"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca3dfc7701edddb060c7b1c166160e2e84":[6,0,12,25,0],
-"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca63e38749845ba1f5ca0ac78eba46e768":[6,0,12,25,4],
-"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca7340313aebbca22bd20a85a4255cb521":[6,0,12,25,7],
-"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca761693d3688d51ca70f4d03180c707bd":[6,0,12,25,3],
-"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7ccabd56ee06e4f5bb956bedee08d951f5b0":[6,0,12,25,2],
-"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7ccad5e8729d5e8682741a2b4d806501d7c3":[6,0,12,25,9],
-"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7ccafbcade0e99741c06ac2cacd685715ec6":[6,0,12,25,1],
+"_fast_l_e_d_8h.html#a69ae16731cd4ff30f81793033758d59c":[6,0,12,29],
+"_fast_l_e_d_8h.html#a69ae16731cd4ff30f81793033758d59ca10d9d52d47d8577b3e576c5f807d8086":[6,0,12,29,0],
+"_fast_l_e_d_8h.html#a69ae16731cd4ff30f81793033758d59ca761b5cf7f03fedac25ca74bee937516d":[6,0,12,29,1],
+"_fast_l_e_d_8h.html#a7077a6a69b1339a4c04f4bb9ecc0ad3f":[6,0,12,30],
+"_fast_l_e_d_8h.html#aa8a26176bfad65ad4447edd2ca99145e":[6,0,12,25],
+"_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926":[6,0,12,28],
+"_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926a2b3d5f8c6b150204ef98ad5e69b41e1b":[6,0,12,28,4],
+"_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926a4e945233515bf2b534cc1734dd8eaf18":[6,0,12,28,2],
+"_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926a9ad8203d90d0a1d1825fde65c84304ef":[6,0,12,28,1],
+"_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926aa38c183e00af9030ff455d2ae0e1d5c3":[6,0,12,28,6],
+"_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926ab58884059d69c6f6fdb432cc53b5db48":[6,0,12,28,5],
+"_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926ab8a3967574a80ed1fe3b6f862f1d695e":[6,0,12,28,0],
+"_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926ae3310d0ea78bcb438c431e44f4da34f7":[6,0,12,28,3],
+"_fast_l_e_d_8h.html#ac8839f06bbcecd0dc5bde0a94510a657":[6,0,12,27],
+"_fast_l_e_d_8h.html#ac8839f06bbcecd0dc5bde0a94510a657aad6c1549c0bf19cdf4ca4838d761987e":[6,0,12,27,0],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cc":[6,0,12,26],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca133d6dc3225ca299a492d7017e723927":[6,0,12,26,6],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca1d2ab9b2bb2985fb877371be83773f7b":[6,0,12,26,8],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca2c5f26c9459dd07fa1694cd23bc2963f":[6,0,12,26,5],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca3dfc7701edddb060c7b1c166160e2e84":[6,0,12,26,0],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca63e38749845ba1f5ca0ac78eba46e768":[6,0,12,26,4],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca7340313aebbca22bd20a85a4255cb521":[6,0,12,26,7],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7cca761693d3688d51ca70f4d03180c707bd":[6,0,12,26,3],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7ccabd56ee06e4f5bb956bedee08d951f5b0":[6,0,12,26,2],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7ccad5e8729d5e8682741a2b4d806501d7c3":[6,0,12,26,9],
+"_fast_l_e_d_8h.html#adcf22542128a12d8c3c304777422c7ccafbcade0e99741c06ac2cacd685715ec6":[6,0,12,26,1],
"_fast_l_e_d_8h_source.html":[6,0,12],
"annotated.html":[5,0],
"bitswap_8h.html":[6,0,1],
@@ -35,12 +35,9 @@ var NAVTREEINDEX0 =
"chipsets_8h.html":[6,0,2],
"chipsets_8h_source.html":[6,0,2],
"class_a_p_a102_controller.html":[4,2,4],
-"class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428":[4,2,4,5],
-"class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0":[4,2,4,2],
-"class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332":[4,2,4,3],
-"class_a_p_a102_controller.html#a245148d2621eb73999ab673852c49332":[4,2,4,4],
+"class_a_p_a102_controller.html#a0e875981e076baf9cd1c5e7599b83cd0":[4,2,4,1],
"class_a_p_a102_controller.html#a42aad3d0528451c80d66ef1e1c1b692d":[4,2,4,0],
-"class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb":[4,2,4,1],
+"class_a_p_a102_controller.html#a8ec545837b1622df6c4805f853eae3c1":[4,2,4,2],
"class_a_p_a104.html":[5,0,1],
"class_a_v_r_software_s_p_i_output.html":[5,0,2],
"class_a_v_r_software_s_p_i_output.html#a0a896113d6f2ee898b962076f1343f31":[5,0,2,2],
@@ -127,127 +124,130 @@ var NAVTREEINDEX0 =
"class_c_h_s_v_palette256.html#ad9fec4dcc878ff77a0891fd15422e2f7":[4,4,2,13],
"class_c_h_s_v_palette256.html#ae264ff69df414008b68087f2604767f0":[4,4,2,4],
"class_c_h_s_v_palette256.html#af0b600ebace4995abe6ed6a7d1dd372c":[4,4,2,15],
-"class_c_l_e_d_controller.html":[5,0,9],
-"class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92":[5,0,9,22],
-"class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565":[5,0,9,10],
-"class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517":[5,0,9,14],
-"class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c":[5,0,9,4],
-"class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4":[5,0,9,17],
-"class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b":[5,0,9,23],
-"class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a":[5,0,9,11],
-"class_c_l_e_d_controller.html#a3ae4f61fc85ef4609d65c14ca51434c4":[5,0,9,19],
-"class_c_l_e_d_controller.html#a3beb4aff15617bc781c1e49178dd9975":[5,0,9,6],
-"class_c_l_e_d_controller.html#a4672f8f1e93d5df90685cb62c4ebbe0e":[5,0,9,30],
-"class_c_l_e_d_controller.html#a4a55f6d5b215dc14f9473faea938b4c8":[5,0,9,21],
-"class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4":[5,0,9,24],
-"class_c_l_e_d_controller.html#a4cd7290071572a9844b79b66239cc40b":[5,0,9,28],
-"class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037":[5,0,9,15],
-"class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399":[5,0,9,9],
-"class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e":[5,0,9,26],
-"class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7":[5,0,9,5],
-"class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883":[5,0,9,16],
-"class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9":[5,0,9,13],
-"class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52":[5,0,9,1],
-"class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32":[5,0,9,0],
-"class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8":[5,0,9,12],
-"class_c_l_e_d_controller.html#a9af9dd5c08991667e4062396eec5bd8a":[5,0,9,31],
-"class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076":[5,0,9,25],
-"class_c_l_e_d_controller.html#aaad2e8eeedcb36298e0c45d11bcf14b5":[5,0,9,33],
-"class_c_l_e_d_controller.html#ab4d0f0ed5a214b675c9a03aecd7b0df8":[5,0,9,32],
-"class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb":[5,0,9,20],
-"class_c_l_e_d_controller.html#accc1d3beec363be81b003f84f4838d62":[5,0,9,27],
-"class_c_l_e_d_controller.html#adb7c56ce6c3f11f392613c3b9bf8c727":[5,0,9,29],
-"class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f":[5,0,9,18],
-"class_c_l_e_d_controller.html#adfa6601c84fefd733904b32ac98b6dae":[5,0,9,2],
-"class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb":[5,0,9,3],
-"class_c_l_e_d_controller.html#af877a15a5ec452780fbd1d359b8a9913":[5,0,9,8],
-"class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d":[5,0,9,7],
-"class_c_min_wait.html":[5,0,10],
-"class_c_min_wait.html#a7fa84dd28c4bb431a848937e4ab5bb6e":[5,0,10,0],
-"class_c_min_wait.html#a9e1941c949810958262ff98f7b591b96":[5,0,10,1],
-"class_c_min_wait.html#ace3c87d9015aa537d3ee2972657afad3":[5,0,10,2],
-"class_c_pixel_view.html":[5,0,11],
-"class_c_pixel_view.html#a051455d30c4390abd81bbb23182d22a8":[5,0,11,4],
-"class_c_pixel_view.html#a07c386c65903b4a192a053e03003dff9":[5,0,11,16],
-"class_c_pixel_view.html#a0acfbbdeb7c17986ddc806e9df64461c":[5,0,11,56],
-"class_c_pixel_view.html#a0d3f84118cabfbd0e8b9e8556d6fdc37":[5,0,11,38],
-"class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231":[5,0,11,14],
-"class_c_pixel_view.html#a1200796b444865d101184f0c07e1915c":[5,0,11,48],
-"class_c_pixel_view.html#a13b5daab212774a2957473acea4e843b":[5,0,11,52],
-"class_c_pixel_view.html#a1425907efc3ca64130e90095f6a254b9":[5,0,11,43],
-"class_c_pixel_view.html#a1778ed3e4aaa07e64577128429de4c10":[5,0,11,39],
-"class_c_pixel_view.html#a18f14f953dce5153659f30a1fc47ab2d":[5,0,11,36],
-"class_c_pixel_view.html#a195deb4034393308c9573454ac5e56ae":[5,0,11,31],
-"class_c_pixel_view.html#a1f1a98d480cc62635f24e62c68c14f65":[5,0,11,49],
-"class_c_pixel_view.html#a1f846afc40872f1419c0dd2d21876657":[5,0,11,22],
-"class_c_pixel_view.html#a21679cd86fce5882d1b04aa78f2dd4ab":[5,0,11,63],
-"class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82":[5,0,11,32],
-"class_c_pixel_view.html#a2e5576eb742184423d130b4caebd830c":[5,0,11,57],
-"class_c_pixel_view.html#a3043e411e2b48b294574e0fbe848991c":[5,0,11,41],
-"class_c_pixel_view.html#a384417cfef1e38aa24fde4673fd8eaac":[5,0,11,58],
-"class_c_pixel_view.html#a3e1de5cd54fc18974df4203cd8c32ef7":[5,0,11,26],
-"class_c_pixel_view.html#a3e7c2cf9a8dc476f9a92850d69b7c499":[5,0,11,51],
-"class_c_pixel_view.html#a4861b6938f1cb9f8f885a9f3af13b8a9":[5,0,11,15],
-"class_c_pixel_view.html#a48b70c6f162cb898a38431bb63655f79":[5,0,11,33],
-"class_c_pixel_view.html#a5492e41e8b06dc599ab81b465c4236ed":[5,0,11,12],
-"class_c_pixel_view.html#a5d071ffd7163af53043114bee77c6b3a":[5,0,11,23],
-"class_c_pixel_view.html#a6b52e13f6eacefc7dde9f6348db438d0":[5,0,11,61],
-"class_c_pixel_view.html#a766ca6eefddccf307e67b89c3b05be12":[5,0,11,17],
-"class_c_pixel_view.html#a7830b1011e8f6f13298c3500eba2707a":[5,0,11,44],
-"class_c_pixel_view.html#a7ad3ae5a948047704c58458b13bdb53c":[5,0,11,35],
-"class_c_pixel_view.html#a87abde19e76dfb9ae42971aa3384a50d":[5,0,11,6],
-"class_c_pixel_view.html#a916fb5b1bae3606ffba540361f5c2407":[5,0,11,2],
-"class_c_pixel_view.html#a9814a52e2de74315d073a7de9e20a0f7":[5,0,11,9],
-"class_c_pixel_view.html#a9abaa0edf2f8ab01159dbe308e37bdec":[5,0,11,11],
-"class_c_pixel_view.html#a9c5df901bdcf85c8e4e8218d42978ff1":[5,0,11,18],
-"class_c_pixel_view.html#aa2b10d01a183235fcf62e50049c49dd4":[5,0,11,40],
-"class_c_pixel_view.html#aa33cb777acc46071c85cbe42cbfc9270":[5,0,11,10],
-"class_c_pixel_view.html#aa35b7eb6c9b8d2510df02af26db03f29":[5,0,11,50],
-"class_c_pixel_view.html#aae385e3ddfb6fd1f605d5d18db9606e6":[5,0,11,20],
-"class_c_pixel_view.html#aae5aea2ccc4e128ad9a79ae45dae0a64":[5,0,11,25],
-"class_c_pixel_view.html#ab2c455babfa76ad84096b34c79527908":[5,0,11,24],
-"class_c_pixel_view.html#ab31623e9f9036c6571cee8054b696621":[5,0,11,46],
-"class_c_pixel_view.html#ab4b8ebbe978cd7227ab98bf43ae641e2":[5,0,11,28],
-"class_c_pixel_view.html#ab540fb31ba2b6857d17e6da0c3dd1645":[5,0,11,27],
-"class_c_pixel_view.html#aba3ece62dbd9f340a0cd78a4c69ab116":[5,0,11,54],
-"class_c_pixel_view.html#abfb38ddcb524aa8b7a385c590823aaf6":[5,0,11,42],
-"class_c_pixel_view.html#abfcab2974a78f644d27f2ba39bcd40f1":[5,0,11,62],
-"class_c_pixel_view.html#aca5b4326ae86d90d2e8248f855623e82":[5,0,11,13],
-"class_c_pixel_view.html#ad1b0bbeb416db7f4dd1139ea23491330":[5,0,11,30],
-"class_c_pixel_view.html#ad44698b19b0ad875e066c30583777772":[5,0,11,1],
-"class_c_pixel_view.html#ad6e7a725732d4fff0dc4fa5c29015127":[5,0,11,45],
-"class_c_pixel_view.html#ad737aca28b069acb1bb350e635be83f4":[5,0,11,55],
-"class_c_pixel_view.html#ada24d4d93b849bc31aec124f682b836a":[5,0,11,5],
-"class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1":[5,0,11,29],
-"class_c_pixel_view.html#ae634ad882007c4c1aca645550d3ba78a":[5,0,11,8],
-"class_c_pixel_view.html#aec83b9f23486e0efd0729e3e5be87f81":[5,0,11,37],
-"class_c_pixel_view.html#aef542dfd9d18f1c62bd8dadaa88a76ae":[5,0,11,47],
-"class_c_pixel_view.html#af29113dfb08119789150ca6fdc12fb66":[5,0,11,21],
-"class_c_pixel_view.html#af2f7d2d33f63d7aaf024458d0e710320":[5,0,11,34],
-"class_c_pixel_view.html#af3254e14aaccb1e8b38272ddeb6d8013":[5,0,11,7],
-"class_c_pixel_view.html#af98febdccd4f7f18afbfbb0abfb4413d":[5,0,11,53],
-"class_c_pixel_view.html#afb57aeebbd762d7ead044a12fd51f639":[5,0,11,60],
-"class_c_pixel_view.html#afd0bd291a8398d56b6705fb02d822b6f":[5,0,11,19],
-"class_c_pixel_view.html#afdb7d7da8fc3a387d5df31e69da1cc71":[5,0,11,64],
-"class_c_pixel_view.html#afe22ceed228286280b4c6f7692db105a":[5,0,11,3],
-"class_c_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e":[5,0,11,59],
-"class_c_pixel_view_1_1pixelset__iterator__base.html":[5,0,11,0],
-"class_c_pixel_view_1_1pixelset__iterator__base.html#a02f8ee8e470fdafea245379a73bda4f9":[5,0,11,0,3],
-"class_c_pixel_view_1_1pixelset__iterator__base.html#a044aac4c6b782e2a0d8a5eb2b29b28d2":[5,0,11,0,5],
-"class_c_pixel_view_1_1pixelset__iterator__base.html#a17467c8100e9eb58e42964cdda73e7e9":[5,0,11,0,0],
-"class_c_pixel_view_1_1pixelset__iterator__base.html#a5a778ee698d972a0a06a762f129dacee":[5,0,11,0,4],
-"class_c_pixel_view_1_1pixelset__iterator__base.html#a6e5199e3cfde35795e39eee3d714a42b":[5,0,11,0,1],
-"class_c_pixel_view_1_1pixelset__iterator__base.html#ab026ec7ef21fe8341977b4e6b5ba20be":[5,0,11,0,2],
-"class_c_r_g_b_array.html":[5,0,13],
-"class_c_r_g_b_array.html#aadbaee57645fbf61fd87503cc7bce856":[5,0,13,0],
-"class_c_r_g_b_palette16.html":[4,4,3],
-"class_c_r_g_b_palette16.html#a033c8a5975d58a1dd4d90ce443a345df":[4,4,3,5],
-"class_c_r_g_b_palette16.html#a07ac22c5cd5b97ef006f38000dcd5052":[4,4,3,10],
-"class_c_r_g_b_palette16.html#a0c345a47c6f4beab2eb1c9e91264e6e3":[4,4,3,21],
-"class_c_r_g_b_palette16.html#a0e7240b7d3dc5c79deceae9ff1d44f42":[4,4,3,26],
-"class_c_r_g_b_palette16.html#a0ffc31b89df3b738f4cdb04012a0c7c5":[4,4,3,4],
-"class_c_r_g_b_palette16.html#a1e2866fd76857f99b6174a0bfa794328":[4,4,3,19],
-"class_c_r_g_b_palette16.html#a280eb7af64c9a6ae4ef14029240f81b2":[4,4,3,25],
-"class_c_r_g_b_palette16.html#a341bf249fdb557428918e6c95a5b7d0a":[4,4,3,8],
-"class_c_r_g_b_palette16.html#a46542c191b01f0799a1326316fcaac49":[4,4,3,1]
+"class_c_h_s_v_palette32.html":[4,4,4],
+"class_c_h_s_v_palette32.html#a09365a89bffeb4ab00c5cde45319dee6":[4,4,4,16],
+"class_c_h_s_v_palette32.html#a193cf8f611b63e58a19623d5be1bc196":[4,4,4,17],
+"class_c_h_s_v_palette32.html#a1b7b783a6b1e121e267b32b0f15f3b6c":[4,4,4,9],
+"class_c_h_s_v_palette32.html#a29b75de144e6a1c27402f68e516cea2e":[4,4,4,8],
+"class_c_h_s_v_palette32.html#a2b4646fa3d2db98618c47b9bd0c48faf":[4,4,4,14],
+"class_c_h_s_v_palette32.html#a446e0d09273adfcd1a75bfb773c67f42":[4,4,4,11],
+"class_c_h_s_v_palette32.html#a53a5e568393408408423a55b739d7b28":[4,4,4,3],
+"class_c_h_s_v_palette32.html#a59f7d285b6803e084c0d92f92839d562":[4,4,4,10],
+"class_c_h_s_v_palette32.html#a7bc32b739dea0f7dfbbe7706c24e13e4":[4,4,4,2],
+"class_c_h_s_v_palette32.html#a7c50a7c321a9faad6335600e6bd82ca5":[4,4,4,1],
+"class_c_h_s_v_palette32.html#a8191b89cecfbda5562cdfcf911fe234a":[4,4,4,5],
+"class_c_h_s_v_palette32.html#a905b808c315fc0408f55d28ef3d4f328":[4,4,4,15],
+"class_c_h_s_v_palette32.html#a95f25513af0f6878687713f4417be38d":[4,4,4,12],
+"class_c_h_s_v_palette32.html#ab6f8516fa7adacd1eefccb3a371edd9b":[4,4,4,0],
+"class_c_h_s_v_palette32.html#abf88a954775700c432a1e1fbfaa5dec7":[4,4,4,6],
+"class_c_h_s_v_palette32.html#aca812404b1b407150305352722fd5769":[4,4,4,7],
+"class_c_h_s_v_palette32.html#ad7c3d89fbde710d5fb21c04969ee7e24":[4,4,4,13],
+"class_c_h_s_v_palette32.html#afef05a5d4701172ad4d3e6ad1c5fe94c":[4,4,4,4],
+"class_c_l_e_d_controller.html":[5,0,10],
+"class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92":[5,0,10,20],
+"class_c_l_e_d_controller.html#a06cfb05ad6e0f7982328928051f3f565":[5,0,10,10],
+"class_c_l_e_d_controller.html#a0703d15ea35deaf94eed59ae27bc3517":[5,0,10,14],
+"class_c_l_e_d_controller.html#a168c661bb9b4a5dfc797b69d3900b26c":[5,0,10,4],
+"class_c_l_e_d_controller.html#a1e6d35be39f9f67aacdb4709ea914ab4":[5,0,10,17],
+"class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b":[5,0,10,21],
+"class_c_l_e_d_controller.html#a278a429964bec69b3c91486665e61c0a":[5,0,10,11],
+"class_c_l_e_d_controller.html#a3beb4aff15617bc781c1e49178dd9975":[5,0,10,6],
+"class_c_l_e_d_controller.html#a4672f8f1e93d5df90685cb62c4ebbe0e":[5,0,10,28],
+"class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4":[5,0,10,22],
+"class_c_l_e_d_controller.html#a4cd7290071572a9844b79b66239cc40b":[5,0,10,26],
+"class_c_l_e_d_controller.html#a5b08378b29f92c5def65175ec5334037":[5,0,10,15],
+"class_c_l_e_d_controller.html#a5e86c45c89ebfb7b21f9045790302399":[5,0,10,9],
+"class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e":[5,0,10,24],
+"class_c_l_e_d_controller.html#a676f705adf93898739a405b85150a3e7":[5,0,10,5],
+"class_c_l_e_d_controller.html#a69ac4a882bdc4a813ae957ddedb5a883":[5,0,10,16],
+"class_c_l_e_d_controller.html#a74c43977660742e8185fd666e5d66bf9":[5,0,10,13],
+"class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52":[5,0,10,1],
+"class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32":[5,0,10,0],
+"class_c_l_e_d_controller.html#a9620d0a629a6a3294c71f5f8dbfe91b8":[5,0,10,12],
+"class_c_l_e_d_controller.html#a9af9dd5c08991667e4062396eec5bd8a":[5,0,10,29],
+"class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076":[5,0,10,23],
+"class_c_l_e_d_controller.html#aaad2e8eeedcb36298e0c45d11bcf14b5":[5,0,10,31],
+"class_c_l_e_d_controller.html#ab4d0f0ed5a214b675c9a03aecd7b0df8":[5,0,10,30],
+"class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2":[5,0,10,2],
+"class_c_l_e_d_controller.html#abe990b9a65f5bff1f391cc5c28752abb":[5,0,10,19],
+"class_c_l_e_d_controller.html#accc1d3beec363be81b003f84f4838d62":[5,0,10,25],
+"class_c_l_e_d_controller.html#adb7c56ce6c3f11f392613c3b9bf8c727":[5,0,10,27],
+"class_c_l_e_d_controller.html#add284627121ffab140e083e84fadc37f":[5,0,10,18],
+"class_c_l_e_d_controller.html#af6173cca91ee446766cc15102990d7bb":[5,0,10,3],
+"class_c_l_e_d_controller.html#af877a15a5ec452780fbd1d359b8a9913":[5,0,10,8],
+"class_c_l_e_d_controller.html#afc94e9d029d7e59f56a4ab845f3de32d":[5,0,10,7],
+"class_c_min_wait.html":[5,0,11],
+"class_c_min_wait.html#a7fa84dd28c4bb431a848937e4ab5bb6e":[5,0,11,0],
+"class_c_min_wait.html#a9e1941c949810958262ff98f7b591b96":[5,0,11,1],
+"class_c_min_wait.html#ace3c87d9015aa537d3ee2972657afad3":[5,0,11,2],
+"class_c_pixel_l_e_d_controller.html":[5,0,12],
+"class_c_pixel_l_e_d_controller.html#a1ab7248c894ba95c3a71665f5bed2a17":[5,0,12,3],
+"class_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c":[5,0,12,1],
+"class_c_pixel_l_e_d_controller.html#aa4ac3acb222dd0d31563b0ac32fa2f50":[5,0,12,0],
+"class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016":[5,0,12,2],
+"class_c_pixel_view.html":[5,0,13],
+"class_c_pixel_view.html#a051455d30c4390abd81bbb23182d22a8":[5,0,13,4],
+"class_c_pixel_view.html#a07c386c65903b4a192a053e03003dff9":[5,0,13,17],
+"class_c_pixel_view.html#a0acfbbdeb7c17986ddc806e9df64461c":[5,0,13,57],
+"class_c_pixel_view.html#a0d3f84118cabfbd0e8b9e8556d6fdc37":[5,0,13,39],
+"class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231":[5,0,13,15],
+"class_c_pixel_view.html#a1200796b444865d101184f0c07e1915c":[5,0,13,49],
+"class_c_pixel_view.html#a13b5daab212774a2957473acea4e843b":[5,0,13,53],
+"class_c_pixel_view.html#a1425907efc3ca64130e90095f6a254b9":[5,0,13,44],
+"class_c_pixel_view.html#a1778ed3e4aaa07e64577128429de4c10":[5,0,13,40],
+"class_c_pixel_view.html#a18f14f953dce5153659f30a1fc47ab2d":[5,0,13,37],
+"class_c_pixel_view.html#a195deb4034393308c9573454ac5e56ae":[5,0,13,32],
+"class_c_pixel_view.html#a1f1a98d480cc62635f24e62c68c14f65":[5,0,13,50],
+"class_c_pixel_view.html#a1f32c60d83428f27d3ec899442b82410":[5,0,13,12],
+"class_c_pixel_view.html#a1f846afc40872f1419c0dd2d21876657":[5,0,13,23],
+"class_c_pixel_view.html#a21679cd86fce5882d1b04aa78f2dd4ab":[5,0,13,64],
+"class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82":[5,0,13,33],
+"class_c_pixel_view.html#a2e5576eb742184423d130b4caebd830c":[5,0,13,58],
+"class_c_pixel_view.html#a3043e411e2b48b294574e0fbe848991c":[5,0,13,42],
+"class_c_pixel_view.html#a384417cfef1e38aa24fde4673fd8eaac":[5,0,13,59],
+"class_c_pixel_view.html#a3e1de5cd54fc18974df4203cd8c32ef7":[5,0,13,27],
+"class_c_pixel_view.html#a3e7c2cf9a8dc476f9a92850d69b7c499":[5,0,13,52],
+"class_c_pixel_view.html#a4861b6938f1cb9f8f885a9f3af13b8a9":[5,0,13,16],
+"class_c_pixel_view.html#a48b70c6f162cb898a38431bb63655f79":[5,0,13,34],
+"class_c_pixel_view.html#a5492e41e8b06dc599ab81b465c4236ed":[5,0,13,13],
+"class_c_pixel_view.html#a5d071ffd7163af53043114bee77c6b3a":[5,0,13,24],
+"class_c_pixel_view.html#a6b52e13f6eacefc7dde9f6348db438d0":[5,0,13,62],
+"class_c_pixel_view.html#a766ca6eefddccf307e67b89c3b05be12":[5,0,13,18],
+"class_c_pixel_view.html#a7830b1011e8f6f13298c3500eba2707a":[5,0,13,45],
+"class_c_pixel_view.html#a7ad3ae5a948047704c58458b13bdb53c":[5,0,13,36],
+"class_c_pixel_view.html#a87abde19e76dfb9ae42971aa3384a50d":[5,0,13,6],
+"class_c_pixel_view.html#a916fb5b1bae3606ffba540361f5c2407":[5,0,13,2],
+"class_c_pixel_view.html#a9814a52e2de74315d073a7de9e20a0f7":[5,0,13,9],
+"class_c_pixel_view.html#a9abaa0edf2f8ab01159dbe308e37bdec":[5,0,13,11],
+"class_c_pixel_view.html#a9c5df901bdcf85c8e4e8218d42978ff1":[5,0,13,19],
+"class_c_pixel_view.html#aa2b10d01a183235fcf62e50049c49dd4":[5,0,13,41],
+"class_c_pixel_view.html#aa33cb777acc46071c85cbe42cbfc9270":[5,0,13,10],
+"class_c_pixel_view.html#aa35b7eb6c9b8d2510df02af26db03f29":[5,0,13,51],
+"class_c_pixel_view.html#aae385e3ddfb6fd1f605d5d18db9606e6":[5,0,13,21],
+"class_c_pixel_view.html#aae5aea2ccc4e128ad9a79ae45dae0a64":[5,0,13,26],
+"class_c_pixel_view.html#ab2c455babfa76ad84096b34c79527908":[5,0,13,25],
+"class_c_pixel_view.html#ab31623e9f9036c6571cee8054b696621":[5,0,13,47],
+"class_c_pixel_view.html#ab4b8ebbe978cd7227ab98bf43ae641e2":[5,0,13,29],
+"class_c_pixel_view.html#ab540fb31ba2b6857d17e6da0c3dd1645":[5,0,13,28],
+"class_c_pixel_view.html#aba3ece62dbd9f340a0cd78a4c69ab116":[5,0,13,55],
+"class_c_pixel_view.html#abfb38ddcb524aa8b7a385c590823aaf6":[5,0,13,43],
+"class_c_pixel_view.html#abfcab2974a78f644d27f2ba39bcd40f1":[5,0,13,63],
+"class_c_pixel_view.html#aca5b4326ae86d90d2e8248f855623e82":[5,0,13,14],
+"class_c_pixel_view.html#ad1b0bbeb416db7f4dd1139ea23491330":[5,0,13,31],
+"class_c_pixel_view.html#ad44698b19b0ad875e066c30583777772":[5,0,13,1],
+"class_c_pixel_view.html#ad6e7a725732d4fff0dc4fa5c29015127":[5,0,13,46],
+"class_c_pixel_view.html#ad737aca28b069acb1bb350e635be83f4":[5,0,13,56],
+"class_c_pixel_view.html#ada24d4d93b849bc31aec124f682b836a":[5,0,13,5],
+"class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1":[5,0,13,30],
+"class_c_pixel_view.html#ae634ad882007c4c1aca645550d3ba78a":[5,0,13,8],
+"class_c_pixel_view.html#aec83b9f23486e0efd0729e3e5be87f81":[5,0,13,38],
+"class_c_pixel_view.html#aef542dfd9d18f1c62bd8dadaa88a76ae":[5,0,13,48],
+"class_c_pixel_view.html#af29113dfb08119789150ca6fdc12fb66":[5,0,13,22],
+"class_c_pixel_view.html#af2f7d2d33f63d7aaf024458d0e710320":[5,0,13,35],
+"class_c_pixel_view.html#af3254e14aaccb1e8b38272ddeb6d8013":[5,0,13,7],
+"class_c_pixel_view.html#af98febdccd4f7f18afbfbb0abfb4413d":[5,0,13,54],
+"class_c_pixel_view.html#afb57aeebbd762d7ead044a12fd51f639":[5,0,13,61],
+"class_c_pixel_view.html#afd0bd291a8398d56b6705fb02d822b6f":[5,0,13,20],
+"class_c_pixel_view.html#afdb7d7da8fc3a387d5df31e69da1cc71":[5,0,13,65],
+"class_c_pixel_view.html#afe22ceed228286280b4c6f7692db105a":[5,0,13,3]
};
diff --git a/docs/3.1/navtreeindex1.js b/docs/3.1/navtreeindex1.js
index 32882c60..6be74ace 100644
--- a/docs/3.1/navtreeindex1.js
+++ b/docs/3.1/navtreeindex1.js
@@ -1,253 +1,253 @@
var NAVTREEINDEX1 =
{
-"class_c_r_g_b_palette16.html#a4ee47d64732750b038bec307f56b491d":[4,4,3,11],
-"class_c_r_g_b_palette16.html#a5dfbe59ccffa74d95f23caca4a7a50e6":[4,4,3,24],
-"class_c_r_g_b_palette16.html#a5fad1061f21e02b451e74173481d8bd7":[4,4,3,3],
-"class_c_r_g_b_palette16.html#a614663def062dcc371d4f14db88380c3":[4,4,3,20],
-"class_c_r_g_b_palette16.html#a6189bc29bd39b2eef24953f16b1e86be":[4,4,3,23],
-"class_c_r_g_b_palette16.html#a686509f57ddd29457c4ad60c838e7b44":[4,4,3,7],
-"class_c_r_g_b_palette16.html#a71d9faa920f5ce3acd7fb96b24e30f86":[4,4,3,22],
-"class_c_r_g_b_palette16.html#a7214b8bb0070f864dbc0d64d93250904":[4,4,3,15],
-"class_c_r_g_b_palette16.html#a727e466567e9e65ffd17eb6a71d56d1f":[4,4,3,13],
-"class_c_r_g_b_palette16.html#a7d5587c81f7dee8be4fc701dd6149fda":[4,4,3,16],
-"class_c_r_g_b_palette16.html#a98225ec739aa1d48774e479e885258f7":[4,4,3,18],
-"class_c_r_g_b_palette16.html#aafce34411cc96d598a7ed754cfca15b7":[4,4,3,6],
+"class_c_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e":[5,0,13,60],
+"class_c_pixel_view_1_1pixelset__iterator__base.html":[5,0,13,0],
+"class_c_pixel_view_1_1pixelset__iterator__base.html#a02f8ee8e470fdafea245379a73bda4f9":[5,0,13,0,3],
+"class_c_pixel_view_1_1pixelset__iterator__base.html#a044aac4c6b782e2a0d8a5eb2b29b28d2":[5,0,13,0,5],
+"class_c_pixel_view_1_1pixelset__iterator__base.html#a17467c8100e9eb58e42964cdda73e7e9":[5,0,13,0,0],
+"class_c_pixel_view_1_1pixelset__iterator__base.html#a5a778ee698d972a0a06a762f129dacee":[5,0,13,0,4],
+"class_c_pixel_view_1_1pixelset__iterator__base.html#a6e5199e3cfde35795e39eee3d714a42b":[5,0,13,0,1],
+"class_c_pixel_view_1_1pixelset__iterator__base.html#ab026ec7ef21fe8341977b4e6b5ba20be":[5,0,13,0,2],
+"class_c_r_g_b_array.html":[5,0,15],
+"class_c_r_g_b_array.html#aadbaee57645fbf61fd87503cc7bce856":[5,0,15,0],
+"class_c_r_g_b_palette16.html":[4,4,3],
+"class_c_r_g_b_palette16.html#a033c8a5975d58a1dd4d90ce443a345df":[4,4,3,7],
+"class_c_r_g_b_palette16.html#a07ac22c5cd5b97ef006f38000dcd5052":[4,4,3,12],
+"class_c_r_g_b_palette16.html#a0c345a47c6f4beab2eb1c9e91264e6e3":[4,4,3,25],
+"class_c_r_g_b_palette16.html#a0e7240b7d3dc5c79deceae9ff1d44f42":[4,4,3,30],
+"class_c_r_g_b_palette16.html#a0ffc31b89df3b738f4cdb04012a0c7c5":[4,4,3,6],
+"class_c_r_g_b_palette16.html#a1e2866fd76857f99b6174a0bfa794328":[4,4,3,23],
+"class_c_r_g_b_palette16.html#a280eb7af64c9a6ae4ef14029240f81b2":[4,4,3,29],
+"class_c_r_g_b_palette16.html#a341bf249fdb557428918e6c95a5b7d0a":[4,4,3,10],
+"class_c_r_g_b_palette16.html#a3e9a52870e5d78e91a9710dfd1d6dc70":[4,4,3,5],
+"class_c_r_g_b_palette16.html#a40a563e3859e1a2dd77b8d512aaa7103":[4,4,3,22],
+"class_c_r_g_b_palette16.html#a46542c191b01f0799a1326316fcaac49":[4,4,3,1],
+"class_c_r_g_b_palette16.html#a4ee47d64732750b038bec307f56b491d":[4,4,3,13],
+"class_c_r_g_b_palette16.html#a5dfbe59ccffa74d95f23caca4a7a50e6":[4,4,3,28],
+"class_c_r_g_b_palette16.html#a5fad1061f21e02b451e74173481d8bd7":[4,4,3,4],
+"class_c_r_g_b_palette16.html#a614663def062dcc371d4f14db88380c3":[4,4,3,24],
+"class_c_r_g_b_palette16.html#a6189bc29bd39b2eef24953f16b1e86be":[4,4,3,27],
+"class_c_r_g_b_palette16.html#a686509f57ddd29457c4ad60c838e7b44":[4,4,3,9],
+"class_c_r_g_b_palette16.html#a71d9faa920f5ce3acd7fb96b24e30f86":[4,4,3,26],
+"class_c_r_g_b_palette16.html#a71e15afcaf4452ad7c4ac38abf4bc63d":[4,4,3,20],
+"class_c_r_g_b_palette16.html#a7214b8bb0070f864dbc0d64d93250904":[4,4,3,17],
+"class_c_r_g_b_palette16.html#a727e466567e9e65ffd17eb6a71d56d1f":[4,4,3,15],
+"class_c_r_g_b_palette16.html#a7d5587c81f7dee8be4fc701dd6149fda":[4,4,3,18],
+"class_c_r_g_b_palette16.html#a98225ec739aa1d48774e479e885258f7":[4,4,3,21],
+"class_c_r_g_b_palette16.html#aa5878365d4219ba17514f1de92b6c0f9":[4,4,3,3],
+"class_c_r_g_b_palette16.html#aafce34411cc96d598a7ed754cfca15b7":[4,4,3,8],
"class_c_r_g_b_palette16.html#ab23fec1712e4c6bf707be19652df35f4":[4,4,3,2],
-"class_c_r_g_b_palette16.html#aca75909eef135775ddc15e44e94e9e8d":[4,4,3,17],
-"class_c_r_g_b_palette16.html#adae71292874671f029f4df818c0b2d70":[4,4,3,14],
-"class_c_r_g_b_palette16.html#ade5399d22623dd135a908e467ac7d143":[4,4,3,9],
-"class_c_r_g_b_palette16.html#ae3591fa5568e02f635bbeeff703d2e0b":[4,4,3,12],
+"class_c_r_g_b_palette16.html#aca75909eef135775ddc15e44e94e9e8d":[4,4,3,19],
+"class_c_r_g_b_palette16.html#adae71292874671f029f4df818c0b2d70":[4,4,3,16],
+"class_c_r_g_b_palette16.html#ade5399d22623dd135a908e467ac7d143":[4,4,3,11],
+"class_c_r_g_b_palette16.html#ae3591fa5568e02f635bbeeff703d2e0b":[4,4,3,14],
"class_c_r_g_b_palette16.html#af3a6a06fddf749622ffe099e2d39302f":[4,4,3,0],
-"class_c_r_g_b_palette256.html":[4,4,4],
-"class_c_r_g_b_palette256.html#a01b7d7154a1c785e367d127940f9d180":[4,4,4,4],
-"class_c_r_g_b_palette256.html#a09bdede77e2a926e433548d2e8703d7d":[4,4,4,25],
-"class_c_r_g_b_palette256.html#a0f4c57932827fca3431bd7d0e12626e0":[4,4,4,9],
-"class_c_r_g_b_palette256.html#a173cddd5e8ff97792505e457a68ccd92":[4,4,4,18],
-"class_c_r_g_b_palette256.html#a281ee2a2cf4a59dfc8deb8d0cd2fcef9":[4,4,4,5],
-"class_c_r_g_b_palette256.html#a2beb847ccefda06f602b89c6ba28de0a":[4,4,4,11],
-"class_c_r_g_b_palette256.html#a3279636490301d45a05adfcbc8a7b4da":[4,4,4,28],
-"class_c_r_g_b_palette256.html#a3bf77a8b27f5b647fe2ec7daba13084a":[4,4,4,1],
-"class_c_r_g_b_palette256.html#a406a1031a306595b6d9b10f8b6cff761":[4,4,4,13],
-"class_c_r_g_b_palette256.html#a4769c68cfb248c340f9f80df444b49ce":[4,4,4,15],
-"class_c_r_g_b_palette256.html#a4f2e8e46d54553c6ee27fcf50b3da689":[4,4,4,17],
-"class_c_r_g_b_palette256.html#a55c0146fef81bc6f8765db0ad4c57b3a":[4,4,4,3],
-"class_c_r_g_b_palette256.html#a5e3119adf2b983f160b499750766578a":[4,4,4,23],
-"class_c_r_g_b_palette256.html#a61bc885ac072458b8f5144f63a29fb37":[4,4,4,19],
-"class_c_r_g_b_palette256.html#a69b16089d8497f5fa0864623e7224e9b":[4,4,4,26],
-"class_c_r_g_b_palette256.html#a83c4f1a69456d3e661e8ec7306b55d9c":[4,4,4,7],
-"class_c_r_g_b_palette256.html#a860d9e7e0e2f309fc644ae76ed964744":[4,4,4,16],
-"class_c_r_g_b_palette256.html#a9155e7d5e6dd529c4e54277ac8dfd9ea":[4,4,4,6],
-"class_c_r_g_b_palette256.html#a98f69fbb4046243df90aa0e77aa0a9b9":[4,4,4,2],
-"class_c_r_g_b_palette256.html#a99bfa25583d04e68e6ef4d1626fff96b":[4,4,4,24],
-"class_c_r_g_b_palette256.html#a9cb19dd01548c2c902e5217188552730":[4,4,4,21],
-"class_c_r_g_b_palette256.html#aaa433af3863304d7541285ebdf4e506c":[4,4,4,12],
-"class_c_r_g_b_palette256.html#ad8b2cfa7c9fbbecc4407d48cc2c240b7":[4,4,4,0],
-"class_c_r_g_b_palette256.html#ae306ab193417c951327d465d1f6575af":[4,4,4,14],
-"class_c_r_g_b_palette256.html#ae388de7344da19c4168f2ceea1eb6e38":[4,4,4,22],
-"class_c_r_g_b_palette256.html#ae60868ac8de4582f0fb19fb839088dc2":[4,4,4,8],
-"class_c_r_g_b_palette256.html#ae74434581d40b24a0d405640109a8784":[4,4,4,10],
-"class_c_r_g_b_palette256.html#ae8bc5adc97198a3b7ef55dbd99ce0d99":[4,4,4,20],
-"class_c_r_g_b_palette256.html#aed56d2958abee33002ef25cb00e3044c":[4,4,4,27],
-"class_d_a_t_a___n_o_p.html":[5,0,16],
-"class_d_a_t_a___n_o_p.html#aafcb87c306c2be9f4c332e77691effb5":[5,0,16,0],
-"class_d_m_x_s_e_r_i_a_l.html":[5,0,17],
-"class_d_m_x_s_i_m_p_l_e.html":[5,0,19],
-"class_d_m_x_serial_controller.html":[5,0,18],
-"class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129":[5,0,18,0],
-"class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27":[5,0,18,1],
-"class_d_m_x_serial_controller.html#a3d2435c0f44aa8a1d8cce24b04bf4103":[5,0,18,3],
-"class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b":[5,0,18,4],
-"class_d_m_x_serial_controller.html#a3f3f3e606e495fd1bdcfd25c6bed7fe1":[5,0,18,2],
-"class_d_m_x_simple_controller.html":[4,2,23],
-"class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3":[4,2,23,1],
-"class_d_m_x_simple_controller.html#a29df92ccb41090893fa3c49f22b47186":[4,2,23,2],
-"class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1":[4,2,23,4],
-"class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e":[4,2,23,0],
-"class_d_m_x_simple_controller.html#aca3638ba70b7bed91e8431ec0a73f6d3":[4,2,23,3],
-"class_fast_pin.html":[5,0,21],
-"class_fast_pin.html#a23ad28734f9597c28afbba8b4bfcda09":[5,0,21,2],
-"class_fast_pin.html#a23ad28734f9597c28afbba8b4bfcda09":[5,0,21,3],
-"class_fast_pin.html#a9f23acc7c8c6ce0c760745d32d14932f":[5,0,21,0],
-"class_fast_pin.html#a9f23acc7c8c6ce0c760745d32d14932f":[5,0,21,1],
-"class_fast_pin_b_b.html":[5,0,22],
-"class_g_w6205.html":[5,0,23],
-"class_g_w6205__400.html":[5,0,24],
-"class_g_w6205_controller400_khz.html":[4,2,19],
-"class_g_w6205_controller800_khz.html":[4,2,20],
-"class_input_pin.html":[5,0,28],
-"class_input_pin.html#acf74eef6677cb410c9f6534f8ec34005":[5,0,28,0],
-"class_input_pin.html#acf74eef6677cb410c9f6534f8ec34005":[5,0,28,1],
-"class_l_p_d1886.html":[5,0,30],
+"class_c_r_g_b_palette256.html":[4,4,6],
+"class_c_r_g_b_palette256.html#a01b7d7154a1c785e367d127940f9d180":[4,4,6,6],
+"class_c_r_g_b_palette256.html#a09bdede77e2a926e433548d2e8703d7d":[4,4,6,29],
+"class_c_r_g_b_palette256.html#a0f4c57932827fca3431bd7d0e12626e0":[4,4,6,11],
+"class_c_r_g_b_palette256.html#a173cddd5e8ff97792505e457a68ccd92":[4,4,6,20],
+"class_c_r_g_b_palette256.html#a281ee2a2cf4a59dfc8deb8d0cd2fcef9":[4,4,6,7],
+"class_c_r_g_b_palette256.html#a2beb847ccefda06f602b89c6ba28de0a":[4,4,6,13],
+"class_c_r_g_b_palette256.html#a3279636490301d45a05adfcbc8a7b4da":[4,4,6,32],
+"class_c_r_g_b_palette256.html#a3bf77a8b27f5b647fe2ec7daba13084a":[4,4,6,1],
+"class_c_r_g_b_palette256.html#a406a1031a306595b6d9b10f8b6cff761":[4,4,6,15],
+"class_c_r_g_b_palette256.html#a4769c68cfb248c340f9f80df444b49ce":[4,4,6,17],
+"class_c_r_g_b_palette256.html#a4f2e8e46d54553c6ee27fcf50b3da689":[4,4,6,19],
+"class_c_r_g_b_palette256.html#a55c0146fef81bc6f8765db0ad4c57b3a":[4,4,6,4],
+"class_c_r_g_b_palette256.html#a5e3119adf2b983f160b499750766578a":[4,4,6,27],
+"class_c_r_g_b_palette256.html#a61bc885ac072458b8f5144f63a29fb37":[4,4,6,22],
+"class_c_r_g_b_palette256.html#a69b16089d8497f5fa0864623e7224e9b":[4,4,6,30],
+"class_c_r_g_b_palette256.html#a83c4f1a69456d3e661e8ec7306b55d9c":[4,4,6,9],
+"class_c_r_g_b_palette256.html#a860d9e7e0e2f309fc644ae76ed964744":[4,4,6,18],
+"class_c_r_g_b_palette256.html#a8bb9c2f014e0f839db224895f873d206":[4,4,6,5],
+"class_c_r_g_b_palette256.html#a9155e7d5e6dd529c4e54277ac8dfd9ea":[4,4,6,8],
+"class_c_r_g_b_palette256.html#a93c20b6fdb682630ae6c641db98bebee":[4,4,6,23],
+"class_c_r_g_b_palette256.html#a9645f3cd06ebd1cd777840a8d04b9f69":[4,4,6,3],
+"class_c_r_g_b_palette256.html#a98f69fbb4046243df90aa0e77aa0a9b9":[4,4,6,2],
+"class_c_r_g_b_palette256.html#a99bfa25583d04e68e6ef4d1626fff96b":[4,4,6,28],
+"class_c_r_g_b_palette256.html#a9cb19dd01548c2c902e5217188552730":[4,4,6,25],
+"class_c_r_g_b_palette256.html#aaa433af3863304d7541285ebdf4e506c":[4,4,6,14],
+"class_c_r_g_b_palette256.html#ad8b2cfa7c9fbbecc4407d48cc2c240b7":[4,4,6,0],
+"class_c_r_g_b_palette256.html#ae306ab193417c951327d465d1f6575af":[4,4,6,16],
+"class_c_r_g_b_palette256.html#ae388de7344da19c4168f2ceea1eb6e38":[4,4,6,26],
+"class_c_r_g_b_palette256.html#ae60868ac8de4582f0fb19fb839088dc2":[4,4,6,10],
+"class_c_r_g_b_palette256.html#ae74434581d40b24a0d405640109a8784":[4,4,6,12],
+"class_c_r_g_b_palette256.html#ae8bc5adc97198a3b7ef55dbd99ce0d99":[4,4,6,24],
+"class_c_r_g_b_palette256.html#aed56d2958abee33002ef25cb00e3044c":[4,4,6,31],
+"class_c_r_g_b_palette256.html#afa4623c4415cc732fc4d581a0a9e3953":[4,4,6,21],
+"class_c_r_g_b_palette32.html":[4,4,5],
+"class_c_r_g_b_palette32.html#a0e63bbbb599a04067d4c8879285b3dde":[4,4,5,33],
+"class_c_r_g_b_palette32.html#a13ccbc9afe1fb1a6585bd9c9d77dd92a":[4,4,5,9],
+"class_c_r_g_b_palette32.html#a13f09d638c91334af2095d51c9168ce1":[4,4,5,16],
+"class_c_r_g_b_palette32.html#a16132eb10650baddb16cea425903af2b":[4,4,5,7],
+"class_c_r_g_b_palette32.html#a16ee6e53d011977f8cee52df0c6c58b7":[4,4,5,0],
+"class_c_r_g_b_palette32.html#a2ef31b01adf0dcf471a0b434e333fe21":[4,4,5,24],
+"class_c_r_g_b_palette32.html#a3438410a90c7a433b66295da474b6bab":[4,4,5,3],
+"class_c_r_g_b_palette32.html#a353c4bb3c4b46e24b60f3967e252c547":[4,4,5,8],
+"class_c_r_g_b_palette32.html#a3e97d05a24cca214c68793751b65c57c":[4,4,5,13],
+"class_c_r_g_b_palette32.html#a4019959afa78dea95cadc86fd7d20da2":[4,4,5,11],
+"class_c_r_g_b_palette32.html#a4c36cbfef6ccc309f426bc712bcea935":[4,4,5,22],
+"class_c_r_g_b_palette32.html#a54fd84dd8b9d86bbb494b6e4cb8eb339":[4,4,5,23],
+"class_c_r_g_b_palette32.html#a5daa65c9555826ae69f3fca8ce3c009d":[4,4,5,2],
+"class_c_r_g_b_palette32.html#a6827bca7ac5cff8a496a2bcd2ce14d02":[4,4,5,32],
+"class_c_r_g_b_palette32.html#a69465d3ea0e74e5ffbd4bef4813bf35a":[4,4,5,6],
+"class_c_r_g_b_palette32.html#a812f7977fa24cb79012d4a8f51d83107":[4,4,5,25],
+"class_c_r_g_b_palette32.html#a818f680a01314c116273ab57e55ec035":[4,4,5,10],
+"class_c_r_g_b_palette32.html#a885013cda7e8875b2c9894e0e88b0d7f":[4,4,5,15],
+"class_c_r_g_b_palette32.html#a92f529f4e3f85e000636bb0915d93c8f":[4,4,5,31],
+"class_c_r_g_b_palette32.html#aabbbe1fd83cd3062c48f8adb1ccd8076":[4,4,5,14],
+"class_c_r_g_b_palette32.html#aaf3410f8c5222ca4ca0b28cd063f90c9":[4,4,5,5],
+"class_c_r_g_b_palette32.html#ab12eb86bb1c8c661e8e71f8a98eb38c1":[4,4,5,18],
+"class_c_r_g_b_palette32.html#ab88416436adecc30d24b2f256d11f9dc":[4,4,5,29],
+"class_c_r_g_b_palette32.html#acb78b37e9ddeb393c3b8c613c9bb1f14":[4,4,5,1],
+"class_c_r_g_b_palette32.html#ae1d3ab8f56db6053889235afac4ed354":[4,4,5,34],
+"class_c_r_g_b_palette32.html#ae22b0593f4db09ec50b173ab49cbeb8d":[4,4,5,4],
+"class_c_r_g_b_palette32.html#ae460dccf50741036c14807654f001980":[4,4,5,20],
+"class_c_r_g_b_palette32.html#ae56dd09a3bf53170d062a832f4b834b7":[4,4,5,17],
+"class_c_r_g_b_palette32.html#aeed9ecd95fcf34529b96d06f585575e0":[4,4,5,30],
+"class_c_r_g_b_palette32.html#af031aab8885a33a1f609da74cfd1850a":[4,4,5,12],
+"class_c_r_g_b_palette32.html#af25490ee7d096dc89b7dac5ac8c7ad57":[4,4,5,27],
+"class_c_r_g_b_palette32.html#af4e3e326d8f2b059bdf5287ee88da202":[4,4,5,19],
+"class_c_r_g_b_palette32.html#afa882d25ae87f5440024e84025b7e004":[4,4,5,21],
+"class_c_r_g_b_palette32.html#afd29d3dd0abda25909e14e7b59fec38e":[4,4,5,28],
+"class_c_r_g_b_palette32.html#afda755ec92a4a5ea1693ddb0c4f0c953":[4,4,5,26],
+"class_d_a_t_a___n_o_p.html":[5,0,19],
+"class_d_a_t_a___n_o_p.html#aafcb87c306c2be9f4c332e77691effb5":[5,0,19,0],
+"class_d_m_x_s_e_r_i_a_l.html":[5,0,20],
+"class_d_m_x_s_i_m_p_l_e.html":[5,0,22],
+"class_d_m_x_serial_controller.html":[5,0,21],
+"class_d_m_x_serial_controller.html#a0cd937424d4f6eedb90acec81ca1fa27":[5,0,21,0],
+"class_d_m_x_serial_controller.html#a861d9beed51cce6441b50398f1eabebf":[5,0,21,1],
+"class_d_m_x_simple_controller.html":[4,2,24],
+"class_d_m_x_simple_controller.html#a251c7d09383870337853c360996871c3":[4,2,24,0],
+"class_d_m_x_simple_controller.html#a6744d598f10ba5d97a57df08c46bafab":[4,2,24,1],
+"class_fast_pin.html":[5,0,24],
+"class_fast_pin.html#a23ad28734f9597c28afbba8b4bfcda09":[5,0,24,2],
+"class_fast_pin.html#a23ad28734f9597c28afbba8b4bfcda09":[5,0,24,3],
+"class_fast_pin.html#a9f23acc7c8c6ce0c760745d32d14932f":[5,0,24,0],
+"class_fast_pin.html#a9f23acc7c8c6ce0c760745d32d14932f":[5,0,24,1],
+"class_fast_pin_b_b.html":[5,0,25],
+"class_g_w6205.html":[5,0,26],
+"class_g_w6205__400.html":[5,0,27],
+"class_g_w6205_controller400_khz.html":[4,2,20],
+"class_g_w6205_controller800_khz.html":[4,2,21],
+"class_input_pin.html":[5,0,31],
+"class_input_pin.html#acf74eef6677cb410c9f6534f8ec34005":[5,0,31,0],
+"class_input_pin.html#acf74eef6677cb410c9f6534f8ec34005":[5,0,31,1],
+"class_l_p_d1886.html":[5,0,33],
"class_l_p_d1886_controller1250_khz.html":[4,2,7],
"class_l_p_d8806_controller.html":[4,2,1],
-"class_l_p_d8806_controller.html#a31d4e01a823682556e26748193f722e5":[4,2,1,3],
-"class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259":[4,2,1,5],
-"class_l_p_d8806_controller.html#a53fa59f3f195e48e956428d862168a7d":[4,2,1,4],
-"class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e":[4,2,1,1],
-"class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608":[4,2,1,2],
+"class_l_p_d8806_controller.html#a07a53c93ffb5e70dbf6c9390f40c76c2":[4,2,1,2],
+"class_l_p_d8806_controller.html#abe5be69b938d0709cfc77fcf57c75608":[4,2,1,1],
"class_l_p_d8806_controller.html#aee799ebbd2f631f61e3564b3bc4d43eb":[4,2,1,0],
-"class_n_e_o_p_i_x_e_l.html":[5,0,34],
-"class_n_o_p_s_p_i_output.html":[5,0,35],
-"class_n_o_p_s_p_i_output.html#a0599fbdf5e04a633d24ff17033443237":[5,0,35,3],
-"class_n_o_p_s_p_i_output.html#a2f8e72323c827eb869b222b5a36ebbc1":[5,0,35,9],
-"class_n_o_p_s_p_i_output.html#a31ccabe3e4987751ad67a5d06e502df2":[5,0,35,11],
-"class_n_o_p_s_p_i_output.html#a35b1e41d4b74fb8a1020073a324a9d01":[5,0,35,0],
-"class_n_o_p_s_p_i_output.html#a3f710f1b58277e67cebcaede84aadbc8":[5,0,35,1],
-"class_n_o_p_s_p_i_output.html#a6d1c46106879fc835ad6ba8149b20068":[5,0,35,6],
-"class_n_o_p_s_p_i_output.html#a6fca9a7e475aecae123879044d33f195":[5,0,35,5],
-"class_n_o_p_s_p_i_output.html#a7b33548cfee1f5cda7a8a48fa45ee460":[5,0,35,8],
-"class_n_o_p_s_p_i_output.html#aa192a8b0f727e7c9fc399e94532e287f":[5,0,35,10],
-"class_n_o_p_s_p_i_output.html#ad9ff9bf62427b69e3bb578699e0ce561":[5,0,35,2],
-"class_n_o_p_s_p_i_output.html#ae07bb6f787879f28979cccec9ec4965d":[5,0,35,4],
-"class_n_o_p_s_p_i_output.html#af5485fc346e12c50480b969e5b242636":[5,0,35,7],
-"class_output_pin.html":[5,0,36],
-"class_output_pin.html#ad39cf32217852803ee3f1d410a93a1db":[5,0,36,0],
-"class_output_pin.html#ad39cf32217852803ee3f1d410a93a1db":[5,0,36,1],
+"class_n_e_o_p_i_x_e_l.html":[5,0,36],
+"class_n_o_p_s_p_i_output.html":[5,0,37],
+"class_n_o_p_s_p_i_output.html#a0599fbdf5e04a633d24ff17033443237":[5,0,37,3],
+"class_n_o_p_s_p_i_output.html#a2f8e72323c827eb869b222b5a36ebbc1":[5,0,37,9],
+"class_n_o_p_s_p_i_output.html#a31ccabe3e4987751ad67a5d06e502df2":[5,0,37,11],
+"class_n_o_p_s_p_i_output.html#a35b1e41d4b74fb8a1020073a324a9d01":[5,0,37,0],
+"class_n_o_p_s_p_i_output.html#a3f710f1b58277e67cebcaede84aadbc8":[5,0,37,1],
+"class_n_o_p_s_p_i_output.html#a6d1c46106879fc835ad6ba8149b20068":[5,0,37,6],
+"class_n_o_p_s_p_i_output.html#a6fca9a7e475aecae123879044d33f195":[5,0,37,5],
+"class_n_o_p_s_p_i_output.html#a7b33548cfee1f5cda7a8a48fa45ee460":[5,0,37,8],
+"class_n_o_p_s_p_i_output.html#aa192a8b0f727e7c9fc399e94532e287f":[5,0,37,10],
+"class_n_o_p_s_p_i_output.html#ad9ff9bf62427b69e3bb578699e0ce561":[5,0,37,2],
+"class_n_o_p_s_p_i_output.html#ae07bb6f787879f28979cccec9ec4965d":[5,0,37,4],
+"class_n_o_p_s_p_i_output.html#af5485fc346e12c50480b969e5b242636":[5,0,37,7],
+"class_output_pin.html":[5,0,38],
+"class_output_pin.html#ad39cf32217852803ee3f1d410a93a1db":[5,0,38,0],
+"class_output_pin.html#ad39cf32217852803ee3f1d410a93a1db":[5,0,38,1],
"class_p9813_controller.html":[4,2,5],
-"class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81":[4,2,5,4],
-"class_p9813_controller.html#aac4f48b0da93055c0da7285839c4ce81":[4,2,5,3],
"class_p9813_controller.html#ab65e07a30e5e59e8bdcb4a9f3b794201":[4,2,5,0],
-"class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c":[4,2,5,1],
-"class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a":[4,2,5,2],
-"class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a":[4,2,5,5],
-"class_p_i_x_i_e.html":[5,0,40],
-"class_p_l9823.html":[5,0,42],
-"class_p_l9823_controller.html":[4,2,21],
-"class_pin.html":[5,0,38],
-"class_pin.html#a063487a763fe9a6fa795265480311c7c":[5,0,38,6],
-"class_pin.html#a063487a763fe9a6fa795265480311c7c":[5,0,38,7],
-"class_pin.html#a20dd599177993607a9839d80bb0927d7":[5,0,38,26],
-"class_pin.html#a20dd599177993607a9839d80bb0927d7":[5,0,38,27],
-"class_pin.html#a2309200ff683097b1aa8679ae3dc1e30":[5,0,38,34],
-"class_pin.html#a2309200ff683097b1aa8679ae3dc1e30":[5,0,38,35],
-"class_pin.html#a308662200bc1be2513c9ac65ddaa43b0":[5,0,38,39],
-"class_pin.html#a308662200bc1be2513c9ac65ddaa43b0":[5,0,38,40],
-"class_pin.html#a36d9f8ffbfb6547a076039fd1761200a":[5,0,38,9],
-"class_pin.html#a36d9f8ffbfb6547a076039fd1761200a":[5,0,38,11],
-"class_pin.html#a3b1c3fa3480cd4a57c065f2e8811543a":[5,0,38,32],
-"class_pin.html#a3b1c3fa3480cd4a57c065f2e8811543a":[5,0,38,33],
-"class_pin.html#a575b9e3dbf144bb98fc14ee06e219f7d":[5,0,38,16],
-"class_pin.html#a575b9e3dbf144bb98fc14ee06e219f7d":[5,0,38,18],
-"class_pin.html#a70597f67481a4368727ae7d692a6e434":[5,0,38,12],
-"class_pin.html#a70597f67481a4368727ae7d692a6e434":[5,0,38,13],
-"class_pin.html#a7135576a0f7cd2df8d49af5a001c59c1":[5,0,38,28],
-"class_pin.html#a7135576a0f7cd2df8d49af5a001c59c1":[5,0,38,29],
-"class_pin.html#a8453327e641cbdc1413d0f5acf9d5195":[5,0,38,17],
-"class_pin.html#a8453327e641cbdc1413d0f5acf9d5195":[5,0,38,19],
-"class_pin.html#a8f8b180aa16d5a9e9af48a38dc1dca03":[5,0,38,0],
-"class_pin.html#a8f8b180aa16d5a9e9af48a38dc1dca03":[5,0,38,1],
-"class_pin.html#a91f5a6b9d254eab57c6baa4f3bce6518":[5,0,38,20],
-"class_pin.html#a91f5a6b9d254eab57c6baa4f3bce6518":[5,0,38,21],
-"class_pin.html#a92a7f23de99162c63611556e346b1fcc":[5,0,38,15],
-"class_pin.html#a92a7f23de99162c63611556e346b1fcc":[5,0,38,14],
-"class_pin.html#aa0565bfc99cf3df826420f89304a7937":[5,0,38,3],
-"class_pin.html#aa0565bfc99cf3df826420f89304a7937":[5,0,38,2],
-"class_pin.html#aafa819baff64cf2a594a53fbff947f3e":[5,0,38,37],
-"class_pin.html#aafa819baff64cf2a594a53fbff947f3e":[5,0,38,38],
-"class_pin.html#ab462ca53d0eda5e199e30886e6329142":[5,0,38,25],
-"class_pin.html#ab462ca53d0eda5e199e30886e6329142":[5,0,38,24],
-"class_pin.html#abf184984e35f57f6f7f722736095f658":[5,0,38,23],
-"class_pin.html#abf184984e35f57f6f7f722736095f658":[5,0,38,22],
-"class_pin.html#abf67a98d2bca9b9d27a3c24b8cc1a58b":[5,0,38,30],
-"class_pin.html#abf67a98d2bca9b9d27a3c24b8cc1a58b":[5,0,38,31],
-"class_pin.html#acd4ade93d8a5831ea021e0fff857aad5":[5,0,38,5],
-"class_pin.html#acd4ade93d8a5831ea021e0fff857aad5":[5,0,38,4],
-"class_pin.html#ad3b2ecbaab2e22b18da807c7c5aa147a":[5,0,38,8],
-"class_pin.html#ad3b2ecbaab2e22b18da807c7c5aa147a":[5,0,38,10],
-"class_pin.html#aeaddf413f38dd8e0cc6da9c84d372474":[5,0,38,36],
+"class_p9813_controller.html#ab7381f0a1850d006f3449d27838b19c5":[4,2,5,2],
+"class_p9813_controller.html#ad6fcb36b9378df660721ae24ed857b8a":[4,2,5,1],
+"class_p_i_x_i_e.html":[5,0,42],
+"class_p_l9823.html":[5,0,44],
+"class_p_l9823_controller.html":[4,2,22],
+"class_pin.html":[5,0,40],
+"class_pin.html#a063487a763fe9a6fa795265480311c7c":[5,0,40,6],
+"class_pin.html#a063487a763fe9a6fa795265480311c7c":[5,0,40,7],
+"class_pin.html#a20dd599177993607a9839d80bb0927d7":[5,0,40,26],
+"class_pin.html#a20dd599177993607a9839d80bb0927d7":[5,0,40,27],
+"class_pin.html#a2309200ff683097b1aa8679ae3dc1e30":[5,0,40,34],
+"class_pin.html#a2309200ff683097b1aa8679ae3dc1e30":[5,0,40,35],
+"class_pin.html#a308662200bc1be2513c9ac65ddaa43b0":[5,0,40,39],
+"class_pin.html#a308662200bc1be2513c9ac65ddaa43b0":[5,0,40,40],
+"class_pin.html#a36d9f8ffbfb6547a076039fd1761200a":[5,0,40,9],
+"class_pin.html#a36d9f8ffbfb6547a076039fd1761200a":[5,0,40,11],
+"class_pin.html#a3b1c3fa3480cd4a57c065f2e8811543a":[5,0,40,32],
+"class_pin.html#a3b1c3fa3480cd4a57c065f2e8811543a":[5,0,40,33],
+"class_pin.html#a575b9e3dbf144bb98fc14ee06e219f7d":[5,0,40,16],
+"class_pin.html#a575b9e3dbf144bb98fc14ee06e219f7d":[5,0,40,18],
+"class_pin.html#a70597f67481a4368727ae7d692a6e434":[5,0,40,12],
+"class_pin.html#a70597f67481a4368727ae7d692a6e434":[5,0,40,13],
+"class_pin.html#a7135576a0f7cd2df8d49af5a001c59c1":[5,0,40,28],
+"class_pin.html#a7135576a0f7cd2df8d49af5a001c59c1":[5,0,40,29],
+"class_pin.html#a8453327e641cbdc1413d0f5acf9d5195":[5,0,40,17],
+"class_pin.html#a8453327e641cbdc1413d0f5acf9d5195":[5,0,40,19],
+"class_pin.html#a8f8b180aa16d5a9e9af48a38dc1dca03":[5,0,40,0],
+"class_pin.html#a8f8b180aa16d5a9e9af48a38dc1dca03":[5,0,40,1],
+"class_pin.html#a91f5a6b9d254eab57c6baa4f3bce6518":[5,0,40,20],
+"class_pin.html#a91f5a6b9d254eab57c6baa4f3bce6518":[5,0,40,21],
+"class_pin.html#a92a7f23de99162c63611556e346b1fcc":[5,0,40,14],
+"class_pin.html#a92a7f23de99162c63611556e346b1fcc":[5,0,40,15],
+"class_pin.html#aa0565bfc99cf3df826420f89304a7937":[5,0,40,2],
+"class_pin.html#aa0565bfc99cf3df826420f89304a7937":[5,0,40,3],
+"class_pin.html#aafa819baff64cf2a594a53fbff947f3e":[5,0,40,37],
+"class_pin.html#aafa819baff64cf2a594a53fbff947f3e":[5,0,40,38],
+"class_pin.html#ab462ca53d0eda5e199e30886e6329142":[5,0,40,24],
+"class_pin.html#ab462ca53d0eda5e199e30886e6329142":[5,0,40,25],
+"class_pin.html#abf184984e35f57f6f7f722736095f658":[5,0,40,22],
+"class_pin.html#abf184984e35f57f6f7f722736095f658":[5,0,40,23],
+"class_pin.html#abf67a98d2bca9b9d27a3c24b8cc1a58b":[5,0,40,30],
+"class_pin.html#abf67a98d2bca9b9d27a3c24b8cc1a58b":[5,0,40,31],
+"class_pin.html#acd4ade93d8a5831ea021e0fff857aad5":[5,0,40,4],
+"class_pin.html#acd4ade93d8a5831ea021e0fff857aad5":[5,0,40,5],
+"class_pin.html#ad3b2ecbaab2e22b18da807c7c5aa147a":[5,0,40,8],
+"class_pin.html#ad3b2ecbaab2e22b18da807c7c5aa147a":[5,0,40,10],
+"class_pin.html#aeaddf413f38dd8e0cc6da9c84d372474":[5,0,40,36],
"class_pixie_controller.html":[4,2,0],
-"class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583":[4,2,0,4],
-"class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583":[4,2,0,5],
-"class_pixie_controller.html#a2d29e55fd0124450b0d8d154b6875468":[4,2,0,3],
-"class_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118":[4,2,0,2],
-"class_pixie_controller.html#a9da14e8683ef6588d795d33eaba6da3f":[4,2,0,6],
-"class_pixie_controller.html#af56e4137870a8f2721f16afcc76db01c":[4,2,0,1],
+"class_pixie_controller.html#a3e31cd5443b6751d0fd92fd69b2af746":[4,2,0,2],
+"class_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118":[4,2,0,1],
"class_pixie_controller.html#afecb754d21fd4a47146dc366cb2420a9":[4,2,0,0],
-"class_r_e_f_hardware_s_p_i_output.html":[5,0,45],
-"class_r_e_f_hardware_s_p_i_output.html#a1236b4c028a5aa4070eae0527795172c":[5,0,45,1],
-"class_r_e_f_hardware_s_p_i_output.html#a4c446c64a3b9fd1989d5f89cf5fe048b":[5,0,45,3],
-"class_r_e_f_hardware_s_p_i_output.html#a6e7667bc1bd496c6e8ae8fe60f4f9f7c":[5,0,45,6],
-"class_r_e_f_hardware_s_p_i_output.html#a710536befead0211a0352d93f993431e":[5,0,45,2],
-"class_r_e_f_hardware_s_p_i_output.html#a727c7315fab0f11994b879ee8a27460f":[5,0,45,8],
-"class_r_e_f_hardware_s_p_i_output.html#a8725a9913efecca04d39b2ca8f28724f":[5,0,45,5],
-"class_r_e_f_hardware_s_p_i_output.html#aaf52398e54f9e5908f3956ce8ef923a5":[5,0,45,0],
-"class_r_e_f_hardware_s_p_i_output.html#abc1c9187d606c87e465a69a1db98f1ca":[5,0,45,4],
-"class_r_e_f_hardware_s_p_i_output.html#ac1e85b75b7bc5f255fdb152d83def6b5":[5,0,45,7],
-"class_r_e_f_hardware_s_p_i_output.html#ad47c61c0eb6836df464577d0e55ab79c":[5,0,45,9],
-"class_s_k6812.html":[5,0,47],
-"class_s_k6812_controller.html":[4,2,11],
+"class_r_e_f_hardware_s_p_i_output.html":[5,0,47],
+"class_r_e_f_hardware_s_p_i_output.html#a1236b4c028a5aa4070eae0527795172c":[5,0,47,1],
+"class_r_e_f_hardware_s_p_i_output.html#a4c446c64a3b9fd1989d5f89cf5fe048b":[5,0,47,3],
+"class_r_e_f_hardware_s_p_i_output.html#a6e7667bc1bd496c6e8ae8fe60f4f9f7c":[5,0,47,6],
+"class_r_e_f_hardware_s_p_i_output.html#a710536befead0211a0352d93f993431e":[5,0,47,2],
+"class_r_e_f_hardware_s_p_i_output.html#a727c7315fab0f11994b879ee8a27460f":[5,0,47,8],
+"class_r_e_f_hardware_s_p_i_output.html#a8725a9913efecca04d39b2ca8f28724f":[5,0,47,5],
+"class_r_e_f_hardware_s_p_i_output.html#aaf52398e54f9e5908f3956ce8ef923a5":[5,0,47,0],
+"class_r_e_f_hardware_s_p_i_output.html#abc1c9187d606c87e465a69a1db98f1ca":[5,0,47,4],
+"class_r_e_f_hardware_s_p_i_output.html#ac1e85b75b7bc5f255fdb152d83def6b5":[5,0,47,7],
+"class_r_e_f_hardware_s_p_i_output.html#ad47c61c0eb6836df464577d0e55ab79c":[5,0,47,9],
+"class_s_k6812.html":[5,0,49],
+"class_s_k6812_controller.html":[4,2,12],
+"class_s_k6822.html":[5,0,51],
+"class_s_k6822_controller.html":[4,2,11],
"class_s_m16716_controller.html":[4,2,6],
-"class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591":[4,2,6,2],
-"class_s_m16716_controller.html#a3d720053186fd61d6ad90d48cac3d57d":[4,2,6,3],
-"class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677":[4,2,6,5],
-"class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8":[4,2,6,1],
-"class_s_m16716_controller.html#ae99c85f11c5c8244bc94c2b4b02fe574":[4,2,6,4],
+"class_s_m16716_controller.html#a1ba5a4e3f00b2235f278b9fb9aeb1591":[4,2,6,1],
+"class_s_m16716_controller.html#a2b68d483e7422d26d31586ca7791d7af":[4,2,6,2],
"class_s_m16716_controller.html#aefb06d426f8690545397905b9612f71e":[4,2,6,0],
-"class_s_p_i_output.html":[5,0,51],
-"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":[5,0,52],
-"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":[5,0,53],
-"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":[5,0,54],
-"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":[5,0,55],
-"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":[5,0,56],
-"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":[5,0,57],
-"class_selectable.html":[5,0,46],
-"class_selectable.html#a190c264a07995c20d72ea5d52eb60e47":[5,0,46,1],
-"class_selectable.html#a5536adac637a1c55c3778158c7f38840":[5,0,46,2],
-"class_selectable.html#aac2dbdb984ed2615b0ec340a868b7a12":[5,0,46,0],
-"class_software_s_p_i_output.html":[5,0,50],
-"class_t_m1803.html":[5,0,60],
-"class_t_m1803_controller400_khz.html":[4,2,17],
-"class_t_m1804.html":[5,0,62],
-"class_t_m1809.html":[5,0,63],
-"class_t_m1809_controller800_khz.html":[4,2,16],
-"class_t_m1812.html":[5,0,65],
-"class_t_m1829.html":[5,0,66],
-"class_t_m1829_controller1600_khz.html":[4,2,22],
-"class_t_m1829_controller800_khz.html":[4,2,18],
-"class_u_c_s1903.html":[5,0,70],
-"class_u_c_s1903_b.html":[5,0,71],
-"class_u_c_s1903_b_controller800_khz.html":[4,2,13],
-"class_u_c_s1903_controller400_khz.html":[4,2,12],
-"class_u_c_s1904.html":[5,0,74],
-"class_u_c_s1904_controller800_khz.html":[4,2,14],
-"class_u_c_s2903.html":[5,0,76],
-"class_u_c_s2903_controller.html":[4,2,15],
-"class_w_s2801_controller.html":[4,2,2],
-"class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501":[4,2,2,5],
-"class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0":[4,2,2,4],
-"class_w_s2801_controller.html#a69fca4db95f5f60f27d7d1a8c7fa16a0":[4,2,2,3],
-"class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c":[4,2,2,1],
-"class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4":[4,2,2,2],
-"class_w_s2801_controller.html#add280e6800bdb41bcc6aee2f5c9d16b5":[4,2,2,0],
-"class_w_s2803_controller.html":[4,2,3],
-"class_w_s2811.html":[5,0,80],
-"class_w_s2811__400.html":[5,0,81],
-"class_w_s2811_controller400_khz.html":[4,2,10],
-"class_w_s2811_controller800_khz.html":[4,2,9],
-"class_w_s2812.html":[5,0,84],
-"class_w_s2812_b.html":[5,0,85],
-"class_w_s2812_controller800_khz.html":[4,2,8],
-"classes.html":[5,1],
-"classq.html":[4,6,5],
-"classq.html#a3fe5b150d81524fa1f5e77a9d359fd2b":[4,6,5,5],
-"classq.html#a5d5bbe982d89891ec48869141261e53f":[4,6,5,2],
-"classq.html#a61b599bea169ddcf8c96972fa0f4406e":[4,6,5,0],
-"classq.html#a813bdbda614b53c27678ee1f82e5e40e":[4,6,5,3],
-"classq.html#a9fe110e9076a0de5e646cb3a74be07f0":[4,6,5,4],
-"classq.html#aae3d04f9b49c9b0ad8fd62e3ff0cdb47":[4,6,5,6],
-"classq.html#adccffc77e7b64de25530cfa53af6eb73":[4,6,5,1],
-"color_8h.html":[6,0,3],
-"color_8h_source.html":[6,0,3],
-"colorpalettes_8cpp_source.html":[6,0,4],
-"colorpalettes_8h.html":[6,0,5],
-"colorpalettes_8h_source.html":[6,0,5],
-"colorutils_8cpp_source.html":[6,0,6],
-"colorutils_8h.html":[6,0,7],
-"colorutils_8h_source.html":[6,0,7],
-"controller_8h.html":[6,0,8],
-"controller_8h.html#a685662f0b6e22bfab012e574168ba5c9":[6,0,8,3],
-"controller_8h_source.html":[6,0,8],
-"cpp__compat_8h_source.html":[6,0,9],
-"dir_fbb9e787cf27434374136273d35a9c17.html":[6,0,0],
-"dmx_8h_source.html":[6,0,10]
+"class_s_p_i_output.html":[5,0,55],
+"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":[5,0,56],
+"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":[5,0,57],
+"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":[5,0,58],
+"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":[5,0,59],
+"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":[5,0,60],
+"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":[5,0,61],
+"class_selectable.html":[5,0,48],
+"class_selectable.html#a190c264a07995c20d72ea5d52eb60e47":[5,0,48,1],
+"class_selectable.html#a5536adac637a1c55c3778158c7f38840":[5,0,48,2],
+"class_selectable.html#aac2dbdb984ed2615b0ec340a868b7a12":[5,0,48,0],
+"class_software_s_p_i_output.html":[5,0,54],
+"class_t_m1803.html":[5,0,64],
+"class_t_m1803_controller400_khz.html":[4,2,18],
+"class_t_m1804.html":[5,0,66],
+"class_t_m1809.html":[5,0,67],
+"class_t_m1809_controller800_khz.html":[4,2,17],
+"class_t_m1812.html":[5,0,69],
+"class_t_m1829.html":[5,0,70],
+"class_t_m1829_controller1600_khz.html":[4,2,23]
};
diff --git a/docs/3.1/navtreeindex2.js b/docs/3.1/navtreeindex2.js
index 80839a74..72e8d8a4 100644
--- a/docs/3.1/navtreeindex2.js
+++ b/docs/3.1/navtreeindex2.js
@@ -1,8 +1,53 @@
var NAVTREEINDEX2 =
{
+"class_t_m1829_controller800_khz.html":[4,2,19],
+"class_u_c_s1903.html":[5,0,74],
+"class_u_c_s1903_b.html":[5,0,75],
+"class_u_c_s1903_b_controller800_khz.html":[4,2,14],
+"class_u_c_s1903_controller400_khz.html":[4,2,13],
+"class_u_c_s1904.html":[5,0,78],
+"class_u_c_s1904_controller800_khz.html":[4,2,15],
+"class_u_c_s2903.html":[5,0,80],
+"class_u_c_s2903_controller.html":[4,2,16],
+"class_w_s2801_controller.html":[4,2,2],
+"class_w_s2801_controller.html#a0bb02438ec0df1f3046131194a892576":[4,2,2,2],
+"class_w_s2801_controller.html#ad6187b68bccb831cd5cab3cffbd6bdb4":[4,2,2,1],
+"class_w_s2801_controller.html#add280e6800bdb41bcc6aee2f5c9d16b5":[4,2,2,0],
+"class_w_s2803_controller.html":[4,2,3],
+"class_w_s2811.html":[5,0,84],
+"class_w_s2811__400.html":[5,0,85],
+"class_w_s2811_controller400_khz.html":[4,2,10],
+"class_w_s2811_controller800_khz.html":[4,2,9],
+"class_w_s2812.html":[5,0,88],
+"class_w_s2812_b.html":[5,0,89],
+"class_w_s2812_controller800_khz.html":[4,2,8],
+"classes.html":[5,1],
+"classq.html":[4,6,5],
+"classq.html#a3fe5b150d81524fa1f5e77a9d359fd2b":[4,6,5,5],
+"classq.html#a5d5bbe982d89891ec48869141261e53f":[4,6,5,2],
+"classq.html#a61b599bea169ddcf8c96972fa0f4406e":[4,6,5,0],
+"classq.html#a813bdbda614b53c27678ee1f82e5e40e":[4,6,5,3],
+"classq.html#a9fe110e9076a0de5e646cb3a74be07f0":[4,6,5,4],
+"classq.html#aae3d04f9b49c9b0ad8fd62e3ff0cdb47":[4,6,5,6],
+"classq.html#adccffc77e7b64de25530cfa53af6eb73":[4,6,5,1],
+"color_8h.html":[6,0,3],
+"color_8h_source.html":[6,0,3],
+"colorpalettes_8cpp_source.html":[6,0,4],
+"colorpalettes_8h.html":[6,0,5],
+"colorpalettes_8h_source.html":[6,0,5],
+"colorutils_8cpp_source.html":[6,0,6],
+"colorutils_8h.html":[6,0,7],
+"colorutils_8h_source.html":[6,0,7],
+"controller_8h.html":[6,0,8],
+"controller_8h.html#a685662f0b6e22bfab012e574168ba5c9":[6,0,8,3],
+"controller_8h_source.html":[6,0,8],
+"cpp__compat_8h_source.html":[6,0,9],
+"dir_fbb9e787cf27434374136273d35a9c17.html":[6,0,0],
+"dmx_8h_source.html":[6,0,10],
"fastled__config_8h.html":[6,0,13],
"fastled__config_8h_source.html":[6,0,13],
"fastled__delay_8h.html":[6,0,14],
+"fastled__delay_8h.html#a76328edb9ea1a1f017567ff835247d2d":[6,0,14,5],
"fastled__delay_8h.html#a9f73ec33563da273f06487a797e10eae":[6,0,14,3],
"fastled__delay_8h.html#acdd14fccd97b45d3d566c95bff28ed76":[6,0,14,4],
"fastled__delay_8h_source.html":[6,0,14],
@@ -33,8 +78,8 @@ var NAVTREEINDEX2 =
"group___color_enums.html":[4,3],
"group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9":[4,3,0],
"group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9":[6,0,3,0],
-"group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8":[4,3,1],
"group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8":[6,0,3,1],
+"group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8":[4,3,1],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a0bec85069af34e723fe1f9617e5cb168":[6,0,3,0,0],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a5065c2444cbe23675387c063e3d87aee":[6,0,3,0,11],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a631a1e96b10db9220ab27d70a320ac48":[4,3,0,1],
@@ -46,8 +91,8 @@ var NAVTREEINDEX2 =
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a890e0555ad95071fa4391a5775a38621":[4,3,4],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a890e0555ad95071fa4391a5775a38621":[6,0,3,0,6],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a8f4ad60002c8856dc1f153e2eaa2de91":[4,3,0,0],
-"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a8f4ad60002c8856dc1f153e2eaa2de91":[6,0,3,0,1],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a8f4ad60002c8856dc1f153e2eaa2de91":[4,3,9],
+"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9a8f4ad60002c8856dc1f153e2eaa2de91":[6,0,3,0,1],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9aa0d9bb26657105cc2e63e91b75a38dd4":[6,0,3,0,16],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9aa66cc3f3950f9d712cf9dceca39a1ba5":[6,0,3,0,9],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9aa836f719c6010ef3df781a5d9e1863b1":[6,0,3,0,14],
@@ -59,14 +104,14 @@ var NAVTREEINDEX2 =
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76":[4,3,6],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ac9a2b02351fcc9ad08ef4e2748530e76":[6,0,3,0,5],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9acb80944aa5bed3031b19f1e1101f6a9a":[4,3,0,7],
-"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9acb80944aa5bed3031b19f1e1101f6a9a":[6,0,3,0,8],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9acb80944aa5bed3031b19f1e1101f6a9a":[4,3,3],
+"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9acb80944aa5bed3031b19f1e1101f6a9a":[6,0,3,0,8],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ace317f70f7c78232341cf59f08fa46b0":[6,0,3,0,17],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ad0aebf757f0aa8fc45ba282bd25006f7":[4,3,0,6],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ad0aebf757f0aa8fc45ba282bd25006f7":[4,3,7],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ad0aebf757f0aa8fc45ba282bd25006f7":[6,0,3,0,7],
-"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae3d35275ab8c374612bcfbcce732b39f":[4,3,0,8],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae3d35275ab8c374612bcfbcce732b39f":[6,0,3,0,19],
+"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae3d35275ab8c374612bcfbcce732b39f":[4,3,0,8],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae5ec76aa869b51e645e9f226dfee4b79":[4,3,0,2],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae5ec76aa869b51e645e9f226dfee4b79":[4,3,5],
"group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9ae5ec76aa869b51e645e9f226dfee4b79":[6,0,3,0,3],
@@ -78,84 +123,93 @@ var NAVTREEINDEX2 =
"group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8ac52fe8e181ff3c39128664fba835eae3":[6,0,3,1,0],
"group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af617057397c2a4f89b4bf2783cdac24b":[4,3,1,1],
"group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af617057397c2a4f89b4bf2783cdac24b":[6,0,3,1,2],
-"group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af964ffff5f2977a60a83aa3f9f8b4368":[6,0,3,1,4],
"group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af964ffff5f2977a60a83aa3f9f8b4368":[4,3,1,2],
+"group___color_enums.html#ggadf6bcba67c9573665af20788c4431ae8af964ffff5f2977a60a83aa3f9f8b4368":[6,0,3,1,4],
"group___colorpalletes.html":[4,9],
"group___colorpalletes.html#ga4c24011acb68ef669929a5386af01c54":[6,0,5,0],
"group___colorpalletes.html#ga57a38373661043f74b292976e83c687b":[4,9,0],
"group___colorpalletes.html#ga57a38373661043f74b292976e83c687b":[4,9,1],
"group___colorpalletes.html#ga57a38373661043f74b292976e83c687b":[6,0,5,1],
"group___colorutils.html":[4,4],
-"group___colorutils.html#ga097bfc6a8459d95e8afa8a16b9e6476a":[6,0,7,9],
-"group___colorutils.html#ga0a1bd774cd65ee7b85a20c11212bbd95":[6,0,7,22],
-"group___colorutils.html#ga0d242048cc8978be5ea70a6c33402721":[6,0,7,14],
-"group___colorutils.html#ga2b2bd0aead5cac9ed7a51f7da845bdaa":[6,0,7,16],
-"group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98":[6,0,7,31],
-"group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98":[4,4,5],
-"group___colorutils.html#ga361799a4ba193694ad974079c980430c":[6,0,7,54],
-"group___colorutils.html#ga396996c5e505e459b418330f4386f779":[6,0,7,34],
-"group___colorutils.html#ga39c1068518d7697230930504e57c4d91":[6,0,7,11],
-"group___colorutils.html#ga3a46ed6b7043382df172d7501785033c":[6,0,7,33],
-"group___colorutils.html#ga3ce4f8424098c820a739f95cf86d7663":[6,0,7,7],
-"group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b":[6,0,7,20],
-"group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98":[6,0,7,29],
-"group___colorutils.html#ga4e3dbd54679072011f2be08bcd23c337":[6,0,7,48],
-"group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c":[6,0,7,13],
-"group___colorutils.html#ga565c04e626af4a3ec44bf97edc607b4e":[6,0,7,8],
-"group___colorutils.html#ga56cb3bce8ab7c903689192abedcc9699":[6,0,7,5],
-"group___colorutils.html#ga570fbfd0ac82ef3e4e05d3958b641d7a":[6,0,7,38],
-"group___colorutils.html#ga5c6ee5f16c2e9dcea972adc5b582218c":[6,0,7,4],
-"group___colorutils.html#ga63e89e8505c65e973218d1638dda3b04":[6,0,7,52],
+"group___colorutils.html#ga0402dc727d6a118cf426da017ff42152":[6,0,7,9],
+"group___colorutils.html#ga097bfc6a8459d95e8afa8a16b9e6476a":[6,0,7,11],
+"group___colorutils.html#ga0a1bd774cd65ee7b85a20c11212bbd95":[6,0,7,24],
+"group___colorutils.html#ga0d242048cc8978be5ea70a6c33402721":[6,0,7,16],
+"group___colorutils.html#ga1684ed7eb860c68a915d03e94250e58a":[6,0,7,30],
+"group___colorutils.html#ga1916d32f04256f662ecb0f4d7cff6062":[6,0,7,64],
+"group___colorutils.html#ga2b2bd0aead5cac9ed7a51f7da845bdaa":[6,0,7,18],
+"group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98":[4,4,7],
+"group___colorutils.html#ga3144bb2bb66aeed33e20f4fdd6cc1a98":[6,0,7,36],
+"group___colorutils.html#ga361799a4ba193694ad974079c980430c":[6,0,7,59],
+"group___colorutils.html#ga396996c5e505e459b418330f4386f779":[6,0,7,39],
+"group___colorutils.html#ga39c1068518d7697230930504e57c4d91":[6,0,7,13],
+"group___colorutils.html#ga3a46ed6b7043382df172d7501785033c":[6,0,7,38],
+"group___colorutils.html#ga3ce4f8424098c820a739f95cf86d7663":[6,0,7,8],
+"group___colorutils.html#ga3dbf22d8f71f7a0b54bbfaaf1ef7b44b":[6,0,7,22],
+"group___colorutils.html#ga404d163d8a422cee2df2baac4151ca98":[6,0,7,34],
+"group___colorutils.html#ga4173693bfea9b72f0f73085e9a7318a8":[6,0,7,4],
+"group___colorutils.html#ga4e3dbd54679072011f2be08bcd23c337":[6,0,7,53],
+"group___colorutils.html#ga4f06b4423f71f77346aaf5dabe7dd05c":[6,0,7,15],
+"group___colorutils.html#ga565c04e626af4a3ec44bf97edc607b4e":[6,0,7,10],
+"group___colorutils.html#ga56cb3bce8ab7c903689192abedcc9699":[6,0,7,6],
+"group___colorutils.html#ga570fbfd0ac82ef3e4e05d3958b641d7a":[6,0,7,43],
+"group___colorutils.html#ga5c6ee5f16c2e9dcea972adc5b582218c":[6,0,7,5],
+"group___colorutils.html#ga63e89e8505c65e973218d1638dda3b04":[6,0,7,57],
"group___colorutils.html#ga68d7c7a5522fb7aa113e50351bd620d4":[6,0,7,3],
-"group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88":[6,0,7,35],
-"group___colorutils.html#ga6d07fb779bbeddd59a9025cdc64594d6":[6,0,7,53],
-"group___colorutils.html#ga79c94ea554455e72eabab172cc15456f":[6,0,7,25],
-"group___colorutils.html#ga7c3f73fd65e9a9857870c1835a1c7d85":[6,0,7,10],
-"group___colorutils.html#ga7e4fabd5c919111e7405790b9463aea4":[6,0,7,12],
+"group___colorutils.html#ga6afaa1f712186a4b67445f69871cad88":[6,0,7,40],
+"group___colorutils.html#ga6d07fb779bbeddd59a9025cdc64594d6":[6,0,7,58],
+"group___colorutils.html#ga79c94ea554455e72eabab172cc15456f":[6,0,7,27],
+"group___colorutils.html#ga7c3f73fd65e9a9857870c1835a1c7d85":[6,0,7,12],
+"group___colorutils.html#ga7e4fabd5c919111e7405790b9463aea4":[6,0,7,14],
"group___colorutils.html#ga8ca55222f4aaa94bba41171554225f75":[6,0,7,2],
-"group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83":[6,0,7,56],
-"group___colorutils.html#ga983d672315d5763873005cf1e6ebbe89":[6,0,7,46],
+"group___colorutils.html#ga956be37436f2b9c06c99d24263ef8e83":[6,0,7,61],
+"group___colorutils.html#ga983d672315d5763873005cf1e6ebbe89":[6,0,7,51],
"group___colorutils.html#ga9b4bbbaa572ed85baf5d098dc47a347b":[6,0,7,0],
-"group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335":[6,0,7,50],
-"group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3":[6,0,7,17],
-"group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13":[6,0,7,15],
-"group___colorutils.html#gac020b03041306ed9c859bbdfebe943cf":[6,0,7,26],
-"group___colorutils.html#gac1e25878d16efa6112d907738f525773":[6,0,7,28],
-"group___colorutils.html#gac3052a230febda0693517ce9d12aa452":[6,0,7,41],
-"group___colorutils.html#gac3052a230febda0693517ce9d12aa452":[4,4,7],
-"group___colorutils.html#gac46e65aff3dd6519b33e27f0998f17cd":[6,0,7,21],
-"group___colorutils.html#gac5c3a84d4647d94f946a4696e02d698b":[6,0,7,37],
-"group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530":[6,0,7,44],
-"group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b":[6,0,7,42],
-"group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b":[4,4,8],
-"group___colorutils.html#gac8d8e24305e35eda2e8717c688f36ca4":[6,0,7,49],
-"group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14":[6,0,7,19],
-"group___colorutils.html#gace693b077794f9b6aa80875fdd550a68":[6,0,7,32],
-"group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b":[6,0,7,55],
-"group___colorutils.html#gad07b6fd5973f3c9fc4a084b206aaeabd":[6,0,7,6],
-"group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed":[6,0,7,43],
-"group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed":[4,4,9],
-"group___colorutils.html#gad6431776a18268d286d146158e25cb36":[6,0,7,39],
-"group___colorutils.html#gad6e2224119d7df0c7f6fffd6b603bb27":[6,0,7,51],
-"group___colorutils.html#gad86495ad60871dacb19923fe9ddde262":[6,0,7,36],
+"group___colorutils.html#ga9ddce40dda09fb46db19c55368baf335":[6,0,7,55],
+"group___colorutils.html#gaa91cec87978562a2b22709b47d02cdd7":[6,0,7,66],
+"group___colorutils.html#gaacf0416f9e0438f23f92d0df6c338ea3":[6,0,7,19],
+"group___colorutils.html#gab247fdb68a0ed37779c7bc11b83f6f8a":[6,0,7,65],
+"group___colorutils.html#gabea64e23b31132c325ea0c1fef0d3f13":[6,0,7,17],
+"group___colorutils.html#gac020b03041306ed9c859bbdfebe943cf":[6,0,7,31],
+"group___colorutils.html#gac1e25878d16efa6112d907738f525773":[6,0,7,33],
+"group___colorutils.html#gac3052a230febda0693517ce9d12aa452":[4,4,9],
+"group___colorutils.html#gac3052a230febda0693517ce9d12aa452":[6,0,7,46],
+"group___colorutils.html#gac46e65aff3dd6519b33e27f0998f17cd":[6,0,7,23],
+"group___colorutils.html#gac5c3a84d4647d94f946a4696e02d698b":[6,0,7,42],
+"group___colorutils.html#gac5c6b83ec07d310385a430f9f0336530":[6,0,7,49],
+"group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b":[6,0,7,47],
+"group___colorutils.html#gac84d8820fd175567ba66413dfb8bc63b":[4,4,10],
+"group___colorutils.html#gac8d8e24305e35eda2e8717c688f36ca4":[6,0,7,54],
+"group___colorutils.html#gacb40363ff285a5d816a1cf3096e27c14":[6,0,7,21],
+"group___colorutils.html#gace693b077794f9b6aa80875fdd550a68":[6,0,7,37],
+"group___colorutils.html#gad0356fc313196732e7cd4e64f506f82b":[6,0,7,60],
+"group___colorutils.html#gad07b6fd5973f3c9fc4a084b206aaeabd":[6,0,7,7],
+"group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed":[4,4,11],
+"group___colorutils.html#gad1abf13328e8dd1c483a270af77b17ed":[6,0,7,48],
+"group___colorutils.html#gad6431776a18268d286d146158e25cb36":[6,0,7,44],
+"group___colorutils.html#gad6e2224119d7df0c7f6fffd6b603bb27":[6,0,7,56],
+"group___colorutils.html#gad86495ad60871dacb19923fe9ddde262":[6,0,7,41],
"group___colorutils.html#gae1c82c19302557ba92e9ce0ec2c9ed5b":[6,0,7,1],
-"group___colorutils.html#gae2a0641902f28723263666a128995fef":[6,0,7,58],
-"group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f":[6,0,7,30],
-"group___colorutils.html#gae97f9574ca4fa1a7ab65782b2a804fba":[6,0,7,18],
-"group___colorutils.html#gaea18108bf50282f20a0ecd4213b5ac8c":[6,0,7,57],
-"group___colorutils.html#gaf1bf4d592f1bceacd3754658d25bfd72":[6,0,7,47],
-"group___colorutils.html#gaf34a692bbec05b697dc9c06d8bb0f74f":[6,0,7,45],
-"group___colorutils.html#gaf65fa1b4fedbbd7b8054a71e1b6474b3":[6,0,7,23],
-"group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2":[6,0,7,40],
-"group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2":[4,4,6],
-"group___colorutils.html#gafdfc20fbf9b8e4b71e010a654ec27891":[6,0,7,24],
-"group___colorutils.html#gaff656b0046fac0d40b8eb02941ce1755":[6,0,7,27],
-"group___colorutils.html#gga097bfc6a8459d95e8afa8a16b9e6476aa682d0d9751da3543dc1f84a75040b54c":[6,0,7,9,3],
-"group___colorutils.html#gga097bfc6a8459d95e8afa8a16b9e6476aad258b8913cb0bd8ef8fbfbee5d0ad404":[6,0,7,9,0],
-"group___colorutils.html#gga097bfc6a8459d95e8afa8a16b9e6476aadc8aca2a3622de4cab05ca49cb740d03":[6,0,7,9,2],
-"group___colorutils.html#gga097bfc6a8459d95e8afa8a16b9e6476aaeafbd6b84aa73f663c8ab89f53875306":[6,0,7,9,1],
-"group___colorutils.html#gga565c04e626af4a3ec44bf97edc607b4ea754b67bead50dd3c843e930e9bfa2f00":[6,0,7,8,0],
-"group___colorutils.html#gga565c04e626af4a3ec44bf97edc607b4ea7a36ed58acc67878c9dd1b6a83910f06":[6,0,7,8,1],
+"group___colorutils.html#gae2a0641902f28723263666a128995fef":[6,0,7,63],
+"group___colorutils.html#gae5e137a13a4b6145fe40007328d398f4":[6,0,7,28],
+"group___colorutils.html#gae8c0a05b75034b4a2cae20ddc70ec15f":[6,0,7,35],
+"group___colorutils.html#gae97f9574ca4fa1a7ab65782b2a804fba":[6,0,7,20],
+"group___colorutils.html#gaea18108bf50282f20a0ecd4213b5ac8c":[6,0,7,62],
+"group___colorutils.html#gaea6bd3ab3ec62d88e2dcc7ab2486dcd4":[6,0,7,29],
+"group___colorutils.html#gaeac1e2dbb61ff4b9f21dbed9cb0a1350":[6,0,7,67],
+"group___colorutils.html#gaf1bf4d592f1bceacd3754658d25bfd72":[6,0,7,52],
+"group___colorutils.html#gaf34a692bbec05b697dc9c06d8bb0f74f":[6,0,7,50],
+"group___colorutils.html#gaf65fa1b4fedbbd7b8054a71e1b6474b3":[6,0,7,25],
+"group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2":[4,4,8],
+"group___colorutils.html#gafcc7dac88e25736ebc49a9faf2a1c2e2":[6,0,7,45],
+"group___colorutils.html#gafdfc20fbf9b8e4b71e010a654ec27891":[6,0,7,26],
+"group___colorutils.html#gaff656b0046fac0d40b8eb02941ce1755":[6,0,7,32],
+"group___colorutils.html#gga097bfc6a8459d95e8afa8a16b9e6476aa682d0d9751da3543dc1f84a75040b54c":[6,0,7,11,3],
+"group___colorutils.html#gga097bfc6a8459d95e8afa8a16b9e6476aad258b8913cb0bd8ef8fbfbee5d0ad404":[6,0,7,11,0],
+"group___colorutils.html#gga097bfc6a8459d95e8afa8a16b9e6476aadc8aca2a3622de4cab05ca49cb740d03":[6,0,7,11,2],
+"group___colorutils.html#gga097bfc6a8459d95e8afa8a16b9e6476aaeafbd6b84aa73f663c8ab89f53875306":[6,0,7,11,1],
+"group___colorutils.html#gga565c04e626af4a3ec44bf97edc607b4ea754b67bead50dd3c843e930e9bfa2f00":[6,0,7,10,0],
+"group___colorutils.html#gga565c04e626af4a3ec44bf97edc607b4ea7a36ed58acc67878c9dd1b6a83910f06":[6,0,7,10,1],
"group___dimming.html":[4,5],
"group___dimming.html#ga094bda002b416c66e57521fc93878830":[4,5,0],
"group___dimming.html#ga3f94d2455e0aa92133f77af8747b5914":[4,5,3],
@@ -164,25 +218,26 @@ var NAVTREEINDEX2 =
"group___dimming.html#gae51352a3522bb8eae5e17dbee97aa1aa":[4,5,4],
"group___dimming.html#gae8e36472a70f3016595048532d6c3a2d":[4,5,1],
"group___math.html":[4,6,0],
-"group___math.html#ga0c40c15ab5af36ddabded161941f2091":[4,6,0,12],
-"group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f":[4,6,0,6],
+"group___math.html#ga0c40c15ab5af36ddabded161941f2091":[4,6,0,14],
+"group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f":[4,6,0,8],
"group___math.html#ga2bcd51c47538dbc933999382e272a7a7":[4,6,0,2],
-"group___math.html#ga30558a835c484b418165909118e702b1":[4,6,0,3],
-"group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f":[4,6,0,8],
+"group___math.html#ga30558a835c484b418165909118e702b1":[4,6,0,5],
+"group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f":[4,6,0,10],
"group___math.html#ga4bf8996c4a130e96521495d4a1395a01":[4,6,0,0],
-"group___math.html#ga66ecef97faa5f9b92c49766651c5afe9":[4,6,0,11],
-"group___math.html#ga6bfedf0473d4c3705e8feeb6a25b9ea5":[4,6,0,4],
-"group___math.html#ga9d113e85065df7c9006704ea6b6dcda4":[4,6,0,9],
+"group___math.html#ga5873ff4e986c61d72cb291709190ed25":[4,6,0,3],
+"group___math.html#ga66ecef97faa5f9b92c49766651c5afe9":[4,6,0,13],
+"group___math.html#ga6bfedf0473d4c3705e8feeb6a25b9ea5":[4,6,0,6],
+"group___math.html#ga9d113e85065df7c9006704ea6b6dcda4":[4,6,0,11],
"group___math.html#ga9f1f93145ca1955562b7f50f5db96ac1":[4,6,0,1],
-"group___math.html#gaa5e80daec10cc13bf1eca8b125ee0e88":[4,6,0,5],
-"group___math.html#gaaaa16f47aca46653d51793b1af177587":[4,6,0,10],
-"group___math.html#gadf60ccff727f52078aecdd5873b6f0bc":[4,6,0,7],
+"group___math.html#gaa5e80daec10cc13bf1eca8b125ee0e88":[4,6,0,7],
+"group___math.html#gaaaa16f47aca46653d51793b1af177587":[4,6,0,12],
+"group___math.html#gac09b1bbea319b879bded54d129eb5358":[4,6,0,4],
+"group___math.html#gadf60ccff727f52078aecdd5873b6f0bc":[4,6,0,9],
"group___noise.html":[4,7],
"group___noise.html#ga1e4dba9289b03333697e70d4b7f3b006":[6,0,29,9],
"group___noise.html#ga2a41b0b6fc438305e9fc35307fcd641d":[6,0,29,4],
"group___noise.html#ga34b2848203803e1c7a2de01d7dbcea63":[6,0,29,12],
"group___noise.html#ga46bde35765a7eddbd1049fe49429e94e":[6,0,29,5],
-"group___noise.html#ga55b7c44d1f979e29b51335ca3fe90e1c":[6,0,29,2],
"group___noise.html#ga6c57ed3ea69e819c29602578ecbabd71":[6,0,29,19],
"group___noise.html#ga6fcc17e60eac4b9dbb620f7e354177f1":[6,0,29,1],
"group___noise.html#ga714a0f305e385a60d81a40d1f98b53fc":[6,0,29,0],
@@ -191,63 +246,8 @@ var NAVTREEINDEX2 =
"group___noise.html#ga7967fd7b1a7230a0f7428347c70dac3e":[6,0,29,3],
"group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd":[6,0,29,13],
"group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd":[4,7,0],
+"group___noise.html#ga8bf5ab0f87a6bb79204754ef2a62f960":[6,0,29,2],
"group___noise.html#ga94be5ce8402e6147209f94d6006e8f00":[6,0,29,10],
"group___noise.html#ga9641aa87f0a5557f73004fb73f81bba5":[6,0,29,17],
-"group___noise.html#ga9db885e8cd887367fbf17e70f7d6b7fd":[6,0,29,8],
-"group___noise.html#gaa521ccca6038d7b5e881fe2e8f35d3bc":[6,0,29,16],
-"group___noise.html#gaaa7d79bb9fdaf2c6b315c61c2c951142":[6,0,29,7],
-"group___noise.html#gab9d952a5258caa93c05ebdde0140cf0e":[6,0,29,18],
-"group___noise.html#gabf6fbef9588c6d6ee35b7ad79fe14ace":[6,0,29,21],
-"group___noise.html#gad5f2a2fa9858003b0d692d3700423f39":[6,0,29,11],
-"group___noise.html#gae8a7338d2f14deb11f62086adf81dfe2":[6,0,29,20],
-"group___noise.html#gaee9489effd6415b16569307922fb12b9":[6,0,29,15],
-"group___pixeltypes.html":[4,1],
-"group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8":[4,1,5],
-"group___pixeltypes.html#ga6585ae9f9a54e6a1fcb7c5f985931fb3":[4,1,2],
-"group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5":[4,1,4],
-"group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5":[6,0,14,2],
-"group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5":[6,0,14,1],
-"group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99":[4,1,3],
-"group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99":[4,1,1,0],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0172663a3691565c4012ce5997d880c7":[4,1,1,0,25],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a020b9f869e5279a46ba83c4b109848ee":[4,1,1,0,128],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0381385bc228c735a6b9e4ce848c42e7":[4,1,1,0,117],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a04855e1321cabbde202abbf4f37c00ed":[4,1,1,0,51],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a061a3f0990e01f568807e520d70b4d2e":[4,1,1,0,137],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a063e44e3135a047a866ce8b84af900d2":[4,1,1,0,52],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a06b8c6f05488a2eb5ea0e99e01776247":[4,1,1,0,33],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a074233250f35ba2dd7b790361875fea2":[4,1,1,0,37],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0792281775f35f0314b2d9b7ecdadd83":[4,1,1,0,102],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0842031c2ffb40e6769fbc2da18c525a":[4,1,1,0,4],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a08966db6d19bc731401bec166936580b":[4,1,1,0,142],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a09306ce97ac75af4ba707d6070e20070":[4,1,1,0,124],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0aa03db6472288de29596562522590dc":[4,1,1,0,139],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0c19f62e978c313810b1e1d452a5e21f":[4,1,1,0,19],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0d8283dd35c5082c7f8d5522c66ad67d":[4,1,1,0,95],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0eb660cf80e31fe4430f67773eb9f440":[4,1,1,0,17],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0f5098eb2e8a9458bee9f6923b480c0e":[4,1,1,0,74],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0f9d07f4d0b8376a769b3ad7c66281d5":[4,1,1,0,26],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a1190005afb214be40a6302e82767bcd1":[4,1,1,0,133],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a13be137848056e459d815458a27df692":[4,1,1,0,100],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a13fdeafaedcc28e78b193de9965f3071":[4,1,1,0,111],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a156c0077e866fb53deb0eb1e2c7b0be9":[4,1,1,0,59],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a1b60dcb14d5d819f2b715400b6b2c8b8":[4,1,1,0,9],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a1bd175aab9ed0152cac250f911db0e81":[4,1,1,0,121],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a1c48628099183e2c82e11d5f2a3ce3ce":[4,1,1,0,144],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a1cd587f3a235fce04d15c5115c63f291":[4,1,1,0,99],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a1f48003dee0a649aa6ff945fb6eb993e":[4,1,1,0,81],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a21927430e53394c5261fa4b86da5833e":[4,1,1,0,7],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a2193f3f090afd8f92b933b84bf550d5a":[4,1,1,0,41],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a22541bf68ff7246e103661cb614d1fa0":[4,1,1,0,143],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a24200e1d2fb791755d46fd2cd70ab346":[4,1,1,0,89],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a24ba4acdfddf022178a7ed56877e7a1e":[4,1,1,0,53],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a2799bd3f9097b026f471e0b09ae0c724":[4,1,1,0,105],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a28800a3fc919bb59078464b5283e2d2f":[4,1,1,0,93],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a29620709e3d00ae9244d761ac7b2cb05":[4,1,1,0,127],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a310707ad9adac7a157e8eefd8eeb4181":[4,1,1,0,40],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a31b9c712c50814f8906b210f479c2bdb":[4,1,1,0,62],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a3326988cffb42ee63855e368b1590fdb":[4,1,1,0,138],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a38e4d15e8b39b607c46c044d11774ce6":[4,1,1,0,54],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a395a758056a1da19afe3c9ebf5d565a1":[4,1,1,0,98],
-"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a399de447abec7c91844070f73fed1149":[4,1,1,0,131]
+"group___noise.html#ga9db885e8cd887367fbf17e70f7d6b7fd":[6,0,29,8]
};
diff --git a/docs/3.1/navtreeindex3.js b/docs/3.1/navtreeindex3.js
index 77d8f754..4bbcb5be 100644
--- a/docs/3.1/navtreeindex3.js
+++ b/docs/3.1/navtreeindex3.js
@@ -1,5 +1,61 @@
var NAVTREEINDEX3 =
{
+"group___noise.html#gaa521ccca6038d7b5e881fe2e8f35d3bc":[6,0,29,16],
+"group___noise.html#gaaa7d79bb9fdaf2c6b315c61c2c951142":[6,0,29,7],
+"group___noise.html#gab9d952a5258caa93c05ebdde0140cf0e":[6,0,29,18],
+"group___noise.html#gabf6fbef9588c6d6ee35b7ad79fe14ace":[6,0,29,21],
+"group___noise.html#gad5f2a2fa9858003b0d692d3700423f39":[6,0,29,11],
+"group___noise.html#gae8a7338d2f14deb11f62086adf81dfe2":[6,0,29,20],
+"group___noise.html#gaee9489effd6415b16569307922fb12b9":[6,0,29,15],
+"group___pixeltypes.html":[4,1],
+"group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8":[4,1,5],
+"group___pixeltypes.html#ga6585ae9f9a54e6a1fcb7c5f985931fb3":[4,1,2],
+"group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5":[4,1,4],
+"group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5":[6,0,14,2],
+"group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5":[6,0,14,1],
+"group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99":[4,1,1,0],
+"group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99":[4,1,3],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0172663a3691565c4012ce5997d880c7":[4,1,1,0,25],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a020b9f869e5279a46ba83c4b109848ee":[4,1,1,0,128],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0381385bc228c735a6b9e4ce848c42e7":[4,1,1,0,117],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a04855e1321cabbde202abbf4f37c00ed":[4,1,1,0,51],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a061a3f0990e01f568807e520d70b4d2e":[4,1,1,0,137],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a063e44e3135a047a866ce8b84af900d2":[4,1,1,0,52],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a06b8c6f05488a2eb5ea0e99e01776247":[4,1,1,0,33],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a074233250f35ba2dd7b790361875fea2":[4,1,1,0,37],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0792281775f35f0314b2d9b7ecdadd83":[4,1,1,0,102],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0842031c2ffb40e6769fbc2da18c525a":[4,1,1,0,4],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a08966db6d19bc731401bec166936580b":[4,1,1,0,142],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a09306ce97ac75af4ba707d6070e20070":[4,1,1,0,124],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0aa03db6472288de29596562522590dc":[4,1,1,0,139],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0c19f62e978c313810b1e1d452a5e21f":[4,1,1,0,19],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0d8283dd35c5082c7f8d5522c66ad67d":[4,1,1,0,95],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0eb660cf80e31fe4430f67773eb9f440":[4,1,1,0,17],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0f5098eb2e8a9458bee9f6923b480c0e":[4,1,1,0,74],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a0f9d07f4d0b8376a769b3ad7c66281d5":[4,1,1,0,26],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a1190005afb214be40a6302e82767bcd1":[4,1,1,0,133],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a13be137848056e459d815458a27df692":[4,1,1,0,100],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a13fdeafaedcc28e78b193de9965f3071":[4,1,1,0,111],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a156c0077e866fb53deb0eb1e2c7b0be9":[4,1,1,0,59],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a1b60dcb14d5d819f2b715400b6b2c8b8":[4,1,1,0,9],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a1bd175aab9ed0152cac250f911db0e81":[4,1,1,0,121],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a1c48628099183e2c82e11d5f2a3ce3ce":[4,1,1,0,144],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a1cd587f3a235fce04d15c5115c63f291":[4,1,1,0,99],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a1f48003dee0a649aa6ff945fb6eb993e":[4,1,1,0,81],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a21927430e53394c5261fa4b86da5833e":[4,1,1,0,7],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a2193f3f090afd8f92b933b84bf550d5a":[4,1,1,0,41],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a22541bf68ff7246e103661cb614d1fa0":[4,1,1,0,143],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a24200e1d2fb791755d46fd2cd70ab346":[4,1,1,0,89],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a24ba4acdfddf022178a7ed56877e7a1e":[4,1,1,0,53],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a2799bd3f9097b026f471e0b09ae0c724":[4,1,1,0,105],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a28800a3fc919bb59078464b5283e2d2f":[4,1,1,0,93],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a29620709e3d00ae9244d761ac7b2cb05":[4,1,1,0,127],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a310707ad9adac7a157e8eefd8eeb4181":[4,1,1,0,40],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a31b9c712c50814f8906b210f479c2bdb":[4,1,1,0,62],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a3326988cffb42ee63855e368b1590fdb":[4,1,1,0,138],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a38e4d15e8b39b607c46c044d11774ce6":[4,1,1,0,54],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a395a758056a1da19afe3c9ebf5d565a1":[4,1,1,0,98],
+"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a399de447abec7c91844070f73fed1149":[4,1,1,0,131],
"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a3b48c8058f1b90d745a5c94bdb38fc23":[4,1,1,0,129],
"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a3ed9005a846adca7aace9c4779491093":[4,1,1,0,119],
"group___pixeltypes.html#ggaeb40a08b7cb90c1e21bd408261558b99a3ffe61cf57759867a90ae7e1f9058836":[4,1,1,0,28],
@@ -193,61 +249,5 @@ var NAVTREEINDEX3 =
"lib8tion_8h_source.html":[6,0,27],
"math8_8h_source.html":[6,0,0,0],
"md__p_o_r_t_i_n_g.html":[0],
-"md__r_e_a_d_m_e.html":[1],
-"md_release_notes.html":[2],
-"modules.html":[4],
-"noise_8cpp_source.html":[6,0,28],
-"noise_8h.html":[6,0,29],
-"noise_8h_source.html":[6,0,29],
-"pages.html":[],
-"pixelset_8h_source.html":[6,0,30],
-"pixeltypes_8h_source.html":[6,0,31],
-"platforms_8h_source.html":[6,0,32],
-"power__mgt_8cpp_source.html":[6,0,33],
-"power__mgt_8h_source.html":[6,0,34],
-"random8_8h_source.html":[6,0,0,1],
-"scale8_8h_source.html":[6,0,0,2],
-"struct_c_h_s_v.html":[4,1,0],
-"struct_c_h_s_v.html#a077b49ca9dfa160ea6321e633efd7421":[4,1,0,2],
-"struct_c_h_s_v.html#a16237b1cba507e1f52991f266123cb80":[4,1,0,11],
-"struct_c_h_s_v.html#a17aa128df8d60d2c553cb2c49f79d2d6":[4,1,0,7],
-"struct_c_h_s_v.html#a1cae6431597acc31363c47748da6f32d":[4,1,0,1],
-"struct_c_h_s_v.html#a53265b749b2df39b7a0be28a482dc80c":[4,1,0,6],
-"struct_c_h_s_v.html#a60bec85c29eb484a65b65a6a0e2ea0a3":[4,1,0,9],
-"struct_c_h_s_v.html#a62abbb334cc9f4f839a133e949968297":[4,1,0,3],
-"struct_c_h_s_v.html#a702ca7b9075491f46f7b78e017108ae0":[4,1,0,5],
-"struct_c_h_s_v.html#a8afc69ee96381975f81a7acd892ace1c":[4,1,0,13],
-"struct_c_h_s_v.html#a8b01830b969cf28b156baf1ace0d62a9":[4,1,0,10],
-"struct_c_h_s_v.html#acdb71a233c17387e95d843f15c2ef8a8":[4,1,0,8],
-"struct_c_h_s_v.html#acf5b316e91b4a7758057e0fd7cd3863e":[4,1,0,0],
-"struct_c_h_s_v.html#af366af328d6b295795341d60a1e77732":[4,1,0,12],
-"struct_c_h_s_v.html#af43ae960c609ddb5ccde16693aec0a6b":[4,1,0,4],
-"struct_c_r_g_b.html":[4,1,1],
-"struct_c_r_g_b.html#a070437bde8dbf6ae34934f5f1b72ad32":[4,1,1,11],
-"struct_c_r_g_b.html#a071f7ba57db3d9b88899f4c30c715a6b":[4,1,1,18],
-"struct_c_r_g_b.html#a07ccf0b05534eb13009555f751ec86f4":[4,1,1,23],
-"struct_c_r_g_b.html#a15ece8b6b3b8a54e61716cd2f0ecfd79":[4,1,1,34],
-"struct_c_r_g_b.html#a19d9f31569817a6274338a615e15ed43":[4,1,1,22],
-"struct_c_r_g_b.html#a218446cd8788c0659c5ad2b4c16c425c":[4,1,1,30],
-"struct_c_r_g_b.html#a296fb2b628e6323d78fabcb6feee60ad":[4,1,1,35],
-"struct_c_r_g_b.html#a29d80828c7e4dfc2107b38dd51496234":[4,1,1,24],
-"struct_c_r_g_b.html#a2b232c5686b0f150273a230ff53665ea":[4,1,1,54],
-"struct_c_r_g_b.html#a2f664317f80358ba808cfab70a764e5d":[4,1,1,53],
-"struct_c_r_g_b.html#a324b4ad77f766a55b9c3960b6e8b2815":[4,1,1,31],
-"struct_c_r_g_b.html#a387c1484960be0f72a87c3369cdbba26":[4,1,1,38],
-"struct_c_r_g_b.html#a5b80746e55da30c6a1dad63b3edd5fd4":[4,1,1,42],
-"struct_c_r_g_b.html#a650404deb81cd2785fd9060c076393e6":[4,1,1,37],
-"struct_c_r_g_b.html#a6855b3f3a79778436044c9786ff00b73":[4,1,1,8],
-"struct_c_r_g_b.html#a6ac0b64fb80dde1dc28e74b60da00b82":[4,1,1,6],
-"struct_c_r_g_b.html#a6b0b8f3da2b3b2b44778e142dbae47ed":[4,1,1,16],
-"struct_c_r_g_b.html#a72765c4ea6a2b66aaaffdc8113f4db4a":[4,1,1,1],
-"struct_c_r_g_b.html#a77cbf242403cf6e190c6aa3598129e1c":[4,1,1,14],
-"struct_c_r_g_b.html#a7c8702942ef7696b0eb6435e37347faf":[4,1,1,27],
-"struct_c_r_g_b.html#a7d12a1fba2712ba1153f5b73da6a3e3d":[4,1,1,4],
-"struct_c_r_g_b.html#a838b22bb1632166760934935a309e9d9":[4,1,1,47],
-"struct_c_r_g_b.html#a84965381e0a989945231def23eb19150":[4,1,1,21],
-"struct_c_r_g_b.html#a84d8cb63b6fe8766b8b4bd66a189735f":[4,1,1,40],
-"struct_c_r_g_b.html#a86a495b2fb767196fb6b9e1d202a97c8":[4,1,1,5],
-"struct_c_r_g_b.html#a8827262477c0f018583263fdbfe9a3f4":[4,1,1,51],
-"struct_c_r_g_b.html#a89666a473d004d7b837d634686cdac94":[4,1,1,55]
+"md__r_e_a_d_m_e.html":[1]
};
diff --git a/docs/3.1/navtreeindex4.js b/docs/3.1/navtreeindex4.js
index 0eaf3007..327b926c 100644
--- a/docs/3.1/navtreeindex4.js
+++ b/docs/3.1/navtreeindex4.js
@@ -1,5 +1,61 @@
var NAVTREEINDEX4 =
{
+"md_release_notes.html":[2],
+"modules.html":[4],
+"noise_8cpp_source.html":[6,0,28],
+"noise_8h.html":[6,0,29],
+"noise_8h_source.html":[6,0,29],
+"pages.html":[],
+"pixelset_8h_source.html":[6,0,30],
+"pixeltypes_8h_source.html":[6,0,31],
+"platforms_8h_source.html":[6,0,32],
+"power__mgt_8cpp_source.html":[6,0,33],
+"power__mgt_8h_source.html":[6,0,34],
+"random8_8h_source.html":[6,0,0,1],
+"scale8_8h_source.html":[6,0,0,2],
+"struct_c_h_s_v.html":[4,1,0],
+"struct_c_h_s_v.html#a077b49ca9dfa160ea6321e633efd7421":[4,1,0,2],
+"struct_c_h_s_v.html#a16237b1cba507e1f52991f266123cb80":[4,1,0,11],
+"struct_c_h_s_v.html#a17aa128df8d60d2c553cb2c49f79d2d6":[4,1,0,7],
+"struct_c_h_s_v.html#a1cae6431597acc31363c47748da6f32d":[4,1,0,1],
+"struct_c_h_s_v.html#a53265b749b2df39b7a0be28a482dc80c":[4,1,0,6],
+"struct_c_h_s_v.html#a60bec85c29eb484a65b65a6a0e2ea0a3":[4,1,0,9],
+"struct_c_h_s_v.html#a62abbb334cc9f4f839a133e949968297":[4,1,0,3],
+"struct_c_h_s_v.html#a702ca7b9075491f46f7b78e017108ae0":[4,1,0,5],
+"struct_c_h_s_v.html#a8afc69ee96381975f81a7acd892ace1c":[4,1,0,13],
+"struct_c_h_s_v.html#a8b01830b969cf28b156baf1ace0d62a9":[4,1,0,10],
+"struct_c_h_s_v.html#acdb71a233c17387e95d843f15c2ef8a8":[4,1,0,8],
+"struct_c_h_s_v.html#acf5b316e91b4a7758057e0fd7cd3863e":[4,1,0,0],
+"struct_c_h_s_v.html#af366af328d6b295795341d60a1e77732":[4,1,0,12],
+"struct_c_h_s_v.html#af43ae960c609ddb5ccde16693aec0a6b":[4,1,0,4],
+"struct_c_r_g_b.html":[4,1,1],
+"struct_c_r_g_b.html#a070437bde8dbf6ae34934f5f1b72ad32":[4,1,1,11],
+"struct_c_r_g_b.html#a071f7ba57db3d9b88899f4c30c715a6b":[4,1,1,18],
+"struct_c_r_g_b.html#a07ccf0b05534eb13009555f751ec86f4":[4,1,1,23],
+"struct_c_r_g_b.html#a15ece8b6b3b8a54e61716cd2f0ecfd79":[4,1,1,34],
+"struct_c_r_g_b.html#a19d9f31569817a6274338a615e15ed43":[4,1,1,22],
+"struct_c_r_g_b.html#a218446cd8788c0659c5ad2b4c16c425c":[4,1,1,30],
+"struct_c_r_g_b.html#a296fb2b628e6323d78fabcb6feee60ad":[4,1,1,35],
+"struct_c_r_g_b.html#a29d80828c7e4dfc2107b38dd51496234":[4,1,1,24],
+"struct_c_r_g_b.html#a2b232c5686b0f150273a230ff53665ea":[4,1,1,54],
+"struct_c_r_g_b.html#a2f664317f80358ba808cfab70a764e5d":[4,1,1,53],
+"struct_c_r_g_b.html#a324b4ad77f766a55b9c3960b6e8b2815":[4,1,1,31],
+"struct_c_r_g_b.html#a387c1484960be0f72a87c3369cdbba26":[4,1,1,38],
+"struct_c_r_g_b.html#a5b80746e55da30c6a1dad63b3edd5fd4":[4,1,1,42],
+"struct_c_r_g_b.html#a650404deb81cd2785fd9060c076393e6":[4,1,1,37],
+"struct_c_r_g_b.html#a6855b3f3a79778436044c9786ff00b73":[4,1,1,8],
+"struct_c_r_g_b.html#a6ac0b64fb80dde1dc28e74b60da00b82":[4,1,1,6],
+"struct_c_r_g_b.html#a6b0b8f3da2b3b2b44778e142dbae47ed":[4,1,1,16],
+"struct_c_r_g_b.html#a72765c4ea6a2b66aaaffdc8113f4db4a":[4,1,1,1],
+"struct_c_r_g_b.html#a77cbf242403cf6e190c6aa3598129e1c":[4,1,1,14],
+"struct_c_r_g_b.html#a7c8702942ef7696b0eb6435e37347faf":[4,1,1,27],
+"struct_c_r_g_b.html#a7d12a1fba2712ba1153f5b73da6a3e3d":[4,1,1,4],
+"struct_c_r_g_b.html#a838b22bb1632166760934935a309e9d9":[4,1,1,47],
+"struct_c_r_g_b.html#a84965381e0a989945231def23eb19150":[4,1,1,21],
+"struct_c_r_g_b.html#a84d8cb63b6fe8766b8b4bd66a189735f":[4,1,1,40],
+"struct_c_r_g_b.html#a86a495b2fb767196fb6b9e1d202a97c8":[4,1,1,5],
+"struct_c_r_g_b.html#a8827262477c0f018583263fdbfe9a3f4":[4,1,1,51],
+"struct_c_r_g_b.html#a89666a473d004d7b837d634686cdac94":[4,1,1,55],
"struct_c_r_g_b.html#a8bb881dd011552b412af2845562b0df3":[4,1,1,19],
"struct_c_r_g_b.html#a90bc5170416c8e09fcd468675a319718":[4,1,1,50],
"struct_c_r_g_b.html#a959221eefd8848005cf726d3acd7a1d0":[4,1,1,36],
@@ -28,86 +84,60 @@ var NAVTREEINDEX4 =
"struct_c_r_g_b.html#af1469c62f5a3b4bdf755851606d8e71f":[4,1,1,13],
"struct_c_r_g_b.html#af32e6bf80075fd5b3d8195fff790a036":[4,1,1,29],
"struct_c_r_g_b.html#af5e0ce520027b5bc5b8aa106c113119c":[4,1,1,48],
-"struct_multi_pixel_controller.html":[5,0,33],
-"struct_multi_pixel_controller.html#a008c610152750552f0cab513a71add4f":[5,0,33,31],
-"struct_multi_pixel_controller.html#a00e21a3c908f0e21b1e05e845ba8699c":[5,0,33,41],
-"struct_multi_pixel_controller.html#a02d2880fd93339e1865b99920ec352ff":[5,0,33,35],
-"struct_multi_pixel_controller.html#a0fb73042b0664237168dfc4c619301f8":[5,0,33,36],
-"struct_multi_pixel_controller.html#a15003391803d041b91bc3a12cdf04efb":[5,0,33,22],
-"struct_multi_pixel_controller.html#a266ce7479122f0ab79d130ea12cdbcef":[5,0,33,6],
-"struct_multi_pixel_controller.html#a32666eb7fadb98c41cb040afc0c98173":[5,0,33,40],
-"struct_multi_pixel_controller.html#a35143a9f281172838311904205d45ec4":[5,0,33,16],
-"struct_multi_pixel_controller.html#a35143a9f281172838311904205d45ec4":[5,0,33,18],
-"struct_multi_pixel_controller.html#a35143a9f281172838311904205d45ec4":[5,0,33,17],
-"struct_multi_pixel_controller.html#a3b4cabaa8efcacda588a216d2f867ba2":[5,0,33,45],
-"struct_multi_pixel_controller.html#a3ee1510a283d143475da3db47484b19d":[5,0,33,28],
-"struct_multi_pixel_controller.html#a404bb484c52ad2343c026b9cd9604307":[5,0,33,42],
-"struct_multi_pixel_controller.html#a455d6c4da606bf61ae708548b88bba05":[5,0,33,14],
-"struct_multi_pixel_controller.html#a455d6c4da606bf61ae708548b88bba05":[5,0,33,15],
-"struct_multi_pixel_controller.html#a4715a8a0d7f2feb043ca2058a49c214e":[5,0,33,24],
-"struct_multi_pixel_controller.html#a4917d462222489afb3e80ee7483b885b":[5,0,33,32],
-"struct_multi_pixel_controller.html#a4e971dc5a63e58d8e68425e1968c24b8":[5,0,33,8],
-"struct_multi_pixel_controller.html#a512c0e21c07cea7d87dc62397a824ff6":[5,0,33,23],
-"struct_multi_pixel_controller.html#a5eba2f947b5ecb52063a41879536c620":[5,0,33,13],
-"struct_multi_pixel_controller.html#a5eba2f947b5ecb52063a41879536c620":[5,0,33,12],
-"struct_multi_pixel_controller.html#a6485e4c2914a9e22bd0ea41d8b7c33d0":[5,0,33,44],
-"struct_multi_pixel_controller.html#a676d5701d8f1d8e9951142e68440a4bc":[5,0,33,47],
-"struct_multi_pixel_controller.html#a6b77f489465b4a790f67c166db12c140":[5,0,33,29],
-"struct_multi_pixel_controller.html#a6d2b34f8f4ff00e5762e953df30b1aff":[5,0,33,39],
-"struct_multi_pixel_controller.html#a6d7708c1ed497931868fc3619bf29c2e":[5,0,33,1],
-"struct_multi_pixel_controller.html#a744ad917886ac61cfee6a0ae8454685c":[5,0,33,3],
-"struct_multi_pixel_controller.html#a7b55eb14102e1424c91086e91b93789f":[5,0,33,9],
-"struct_multi_pixel_controller.html#a82f58cb5c7e5ed415a49d486376998c3":[5,0,33,37],
-"struct_multi_pixel_controller.html#a8ba8ae0a6725568d7180fe325252b22d":[5,0,33,11],
-"struct_multi_pixel_controller.html#a9120a6905c419a131469f0a69734d4e0":[5,0,33,38],
-"struct_multi_pixel_controller.html#a947244c9f7b2d18aa811fdef27177ec1":[5,0,33,21],
-"struct_multi_pixel_controller.html#a9c5f3c2b6b0db71dc82fed8b0b2d0e5d":[5,0,33,43],
-"struct_multi_pixel_controller.html#aa2a8106eb1be28b347103bacfcd926d6":[5,0,33,34],
-"struct_multi_pixel_controller.html#aa5e050359173d1d1b1dacde78d971ed8":[5,0,33,20],
-"struct_multi_pixel_controller.html#aaadfce087b61a83f1e1c68bade03cd46":[5,0,33,27],
-"struct_multi_pixel_controller.html#aacbff452068e5269686fcfbecf289d6b":[5,0,33,7],
-"struct_multi_pixel_controller.html#ab02a58637bec3c338a5428df8eb83504":[5,0,33,26],
-"struct_multi_pixel_controller.html#ab7c352d2db53f2421476db3d9a44dddc":[5,0,33,33],
-"struct_multi_pixel_controller.html#ac67219ff65e29e90aefa65ad26f9f543":[5,0,33,0],
-"struct_multi_pixel_controller.html#ad00a64d394ba9b5b64d8e9056620a043":[5,0,33,30],
-"struct_multi_pixel_controller.html#ae1f02fa336d402b2035d99d17349477e":[5,0,33,25],
-"struct_multi_pixel_controller.html#ae2fd28b0c739fc1eb5d1123f94cf125b":[5,0,33,10],
-"struct_multi_pixel_controller.html#ae3839cfa5abdd2a6b799eba825e65e95":[5,0,33,5],
-"struct_multi_pixel_controller.html#ae5cc48ad7320edd6ed872bc74ea74b14":[5,0,33,2],
-"struct_multi_pixel_controller.html#af010e36003697589dc55c111d837afa9":[5,0,33,4],
-"struct_multi_pixel_controller.html#af12b53cbc40ab33735fc1076359fc15f":[5,0,33,46],
-"struct_multi_pixel_controller.html#afe444bbcbee1cc37c1d144a979181224":[5,0,33,19],
-"struct_pixel_controller.html":[5,0,39],
-"struct_pixel_controller.html#a0441a5caab1fd894613be45fc5cc74ad":[5,0,39,26],
-"struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b":[5,0,39,6],
-"struct_pixel_controller.html#a22aa861b047d60d43c5937eda51c7ec8":[5,0,39,3],
-"struct_pixel_controller.html#a265a7697099e35c4a4a548984eb84032":[5,0,39,24],
-"struct_pixel_controller.html#a33c4de106c80a9a3933811b557d5dee5":[5,0,39,11],
-"struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3":[5,0,39,21],
-"struct_pixel_controller.html#a3f97ce4b173c2f17d9bf9702d6dec7fe":[5,0,39,18],
-"struct_pixel_controller.html#a404558c7da7f3f6fae768bc45af9dc03":[5,0,39,8],
-"struct_pixel_controller.html#a40d956bed201260a641c11e935fdff42":[5,0,39,27],
-"struct_pixel_controller.html#a4b413825c12904d3f04d812ad960d037":[5,0,39,17],
-"struct_pixel_controller.html#a59c41a4f80039f205f172c275e3c508f":[5,0,39,23],
-"struct_pixel_controller.html#a5faf76b184df3d0093fec384bf37df1b":[5,0,39,12],
-"struct_pixel_controller.html#a649f80d1b1aff0eaa5915434262075b7":[5,0,39,20],
-"struct_pixel_controller.html#a7f1aec11829806f13924a36827a41736":[5,0,39,15],
-"struct_pixel_controller.html#a81403c8810658d3c41cb210703bbfc00":[5,0,39,1],
-"struct_pixel_controller.html#a880a808e9b20cf6e4dd8c09e7b33cdbb":[5,0,39,19],
-"struct_pixel_controller.html#a900493d7e9e345d0cb6e602186151e73":[5,0,39,9],
-"struct_pixel_controller.html#a9b0bc80097821046dbda7bbbf38dd7df":[5,0,39,10],
-"struct_pixel_controller.html#a9cd0843d8305cbd78b4d9597ed9b2081":[5,0,39,2],
-"struct_pixel_controller.html#aa4b13583d00a99418f6088638c542100":[5,0,39,16],
-"struct_pixel_controller.html#aacbf92a326415e94748f1e1f053e565c":[5,0,39,13],
-"struct_pixel_controller.html#aae50dffd933b8e1505315b7d2797a219":[5,0,39,4],
-"struct_pixel_controller.html#ab13ac71f27f83c847c836c3f9854a062":[5,0,39,5],
-"struct_pixel_controller.html#abc5438b06f84610a0fe20418c0f30290":[5,0,39,29],
-"struct_pixel_controller.html#ac0641ad95fffe0a165b9f2ba1953393b":[5,0,39,28],
-"struct_pixel_controller.html#accb48b27c47c742a8b13f97ae1d82d32":[5,0,39,22],
-"struct_pixel_controller.html#ad4adb6e0bc116f2b25780afec889bd88":[5,0,39,25],
-"struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71":[5,0,39,0],
-"struct_pixel_controller.html#af96ec8426561793f6f95ccbeef68767d":[5,0,39,14],
-"struct_pixel_controller.html#afbe76a814e6bec02854dd4df167567b4":[5,0,39,7],
+"struct_pixel_controller.html":[5,0,41],
+"struct_pixel_controller.html#a0ba4ffda92340e8af5b5c14917e82e38":[5,0,41,19],
+"struct_pixel_controller.html#a0ba4ffda92340e8af5b5c14917e82e38":[5,0,41,17],
+"struct_pixel_controller.html#a0ba4ffda92340e8af5b5c14917e82e38":[5,0,41,18],
+"struct_pixel_controller.html#a0f4eb594a337bc3a739e65b2a1e5c401":[5,0,41,44],
+"struct_pixel_controller.html#a12ada103e6a5ffb6eac939ea63e881e5":[5,0,41,28],
+"struct_pixel_controller.html#a147cb63da3c1b6d53d90858db39b9bc4":[5,0,41,20],
+"struct_pixel_controller.html#a16d32039be01c47dc83bc3445d5d6b27":[5,0,41,4],
+"struct_pixel_controller.html#a1eb4eccf2c92e7a818a756abe62e745e":[5,0,41,25],
+"struct_pixel_controller.html#a21e8c0ac9427f1b1e6e5517581ef86b6":[5,0,41,14],
+"struct_pixel_controller.html#a22d6434dc71ac5129f4e0fd43c0f12ee":[5,0,41,8],
+"struct_pixel_controller.html#a261471135b391617f6470eaea8681139":[5,0,41,33],
+"struct_pixel_controller.html#a29beeff954233b9cf8a7f8df951d4dac":[5,0,41,12],
+"struct_pixel_controller.html#a2a787a13655480d5c363f17147a09929":[5,0,41,23],
+"struct_pixel_controller.html#a2a8441da873d3a094c15c337b34d3e43":[5,0,41,35],
+"struct_pixel_controller.html#a30f6c6e3dbb3d9ea1f148a4d77f221b5":[5,0,41,38],
+"struct_pixel_controller.html#a329cebe498f2d119cf10e0e6a7b5f7c5":[5,0,41,47],
+"struct_pixel_controller.html#a358944f031ee8b8536d2f48ca670de77":[5,0,41,36],
+"struct_pixel_controller.html#a41bf3d91b9cf0269ae08b47eb86d5387":[5,0,41,43],
+"struct_pixel_controller.html#a4a8f661276ae24be964cacc9ff7fb9cf":[5,0,41,31],
+"struct_pixel_controller.html#a4b9ed10c5cb92344f482ec9cb5291bb5":[5,0,41,16],
+"struct_pixel_controller.html#a53537a46cfbb83f10c9b26044ac96f5e":[5,0,41,29],
+"struct_pixel_controller.html#a54bedae9117a19b242b73682c5d1a182":[5,0,41,45],
+"struct_pixel_controller.html#a5631b8132087ca68008d85a891c82d2b":[5,0,41,2],
+"struct_pixel_controller.html#a564bd9ea03fd6247e02d0c847f89082c":[5,0,41,21],
+"struct_pixel_controller.html#a576c3a3eac363fb83e475e142bbe586d":[5,0,41,39],
+"struct_pixel_controller.html#a5ea77404f9ea28134291af923a79c82f":[5,0,41,48],
+"struct_pixel_controller.html#a66ddba664c4b6b4bfc6968a5fa332981":[5,0,41,15],
+"struct_pixel_controller.html#a6e1491364f944af0eee408fc8dffef58":[5,0,41,46],
+"struct_pixel_controller.html#a7b5452230608de2816669c6e2e6772d9":[5,0,41,50],
+"struct_pixel_controller.html#a7e2edbee638944aacc0c330700259fc2":[5,0,41,7],
+"struct_pixel_controller.html#a802a3dadccd652a9f1db490f7ba64655":[5,0,41,3],
+"struct_pixel_controller.html#a85acf3ef47eaeaa6723b7cf5ea4f071d":[5,0,41,1],
+"struct_pixel_controller.html#a92d6838d1c476c583302276b4d30dc0f":[5,0,41,51],
+"struct_pixel_controller.html#a93ca22b517d8773e8cf2c134e037656e":[5,0,41,6],
+"struct_pixel_controller.html#a952aea61541fe652dd88701f34623d86":[5,0,41,10],
+"struct_pixel_controller.html#a981df5be1edbd7caca3fc061f975e5a7":[5,0,41,52],
+"struct_pixel_controller.html#a9ba367b1689ad3fc6c1cac3174faf341":[5,0,41,42],
+"struct_pixel_controller.html#a9c8fa28fd867a4048796b4f88146d332":[5,0,41,49],
+"struct_pixel_controller.html#aa685641133594892cad325ccc0bd031c":[5,0,41,41],
+"struct_pixel_controller.html#aa86847022436988b28343a76bab0db4c":[5,0,41,34],
+"struct_pixel_controller.html#aabaf168a65316323011e850b52aaf5d1":[5,0,41,11],
+"struct_pixel_controller.html#aaefb6aa81ccbec86a682c6c9ee233d73":[5,0,41,30],
+"struct_pixel_controller.html#ab8c6cc3afd672eb983f0e450412c41ab":[5,0,41,5],
+"struct_pixel_controller.html#ac43a466314a3aeb4ec78582b1d61c3a2":[5,0,41,37],
+"struct_pixel_controller.html#ad24fcf47a4e75f105990ffb1b663b694":[5,0,41,22],
+"struct_pixel_controller.html#ad90b3914752258965fc1a18b3ffadebb":[5,0,41,40],
+"struct_pixel_controller.html#add4088b8193b526ee1f90cafba718cbb":[5,0,41,26],
+"struct_pixel_controller.html#ae39136bd50c7747ae29b986da1b11646":[5,0,41,32],
+"struct_pixel_controller.html#ae44229e20fb4ba4473b057dcda87122e":[5,0,41,0],
+"struct_pixel_controller.html#ae8b82f2b0304f423b5954f71f7fe70da":[5,0,41,13],
+"struct_pixel_controller.html#aed9847b7a8e1b9c220995c33fdac8be1":[5,0,41,9],
+"struct_pixel_controller.html#af0dc0b7dea6953d9b183831d0b82557c":[5,0,41,24],
+"struct_pixel_controller.html#afe0ed605c37888899329dcf20f371a86":[5,0,41,27],
"structsub4.html":[4,0,1],
"structsub4.html#a05ac5ed449c60006c191d62dbc67e4c9":[4,0,1,19],
"structsub4.html#a11e81dc1eb753bbd1874177967fe808f":[4,0,1,30],
@@ -178,8 +208,8 @@ var NAVTREEINDEX4 =
"unionjust8bits.html#acda11b6492d3f6f39ed252bfdbc5293f":[4,0,0,2],
"unionjust8bits.html#ad67c956d73da25b76e389fa617306b04":[4,0,0,7],
"unionjust8bits.html#ae4f5c1652bd536727fd481c140d7c3df":[4,0,0,1],
-"uniont_bytes_for_long.html":[5,0,59],
-"uniont_bytes_for_long.html#a2eb9fa677e575e2b0b9c63b4e15b80f2":[5,0,59,1],
-"uniont_bytes_for_long.html#ad4c360b406149839c91f36ae19a61acf":[5,0,59,0],
+"uniont_bytes_for_long.html":[5,0,63],
+"uniont_bytes_for_long.html#a2eb9fa677e575e2b0b9c63b4e15b80f2":[5,0,63,1],
+"uniont_bytes_for_long.html#ad4c360b406149839c91f36ae19a61acf":[5,0,63,0],
"wiring_8cpp_source.html":[6,0,35]
};
diff --git a/docs/3.1/noise_8cpp_source.html b/docs/3.1/noise_8cpp_source.html
index 6e4d4bae..f26b14ac 100644
--- a/docs/3.1/noise_8cpp_source.html
+++ b/docs/3.1/noise_8cpp_source.html
@@ -131,750 +131,793 @@ $(document).ready(function(){initNavTree('noise_8cpp_source.html','');});
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; 138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180,151</div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; };</div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// #define FADE_12</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#define FADE_16</span></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="preprocessor">#ifdef FADE_12</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#define FADE logfade12</span></div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define LERP(a,b,u) lerp15by12(a,b,u)</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define FADE(x) scale16(x,x)</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#define LERP(a,b,u) lerp15by16(a,b,u)</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">static</span> int16_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) grad16(uint8_t hash, int16_t x, int16_t y, int16_t z) {</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#if 0</span></div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">switch</span>(hash &amp; 0xF) {</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">case</span> 0: <span class="keywordflow">return</span> (( x) + ( y))&gt;&gt;1;</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">case</span> 1: <span class="keywordflow">return</span> ((-x) + ( y))&gt;&gt;1;</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">case</span> 2: <span class="keywordflow">return</span> (( x) + (-y))&gt;&gt;1;</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">case</span> 3: <span class="keywordflow">return</span> ((-x) + (-y))&gt;&gt;1;</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">case</span> 4: <span class="keywordflow">return</span> (( x) + ( z))&gt;&gt;1;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">case</span> 5: <span class="keywordflow">return</span> ((-x) + ( z))&gt;&gt;1;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">case</span> 6: <span class="keywordflow">return</span> (( x) + (-z))&gt;&gt;1;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">case</span> 7: <span class="keywordflow">return</span> ((-x) + (-z))&gt;&gt;1;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">case</span> 8: <span class="keywordflow">return</span> (( y) + ( z))&gt;&gt;1;</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">case</span> 9: <span class="keywordflow">return</span> ((-y) + ( z))&gt;&gt;1;</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">case</span> 10: <span class="keywordflow">return</span> (( y) + (-z))&gt;&gt;1;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">case</span> 11: <span class="keywordflow">return</span> ((-y) + (-z))&gt;&gt;1;</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">case</span> 12: <span class="keywordflow">return</span> (( y) + ( x))&gt;&gt;1;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">case</span> 13: <span class="keywordflow">return</span> ((-y) + ( z))&gt;&gt;1;</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">case</span> 14: <span class="keywordflow">return</span> (( y) + (-x))&gt;&gt;1;</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">case</span> 15: <span class="keywordflow">return</span> ((-y) + (-z))&gt;&gt;1;</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">#else</span></div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; hash = hash&amp;15;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; int16_t u = hash&lt;8?x:y;</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; int16_t v = hash&lt;4?y:hash==12||hash==14?x:z;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span>(hash&amp;1) { u = -u; }</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(hash&amp;2) { v = -v; }</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="keywordflow">return</span> (u+v)&gt;&gt;1;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">static</span> int16_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) grad16(uint8_t hash, int16_t x, int16_t y) {</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; hash = hash &amp; 7;</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; int16_t u,v;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span>(hash &lt; 4) { u = x; v = y; } <span class="keywordflow">else</span> { u = y; v = x; }</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(hash&amp;1) { u = -u; }</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span>(hash&amp;2) { v = -v; }</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="keywordflow">return</span> (u+v)&gt;&gt;1;</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"> 75</span>&#160;<span class="keyword">static</span> int16_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) grad16(uint8_t hash, int16_t x) {</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; hash = hash &amp; 15;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; int16_t u,v;</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span>(hash &gt; 8) { u=x;v=x; }</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(hash &lt; 4) { u=x;v=1; }</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">else</span> { u=1;v=x; }</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span>(hash&amp;1) { u = -u; }</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span>(hash&amp;2) { v = -v; }</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="keywordflow">return</span> (u+v)&gt;&gt;1;</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment">// selectBasedOnHashBit performs this:</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment">// result = (hash &amp; (1&lt;&lt;bitnumber)) ? a : b</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="comment">// but with an AVR asm version that&#39;s smaller and quicker than C</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment">// (and probably not worth including in lib8tion)</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword">static</span> int8_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) selectBasedOnHashBit(uint8_t hash, uint8_t bitnumber, int8_t a, int8_t b) {</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; int8_t result;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#if !defined(__AVR__)</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; result = (hash &amp; (1&lt;&lt;bitnumber)) ? a : b;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="stringliteral">&quot;mov %[result],%[a] \n\t&quot;</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="stringliteral">&quot;sbrs %[hash],%[bitnumber] \n\t&quot;</span></div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="stringliteral">&quot;mov %[result],%[b] \n\t&quot;</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; : [result] <span class="stringliteral">&quot;=r&quot;</span> (result)</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; : [hash] <span class="stringliteral">&quot;r&quot;</span> (hash),</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; [bitnumber] <span class="stringliteral">&quot;M&quot;</span> (bitnumber),</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; [a] <span class="stringliteral">&quot;r&quot;</span> (a),</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; [b] <span class="stringliteral">&quot;r&quot;</span> (b)</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; );</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> result;</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;</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="keyword">static</span> int8_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) grad8(uint8_t hash, int8_t x, int8_t y, int8_t z) {</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#if 0</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">switch</span>(hash &amp; 0xF) {</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">case</span> 0: <span class="keywordflow">return</span> (( x) + ( y))&gt;&gt;1;</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">case</span> 1: <span class="keywordflow">return</span> ((-x) + ( y))&gt;&gt;1;</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">case</span> 2: <span class="keywordflow">return</span> (( x) + (-y))&gt;&gt;1;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">case</span> 3: <span class="keywordflow">return</span> ((-x) + (-y))&gt;&gt;1;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">case</span> 4: <span class="keywordflow">return</span> (( x) + ( z))&gt;&gt;1;</div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">case</span> 5: <span class="keywordflow">return</span> ((-x) + ( z))&gt;&gt;1;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">case</span> 6: <span class="keywordflow">return</span> (( x) + (-z))&gt;&gt;1;</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">case</span> 7: <span class="keywordflow">return</span> ((-x) + (-z))&gt;&gt;1;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">case</span> 8: <span class="keywordflow">return</span> (( y) + ( z))&gt;&gt;1;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">case</span> 9: <span class="keywordflow">return</span> ((-y) + ( z))&gt;&gt;1;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">case</span> 10: <span class="keywordflow">return</span> (( y) + (-z))&gt;&gt;1;</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">case</span> 11: <span class="keywordflow">return</span> ((-y) + (-z))&gt;&gt;1;</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">case</span> 12: <span class="keywordflow">return</span> (( y) + ( x))&gt;&gt;1;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">case</span> 13: <span class="keywordflow">return</span> ((-y) + ( z))&gt;&gt;1;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">case</span> 14: <span class="keywordflow">return</span> (( y) + (-x))&gt;&gt;1;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">case</span> 15: <span class="keywordflow">return</span> ((-y) + (-z))&gt;&gt;1;</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;<span class="preprocessor">#else</span></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; hash &amp;= 0xF;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; int8_t u, v;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="comment">//u = (hash&amp;8)?y:x;</span></div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; u = selectBasedOnHashBit( hash, 3, y, x);</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">#if 1</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; v = hash&lt;4?y:hash==12||hash==14?x:z;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// Verbose version for analysis; generates idenitical code.</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span>( hash &lt; 4) { <span class="comment">// 00 01 02 03</span></div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; v = y;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span>( hash==12 || hash==14) { <span class="comment">// 0C 0E</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; v = x;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; v = z; <span class="comment">// 04 05 06 07 08 09 0A 0B 0D 0F</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span>(hash&amp;1) { u = -u; }</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(hash&amp;2) { v = -v; }</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___math.html#ga30558a835c484b418165909118e702b1">avg7</a>(u,v);</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;}</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="keyword">static</span> int8_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) grad8(uint8_t hash, int8_t x, int8_t y)</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="comment">// since the tests below can be done bit-wise on the bottom</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="comment">// three bits, there&#39;s no need to mask off the higher bits</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">// hash = hash &amp; 7;</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; int8_t u,v;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span>( hash &amp; 4) {</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; u = y; v = x;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; u = x; v = y;</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">if</span>(hash&amp;1) { u = -u; }</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">if</span>(hash&amp;2) { v = -v; }</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="keywordflow">return</span> <a class="code" href="group___math.html#ga30558a835c484b418165909118e702b1">avg7</a>(u,v);</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;}</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="keyword">static</span> int8_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) grad8(uint8_t hash, int8_t x)</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="comment">// since the tests below can be done bit-wise on the bottom</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">// four bits, there&#39;s no need to mask off the higher bits</span></div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="comment">// hash = hash &amp; 15;</span></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; int8_t u,v;</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span>(hash &amp; 8) {</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; u=x; v=x;</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span>(hash &amp; 4) {</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; u=1; v=x;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; u=x; v=1;</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="keywordflow">if</span>(hash&amp;1) { u = -u; }</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span>(hash&amp;2) { v = -v; }</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="keywordflow">return</span> <a class="code" href="group___math.html#ga30558a835c484b418165909118e702b1">avg7</a>(u,v);</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;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="preprocessor">#ifdef FADE_12</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;uint16_t logfade12(uint16_t val) {</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(val,val)&gt;&gt;4;</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="keyword">static</span> int16_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) lerp15by12( int16_t a, int16_t b, <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> frac)</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;{</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="comment">//if(1) return (lerp(frac,a,b));</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; int16_t result;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; uint16_t delta = b - a;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(delta,frac&lt;&lt;4);</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; result = a + scaled;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; uint16_t delta = a - b;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(delta,frac&lt;&lt;4);</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; result = a - scaled;</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="keywordflow">return</span> result;</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">#endif</span></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;<span class="keyword">static</span> int8_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) lerp7by8( int8_t a, int8_t b, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> frac)</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;{</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// int8_t delta = b - a;</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="comment">// int16_t prod = (uint16_t)delta * (uint16_t)frac;</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="comment">// int8_t scaled = prod &gt;&gt; 8;</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="comment">// int8_t result = a + scaled;</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="comment">// return result;</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; int8_t result;</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; uint8_t delta = b - a;</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; uint8_t scaled = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( delta, frac);</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; result = a + scaled;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; uint8_t delta = a - b;</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; uint8_t scaled = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( delta, frac);</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; result = a - scaled;</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="keywordflow">return</span> result;</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"><a class="line" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd"> 245</a></span>&#160;int16_t <a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(uint32_t x, uint32_t y, uint32_t z)</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;{</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">// Find the unit cube containing the point</span></div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; uint8_t X = (x&gt;&gt;16)&amp;0xFF;</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; uint8_t Y = (y&gt;&gt;16)&amp;0xFF;</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; uint8_t Z = (z&gt;&gt;16)&amp;0xFF;</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">// Hash cube corner coordinates</span></div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; uint8_t A = P(X)+Y;</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; uint8_t AA = P(A)+Z;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; uint8_t AB = P(A+1)+Z;</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; uint8_t B = P(X+1)+Y;</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; uint8_t BA = P(B) + Z;</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; uint8_t BB = P(B+1)+Z;</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// Get the relative position of the point in the cube</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; uint16_t u = x &amp; 0xFFFF;</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; uint16_t v = y &amp; 0xFFFF;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; uint16_t w = z &amp; 0xFFFF;</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="comment">// Get a signed version of the above for the grad function</span></div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; int16_t xx = (u &gt;&gt; 1) &amp; 0x7FFF;</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; int16_t yy = (v &gt;&gt; 1) &amp; 0x7FFF;</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; int16_t zz = (w &gt;&gt; 1) &amp; 0x7FFF;</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; uint16_t N = 0x8000L;</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; u = FADE(u); v = FADE(v); w = FADE(w);</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="comment">// skip the log fade adjustment for the moment, otherwise here we would</span></div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="comment">// adjust fade values for u,v,w</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; int16_t X1 = LERP(grad16(P(AA), xx, yy, zz), grad16(P(BA), xx - N, yy, zz), u);</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; int16_t X2 = LERP(grad16(P(AB), xx, yy-N, zz), grad16(P(BB), xx - N, yy - N, zz), u);</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; int16_t X3 = LERP(grad16(P(AA+1), xx, yy, zz-N), grad16(P(BA+1), xx - N, yy, zz-N), u);</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; int16_t X4 = LERP(grad16(P(AB+1), xx, yy-N, zz-N), grad16(P(BB+1), xx - N, yy - N, zz - N), u);</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; int16_t Y1 = LERP(X1,X2,v);</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; int16_t Y2 = LERP(X3,X4,v);</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; int16_t ans = LERP(Y1,Y2,w);</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="keywordflow">return</span> ans;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;}</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;uint16_t inoise16(uint32_t x, uint32_t y, uint32_t z) {</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; int32_t ans = <a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(x,y,z);</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; ans = ans + 19052L;</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; uint32_t pan = ans;</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">return</span> (pan*220L)&gt;&gt;7;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="comment">// // return scale16by8(pan,220)&lt;&lt;1;</span></div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">// return ((inoise16_raw(x,y,z)+19052)*220)&gt;&gt;7;</span></div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="comment">// return scale16by8(inoise16_raw(x,y,z)+19052,220)&lt;&lt;1;</span></div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;}</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;int16_t <a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(uint32_t x, uint32_t y)</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;{</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="comment">// Find the unit cube containing the point</span></div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; uint8_t X = x&gt;&gt;16;</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; uint8_t Y = y&gt;&gt;16;</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="preprocessor">#if FASTLED_NOISE_ALLOW_AVERAGE_TO_OVERFLOW == 1</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#define AVG15(U,V) (((U)+(V)) &gt;&gt; 1)</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// See if we should use the inlined avg15 for AVR with MUL instruction</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#if defined(__AVR__) &amp;&amp; (LIB8_ATTINY == 0)</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define AVG15(U,V) (avg15_inline_avr_mul((U),(V)))</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">// inlined copy of avg15 for AVR with MUL instruction; cloned from math8.h</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">// Forcing this inline in the 3-D 16bit noise produces a 12% speedup overall,</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">// at a cost of just +8 bytes of net code size.</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">static</span> int16_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) avg15_inline_avr_mul( int16_t i, int16_t j)</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="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="comment">/* first divide j by 2, throwing away lowest bit */</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="stringliteral">&quot;asr %B[j] \n\t&quot;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="stringliteral">&quot;ror %A[j] \n\t&quot;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">/* now divide i by 2, with lowest bit going into C */</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="stringliteral">&quot;asr %B[i] \n\t&quot;</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="stringliteral">&quot;ror %A[i] \n\t&quot;</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">/* add j + C to i */</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="stringliteral">&quot;adc %A[i], %A[j] \n\t&quot;</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="stringliteral">&quot;adc %B[i], %B[j] \n\t&quot;</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; : [i] <span class="stringliteral">&quot;+a&quot;</span> (i)</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; : [j] <span class="stringliteral">&quot;a&quot;</span> (j) );</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">return</span> i;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#define AVG15(U,V) (avg15((U),(V)))</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif</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="comment">//</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">// #define FADE_12</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#define FADE_16</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#ifdef FADE_12</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#define FADE logfade12</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#define LERP(a,b,u) lerp15by12(a,b,u)</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#define FADE(x) scale16(x,x)</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#define LERP(a,b,u) lerp15by16(a,b,u)</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">static</span> int16_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) grad16(uint8_t hash, int16_t x, int16_t y, int16_t z) {</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#if 0</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">switch</span>(hash &amp; 0xF) {</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">case</span> 0: <span class="keywordflow">return</span> (( x) + ( y))&gt;&gt;1;</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">case</span> 1: <span class="keywordflow">return</span> ((-x) + ( y))&gt;&gt;1;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">case</span> 2: <span class="keywordflow">return</span> (( x) + (-y))&gt;&gt;1;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">case</span> 3: <span class="keywordflow">return</span> ((-x) + (-y))&gt;&gt;1;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">case</span> 4: <span class="keywordflow">return</span> (( x) + ( z))&gt;&gt;1;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">case</span> 5: <span class="keywordflow">return</span> ((-x) + ( z))&gt;&gt;1;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">case</span> 6: <span class="keywordflow">return</span> (( x) + (-z))&gt;&gt;1;</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">case</span> 7: <span class="keywordflow">return</span> ((-x) + (-z))&gt;&gt;1;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">case</span> 8: <span class="keywordflow">return</span> (( y) + ( z))&gt;&gt;1;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">case</span> 9: <span class="keywordflow">return</span> ((-y) + ( z))&gt;&gt;1;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">case</span> 10: <span class="keywordflow">return</span> (( y) + (-z))&gt;&gt;1;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">case</span> 11: <span class="keywordflow">return</span> ((-y) + (-z))&gt;&gt;1;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">case</span> 12: <span class="keywordflow">return</span> (( y) + ( x))&gt;&gt;1;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">case</span> 13: <span class="keywordflow">return</span> ((-y) + ( z))&gt;&gt;1;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">case</span> 14: <span class="keywordflow">return</span> (( y) + (-x))&gt;&gt;1;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">case</span> 15: <span class="keywordflow">return</span> ((-y) + (-z))&gt;&gt;1;</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="preprocessor">#else</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; hash = hash&amp;15;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; int16_t u = hash&lt;8?x:y;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; int16_t v = hash&lt;4?y:hash==12||hash==14?x:z;</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span>(hash&amp;1) { u = -u; }</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(hash&amp;2) { v = -v; }</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="keywordflow">return</span> AVG15(u,v);</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;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="keyword">static</span> int16_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) grad16(uint8_t hash, int16_t x, int16_t y) {</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; hash = hash &amp; 7;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; int16_t u,v;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">if</span>(hash &lt; 4) { u = x; v = y; } <span class="keywordflow">else</span> { u = y; v = x; }</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span>(hash&amp;1) { u = -u; }</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span>(hash&amp;2) { v = -v; }</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="keywordflow">return</span> AVG15(u,v);</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword">static</span> int16_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) grad16(uint8_t hash, int16_t x) {</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; hash = hash &amp; 15;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; int16_t u,v;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span>(hash &gt; 8) { u=x;v=x; }</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(hash &lt; 4) { u=x;v=1; }</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">else</span> { u=1;v=x; }</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span>(hash&amp;1) { u = -u; }</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">if</span>(hash&amp;2) { v = -v; }</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="keywordflow">return</span> AVG15(u,v);</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;}</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment">// selectBasedOnHashBit performs this:</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment">// result = (hash &amp; (1&lt;&lt;bitnumber)) ? a : b</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment">// but with an AVR asm version that&#39;s smaller and quicker than C</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="comment">// (and probably not worth including in lib8tion)</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="keyword">static</span> int8_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) selectBasedOnHashBit(uint8_t hash, uint8_t bitnumber, int8_t a, int8_t b) {</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; int8_t result;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#if !defined(__AVR__)</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; result = (hash &amp; (1&lt;&lt;bitnumber)) ? a : b;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="stringliteral">&quot;mov %[result],%[a] \n\t&quot;</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="stringliteral">&quot;sbrs %[hash],%[bitnumber] \n\t&quot;</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="stringliteral">&quot;mov %[result],%[b] \n\t&quot;</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; : [result] <span class="stringliteral">&quot;=r&quot;</span> (result)</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; : [hash] <span class="stringliteral">&quot;r&quot;</span> (hash),</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; [bitnumber] <span class="stringliteral">&quot;M&quot;</span> (bitnumber),</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; [a] <span class="stringliteral">&quot;r&quot;</span> (a),</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; [b] <span class="stringliteral">&quot;r&quot;</span> (b)</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;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword">static</span> int8_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) grad8(uint8_t hash, int8_t x, int8_t y, int8_t z) {</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="preprocessor">#if 0</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">switch</span>(hash &amp; 0xF) {</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">case</span> 0: <span class="keywordflow">return</span> (( x) + ( y))&gt;&gt;1;</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">case</span> 1: <span class="keywordflow">return</span> ((-x) + ( y))&gt;&gt;1;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">case</span> 2: <span class="keywordflow">return</span> (( x) + (-y))&gt;&gt;1;</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">case</span> 3: <span class="keywordflow">return</span> ((-x) + (-y))&gt;&gt;1;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">case</span> 4: <span class="keywordflow">return</span> (( x) + ( z))&gt;&gt;1;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">case</span> 5: <span class="keywordflow">return</span> ((-x) + ( z))&gt;&gt;1;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">case</span> 6: <span class="keywordflow">return</span> (( x) + (-z))&gt;&gt;1;</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">case</span> 7: <span class="keywordflow">return</span> ((-x) + (-z))&gt;&gt;1;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">case</span> 8: <span class="keywordflow">return</span> (( y) + ( z))&gt;&gt;1;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">case</span> 9: <span class="keywordflow">return</span> ((-y) + ( z))&gt;&gt;1;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">case</span> 10: <span class="keywordflow">return</span> (( y) + (-z))&gt;&gt;1;</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">case</span> 11: <span class="keywordflow">return</span> ((-y) + (-z))&gt;&gt;1;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">case</span> 12: <span class="keywordflow">return</span> (( y) + ( x))&gt;&gt;1;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">case</span> 13: <span class="keywordflow">return</span> ((-y) + ( z))&gt;&gt;1;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">case</span> 14: <span class="keywordflow">return</span> (( y) + (-x))&gt;&gt;1;</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">case</span> 15: <span class="keywordflow">return</span> ((-y) + (-z))&gt;&gt;1;</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="preprocessor">#else</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; hash &amp;= 0xF;</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; int8_t u, v;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">//u = (hash&amp;8)?y:x;</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; u = selectBasedOnHashBit( hash, 3, y, x);</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="preprocessor">#if 1</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; v = hash&lt;4?y:hash==12||hash==14?x:z;</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">// Verbose version for analysis; generates idenitical code.</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span>( hash &lt; 4) { <span class="comment">// 00 01 02 03</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; v = y;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span>( hash==12 || hash==14) { <span class="comment">// 0C 0E</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; v = x;</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; v = z; <span class="comment">// 04 05 06 07 08 09 0A 0B 0D 0F</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor">#endif</span></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="keywordflow">if</span>(hash&amp;1) { u = -u; }</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">if</span>(hash&amp;2) { v = -v; }</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="keywordflow">return</span> <a class="code" href="group___math.html#ga30558a835c484b418165909118e702b1">avg7</a>(u,v);</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="preprocessor">#endif</span></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">static</span> int8_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) grad8(uint8_t hash, int8_t x, int8_t y)</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; <span class="comment">// since the tests below can be done bit-wise on the bottom</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="comment">// three bits, there&#39;s no need to mask off the higher bits</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="comment">// hash = hash &amp; 7;</span></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; int8_t u,v;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span>( hash &amp; 4) {</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; u = y; v = x;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; u = x; v = y;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span>(hash&amp;1) { u = -u; }</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span>(hash&amp;2) { v = -v; }</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; <span class="keywordflow">return</span> <a class="code" href="group___math.html#ga30558a835c484b418165909118e702b1">avg7</a>(u,v);</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"> 210</span>&#160;<span class="keyword">static</span> int8_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) grad8(uint8_t hash, int8_t x)</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="comment">// since the tests below can be done bit-wise on the bottom</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">// four bits, there&#39;s no need to mask off the higher bits</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="comment">// hash = hash &amp; 15;</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; int8_t u,v;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span>(hash &amp; 8) {</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; u=x; v=x;</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span>(hash &amp; 4) {</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; u=1; v=x;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; u=x; v=1;</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;</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span>(hash&amp;1) { u = -u; }</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">if</span>(hash&amp;2) { v = -v; }</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; <span class="keywordflow">return</span> <a class="code" href="group___math.html#ga30558a835c484b418165909118e702b1">avg7</a>(u,v);</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;</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 FADE_12</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;uint16_t logfade12(uint16_t val) {</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(val,val)&gt;&gt;4;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;}</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="keyword">static</span> int16_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) lerp15by12( int16_t a, int16_t b, <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> frac)</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; <span class="comment">//if(1) return (lerp(frac,a,b));</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; int16_t result;</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; uint16_t delta = b - a;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(delta,frac&lt;&lt;4);</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; result = a + scaled;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; uint16_t delta = a - b;</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; uint16_t scaled = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(delta,frac&lt;&lt;4);</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; result = a - scaled;</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="keywordflow">return</span> result;</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;<span class="preprocessor">#endif</span></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="keyword">static</span> int8_t <span class="keyword">inline</span> <a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline)) lerp7by8( int8_t a, int8_t b, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> frac)</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; <span class="comment">// int8_t delta = b - a;</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="comment">// int16_t prod = (uint16_t)delta * (uint16_t)frac;</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// int8_t scaled = prod &gt;&gt; 8;</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="comment">// int8_t result = a + scaled;</span></div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// return result;</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; int8_t result;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">if</span>( b &gt; a) {</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; uint8_t delta = b - a;</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; uint8_t scaled = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( delta, frac);</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; result = a + scaled;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; uint8_t delta = a - b;</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; uint8_t scaled = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( delta, frac);</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; result = a - scaled;</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span> result;</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;</div>
+<div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd"> 276</a></span>&#160;int16_t <a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(uint32_t x, uint32_t y, uint32_t z)</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="comment">// Find the unit cube containing the point</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; uint8_t X = (x&gt;&gt;16)&amp;0xFF;</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; uint8_t Y = (y&gt;&gt;16)&amp;0xFF;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; uint8_t Z = (z&gt;&gt;16)&amp;0xFF;</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="comment">// Hash cube corner coordinates</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; uint8_t A = P(X)+Y;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; uint8_t AA = P(A)+Z;</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; uint8_t AB = P(A+1)+Z;</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; uint8_t B = P(X+1)+Y;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; uint8_t BA = P(B) + Z;</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; uint8_t BB = P(B+1)+Z;</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">// Get the relative position of the point in the cube</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; uint16_t u = x &amp; 0xFFFF;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; uint16_t v = y &amp; 0xFFFF;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; uint16_t w = z &amp; 0xFFFF;</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="comment">// Get a signed version of the above for the grad function</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; int16_t xx = (u &gt;&gt; 1) &amp; 0x7FFF;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; int16_t yy = (v &gt;&gt; 1) &amp; 0x7FFF;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; int16_t zz = (w &gt;&gt; 1) &amp; 0x7FFF;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; uint16_t N = 0x8000L;</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; u = FADE(u); v = FADE(v); w = FADE(w);</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</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; <span class="comment">// Hash cube corner coordinates</span></div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; uint8_t A = P(X)+Y;</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; uint8_t AA = P(A);</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; uint8_t AB = P(A+1);</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; uint8_t B = P(X+1)+Y;</div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; uint8_t BA = P(B);</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; uint8_t BB = P(B+1);</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="comment">// Get the relative position of the point in the cube</span></div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; uint16_t u = x &amp; 0xFFFF;</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; uint16_t v = y &amp; 0xFFFF;</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="comment">// skip the log fade adjustment for the moment, otherwise here we would</span></div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="comment">// adjust fade values for u,v,w</span></div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; int16_t X1 = LERP(grad16(P(AA), xx, yy, zz), grad16(P(BA), xx - N, yy, zz), u);</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; int16_t X2 = LERP(grad16(P(AB), xx, yy-N, zz), grad16(P(BB), xx - N, yy - N, zz), u);</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; int16_t X3 = LERP(grad16(P(AA+1), xx, yy, zz-N), grad16(P(BA+1), xx - N, yy, zz-N), u);</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; int16_t X4 = LERP(grad16(P(AB+1), xx, yy-N, zz-N), grad16(P(BB+1), xx - N, yy - N, zz - N), u);</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; int16_t Y1 = LERP(X1,X2,v);</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; int16_t Y2 = LERP(X3,X4,v);</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; int16_t ans = LERP(Y1,Y2,w);</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="comment">// Get a signed version of the above for the grad function</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; int16_t xx = (u &gt;&gt; 1) &amp; 0x7FFF;</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; int16_t yy = (v &gt;&gt; 1) &amp; 0x7FFF;</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; uint16_t N = 0x8000L;</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; u = FADE(u); v = FADE(v);</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; int16_t X1 = LERP(grad16(P(AA), xx, yy), grad16(P(BA), xx - N, yy), u);</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; int16_t X2 = LERP(grad16(P(AB), xx, yy-N), grad16(P(BB), xx - N, yy - N), u);</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; int16_t ans = LERP(X1,X2,v);</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="keywordflow">return</span> ans;</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;uint16_t inoise16(uint32_t x, uint32_t y) {</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; int32_t ans = <a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(x,y);</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; ans = ans + 17308L;</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; uint32_t pan = ans;</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">return</span> (pan*242L)&gt;&gt;7;</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="comment">// return (uint32_t)(((int32_t)inoise16_raw(x,y)+(uint32_t)17308)*242)&gt;&gt;7;</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="comment">// return scale16by8(inoise16_raw(x,y)+17308,242)&lt;&lt;1;</span></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="l00341"></a><span class="lineno"> 341</span>&#160;int16_t <a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(uint32_t x)</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="comment">// Find the unit cube containing the point</span></div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; uint8_t X = x&gt;&gt;16;</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="comment">// Hash cube corner coordinates</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; uint8_t A = P(X);</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; uint8_t AA = P(A);</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; uint8_t B = P(X+1);</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; uint8_t BA = P(B);</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="comment">// Get the relative position of the point in the cube</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; uint16_t u = x &amp; 0xFFFF;</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="comment">// Get a signed version of the above for the grad function</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; int16_t xx = (u &gt;&gt; 1) &amp; 0x7FFF;</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> ans;</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;</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;uint16_t inoise16(uint32_t x, uint32_t y, uint32_t z) {</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; int32_t ans = <a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(x,y,z);</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; ans = ans + 19052L;</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; uint32_t pan = ans;</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="comment">// pan = (ans * 220L) &gt;&gt; 7. That&#39;s the same as:</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="comment">// pan = (ans * 440L) &gt;&gt; 8. And this way avoids a 7X four-byte shift-loop on AVR.</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="comment">// Identical math, except for the highest bit, which we don&#39;t care about anyway,</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="comment">// since we&#39;re returning the &#39;middle&#39; 16 out of a 32-bit value anyway.</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; pan *= 440L;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">return</span> (pan&gt;&gt;8);</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; <span class="comment">// // return scale16by8(pan,220)&lt;&lt;1;</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="comment">// return ((inoise16_raw(x,y,z)+19052)*220)&gt;&gt;7;</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="comment">// return scale16by8(inoise16_raw(x,y,z)+19052,220)&lt;&lt;1;</span></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="l00336"></a><span class="lineno"> 336</span>&#160;int16_t <a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(uint32_t x, uint32_t y)</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; <span class="comment">// Find the unit cube containing the point</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; uint8_t X = x&gt;&gt;16;</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; uint8_t Y = y&gt;&gt;16;</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; <span class="comment">// Hash cube corner coordinates</span></div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; uint8_t A = P(X)+Y;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; uint8_t AA = P(A);</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; uint8_t AB = P(A+1);</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; uint8_t B = P(X+1)+Y;</div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; uint8_t BA = P(B);</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; uint8_t BB = P(B+1);</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="comment">// Get the relative position of the point in the cube</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; uint16_t u = x &amp; 0xFFFF;</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; uint16_t v = y &amp; 0xFFFF;</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="comment">// Get a signed version of the above for the grad function</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; int16_t xx = (u &gt;&gt; 1) &amp; 0x7FFF;</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; int16_t yy = (v &gt;&gt; 1) &amp; 0x7FFF;</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; uint16_t N = 0x8000L;</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; u = FADE(u);</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; u = FADE(u); v = FADE(v);</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; int16_t ans = LERP(grad16(P(AA), xx), grad16(P(BA), xx - N), u);</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">return</span> ans;</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;}</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; int16_t X1 = LERP(grad16(P(AA), xx, yy), grad16(P(BA), xx - N, yy), u);</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; int16_t X2 = LERP(grad16(P(AB), xx, yy-N), grad16(P(BB), xx - N, yy - N), u);</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; int16_t ans = LERP(X1,X2,v);</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;uint16_t inoise16(uint32_t x) {</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">return</span> ((uint32_t)((int32_t)<a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(x) + 17308L)) &lt;&lt; 1;</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;</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;int8_t inoise8_raw(uint16_t x, uint16_t y, uint16_t z)</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; <span class="comment">// Find the unit cube containing the point</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; uint8_t X = x&gt;&gt;8;</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; uint8_t Y = y&gt;&gt;8;</div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; uint8_t Z = z&gt;&gt;8;</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">// Hash cube corner coordinates</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; uint8_t A = P(X)+Y;</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; uint8_t AA = P(A)+Z;</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; uint8_t AB = P(A+1)+Z;</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; uint8_t B = P(X+1)+Y;</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; uint8_t BA = P(B) + Z;</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; uint8_t BB = P(B+1)+Z;</div>
-<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="comment">// Get the relative position of the point in the cube</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; uint8_t u = x;</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; uint8_t v = y;</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; uint8_t w = z;</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="comment">// Get a signed version of the above for the grad function</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; int8_t xx = ((uint8_t)(x)&gt;&gt;1) &amp; 0x7F;</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; int8_t yy = ((uint8_t)(y)&gt;&gt;1) &amp; 0x7F;</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; int8_t zz = ((uint8_t)(z)&gt;&gt;1) &amp; 0x7F;</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; uint8_t N = 0x80;</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">// u = FADE(u); v = FADE(v); w = FADE(w);</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; u = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>(u,u); v = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>(v,v); w = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(w,w);</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; int8_t X1 = lerp7by8(grad8(P(AA), xx, yy, zz), grad8(P(BA), xx - N, yy, zz), u);</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; int8_t X2 = lerp7by8(grad8(P(AB), xx, yy-N, zz), grad8(P(BB), xx - N, yy - N, zz), u);</div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; int8_t X3 = lerp7by8(grad8(P(AA+1), xx, yy, zz-N), grad8(P(BA+1), xx - N, yy, zz-N), u);</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; int8_t X4 = lerp7by8(grad8(P(AB+1), xx, yy-N, zz-N), grad8(P(BB+1), xx - N, yy - N, zz - N), u);</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">return</span> ans;</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"> 369</span>&#160;uint16_t inoise16(uint32_t x, uint32_t y) {</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; int32_t ans = <a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(x,y);</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; ans = ans + 17308L;</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; uint32_t pan = ans;</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="comment">// pan = (ans * 242L) &gt;&gt; 7. That&#39;s the same as:</span></div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="comment">// pan = (ans * 484L) &gt;&gt; 8. And this way avoids a 7X four-byte shift-loop on AVR.</span></div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="comment">// Identical math, except for the highest bit, which we don&#39;t care about anyway,</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="comment">// since we&#39;re returning the &#39;middle&#39; 16 out of a 32-bit value anyway.</span></div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; pan *= 484L;</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">return</span> (pan&gt;&gt;8);</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">// return (uint32_t)(((int32_t)inoise16_raw(x,y)+(uint32_t)17308)*242)&gt;&gt;7;</span></div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="comment">// return scale16by8(inoise16_raw(x,y)+17308,242)&lt;&lt;1;</span></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;</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;int16_t <a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(uint32_t x)</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="comment">// Find the unit cube containing the point</span></div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; uint8_t X = x&gt;&gt;16;</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="comment">// Hash cube corner coordinates</span></div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; uint8_t A = P(X);</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; uint8_t AA = P(A);</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; uint8_t B = P(X+1);</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; uint8_t BA = P(B);</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="comment">// Get the relative position of the point in the cube</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; uint16_t u = x &amp; 0xFFFF;</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">// Get a signed version of the above for the grad function</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; int16_t xx = (u &gt;&gt; 1) &amp; 0x7FFF;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; uint16_t N = 0x8000L;</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; u = FADE(u);</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; int8_t Y1 = lerp7by8(X1,X2,v);</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; int8_t Y2 = lerp7by8(X3,X4,v);</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; int8_t ans = lerp7by8(Y1,Y2,w);</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; int16_t ans = LERP(grad16(P(AA), xx), grad16(P(BA), xx - N), u);</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">return</span> ans;</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; <span class="keywordflow">return</span> ans;</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;uint8_t inoise8(uint16_t x, uint16_t y, uint16_t z) {</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(76+(inoise8_raw(x,y,z)),215)&lt;&lt;1;</div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;}</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;int8_t inoise8_raw(uint16_t x, uint16_t y)</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;{</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="comment">// Find the unit cube containing the point</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; uint8_t X = x&gt;&gt;8;</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; uint8_t Y = y&gt;&gt;8;</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; <span class="comment">// Hash cube corner coordinates</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; uint8_t A = P(X)+Y;</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; uint8_t AA = P(A);</div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; uint8_t AB = P(A+1);</div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; uint8_t B = P(X+1)+Y;</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; uint8_t BA = P(B);</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; uint8_t BB = P(B+1);</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="comment">// Get the relative position of the point in the cube</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; uint8_t u = x;</div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; uint8_t v = y;</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; <span class="comment">// Get a signed version of the above for the grad function</span></div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; int8_t xx = ((uint8_t)(x)&gt;&gt;1) &amp; 0x7F;</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; int8_t yy = ((uint8_t)(y)&gt;&gt;1) &amp; 0x7F;</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;uint16_t inoise16(uint32_t x) {</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">return</span> ((uint32_t)((int32_t)<a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(x) + 17308L)) &lt;&lt; 1;</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;int8_t inoise8_raw(uint16_t x, uint16_t y, uint16_t z)</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="comment">// Find the unit cube containing the point</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; uint8_t X = x&gt;&gt;8;</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; uint8_t Y = y&gt;&gt;8;</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; uint8_t Z = z&gt;&gt;8;</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">// Hash cube corner coordinates</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; uint8_t A = P(X)+Y;</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; uint8_t AA = P(A)+Z;</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; uint8_t AB = P(A+1)+Z;</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; uint8_t B = P(X+1)+Y;</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; uint8_t BA = P(B) + Z;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; uint8_t BB = P(B+1)+Z;</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="comment">// Get the relative position of the point in the cube</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; uint8_t u = x;</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; uint8_t v = y;</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; uint8_t w = z;</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="comment">// Get a signed version of the above for the grad function</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; int8_t xx = ((uint8_t)(x)&gt;&gt;1) &amp; 0x7F;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; int8_t yy = ((uint8_t)(y)&gt;&gt;1) &amp; 0x7F;</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; int8_t zz = ((uint8_t)(z)&gt;&gt;1) &amp; 0x7F;</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; uint8_t N = 0x80;</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="comment">// u = FADE(u); v = FADE(v); w = FADE(w);</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; u = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>(u,u); v = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(v,v);</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; u = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>(u,u); v = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>(v,v); w = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(w,w);</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; int8_t X1 = lerp7by8(grad8(P(AA), xx, yy), grad8(P(BA), xx - N, yy), u);</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; int8_t X2 = lerp7by8(grad8(P(AB), xx, yy-N), grad8(P(BB), xx - N, yy - N), u);</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; int8_t ans = lerp7by8(X1,X2,v);</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; int8_t X1 = lerp7by8(grad8(P(AA), xx, yy, zz), grad8(P(BA), xx - N, yy, zz), u);</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; int8_t X2 = lerp7by8(grad8(P(AB), xx, yy-N, zz), grad8(P(BB), xx - N, yy - N, zz), u);</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; int8_t X3 = lerp7by8(grad8(P(AA+1), xx, yy, zz-N), grad8(P(BA+1), xx - N, yy, zz-N), u);</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; int8_t X4 = lerp7by8(grad8(P(AB+1), xx, yy-N, zz-N), grad8(P(BB+1), xx - N, yy - N, zz - N), u);</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="keywordflow">return</span> ans;</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="comment">// return scale8((70+(ans)),234)&lt;&lt;1;</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;</div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;uint8_t inoise8(uint16_t x, uint16_t y) {</div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(69+inoise8_raw(x,y),237)&lt;&lt;1;</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; int8_t Y1 = lerp7by8(X1,X2,v);</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; int8_t Y2 = lerp7by8(X3,X4,v);</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; int8_t ans = lerp7by8(Y1,Y2,w);</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">return</span> ans;</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;}</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;int8_t inoise8_raw(uint16_t x)</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="comment">// Find the unit cube containing the point</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; uint8_t X = x&gt;&gt;8;</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="comment">// Hash cube corner coordinates</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; uint8_t A = P(X);</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; uint8_t AA = P(A);</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; uint8_t B = P(X+1);</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; uint8_t BA = P(B);</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="comment">// Get the relative position of the point in the cube</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; uint8_t u = x;</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="comment">// Get a signed version of the above for the grad function</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; int8_t xx = ((uint8_t)(x)&gt;&gt;1) &amp; 0x7F;</div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; uint8_t N = 0x80;</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;uint8_t inoise8(uint16_t x, uint16_t y, uint16_t z) {</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(76+(inoise8_raw(x,y,z)),215)&lt;&lt;1;</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;int8_t inoise8_raw(uint16_t x, uint16_t y)</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="comment">// Find the unit cube containing the point</span></div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; uint8_t X = x&gt;&gt;8;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; uint8_t Y = y&gt;&gt;8;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="comment">// Hash cube corner coordinates</span></div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; uint8_t A = P(X)+Y;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; uint8_t AA = P(A);</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; uint8_t AB = P(A+1);</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; uint8_t B = P(X+1)+Y;</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; uint8_t BA = P(B);</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; uint8_t BB = P(B+1);</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; u = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(u,u);</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; int8_t ans = lerp7by8(grad8(P(AA), xx), grad8(P(BA), xx - N), u);</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="comment">// Get the relative position of the point in the cube</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; uint8_t u = x;</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; uint8_t v = y;</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">return</span> ans;</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="comment">// return scale8((70+(ans)),234)&lt;&lt;1;</span></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;</div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;uint8_t inoise8(uint16_t x) {</div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(69+inoise8_raw(x), 255)&lt;&lt;1;</div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;}</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="comment">// Get a signed version of the above for the grad function</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; int8_t xx = ((uint8_t)(x)&gt;&gt;1) &amp; 0x7F;</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; int8_t yy = ((uint8_t)(y)&gt;&gt;1) &amp; 0x7F;</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; uint8_t N = 0x80;</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">// u = FADE(u); v = FADE(v); w = FADE(w);</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; u = <a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a>(u,u); v = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(v,v);</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">// struct q44 {</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="comment">// uint8_t i:4;</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="comment">// uint8_t f:4;</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;<span class="comment">// q44(uint8_t _i, uint8_t _f) {i=_i; f=_f; }</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;</div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<span class="comment">// uint32_t mul44(uint32_t v, q44 mulby44) {</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;<span class="comment">// return (v *mulby44.i) + ((v * mulby44.f) &gt;&gt; 4);</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="comment">// }</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">// uint16_t mul44_16(uint16_t v, q44 mulby44) {</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;<span class="comment">// return (v *mulby44.i) + ((v * mulby44.f) &gt;&gt; 4);</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;<span class="comment">// }</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="keywordtype">void</span> fill_raw_noise8(uint8_t *pData, uint8_t num_points, uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> scale, uint16_t time) {</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; uint32_t _xx = x;</div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; uint32_t scx = scale;</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> o = 0; o &lt; octaves; o++) {</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0,xx=_xx; i &lt; num_points; i++, xx+=scx) {</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; pData[i] = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>(pData[i],inoise8(xx,time)&gt;&gt;o);</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; _xx &lt;&lt;= 1;</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; scx &lt;&lt;= 1;</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="l00485"></a><span class="lineno"> 485</span>&#160; int8_t X1 = lerp7by8(grad8(P(AA), xx, yy), grad8(P(BA), xx - N, yy), u);</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; int8_t X2 = lerp7by8(grad8(P(AB), xx, yy-N), grad8(P(BB), xx - N, yy - N), u);</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; int8_t ans = lerp7by8(X1,X2,v);</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> ans;</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="comment">// return scale8((70+(ans)),234)&lt;&lt;1;</span></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;</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;uint8_t inoise8(uint16_t x, uint16_t y) {</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(69+inoise8_raw(x,y),237)&lt;&lt;1;</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;int8_t inoise8_raw(uint16_t x)</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">// Find the unit cube containing the point</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; uint8_t X = x&gt;&gt;8;</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="comment">// Hash cube corner coordinates</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; uint8_t A = P(X);</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; uint8_t AA = P(A);</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; uint8_t B = P(X+1);</div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; uint8_t BA = P(B);</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">// Get the relative position of the point in the cube</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; uint8_t u = x;</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="keywordtype">void</span> fill_raw_noise16into8(uint8_t *pData, uint8_t num_points, uint8_t octaves, uint32_t x, <span class="keywordtype">int</span> scale, uint32_t time) {</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; uint32_t _xx = x;</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; uint32_t scx = scale;</div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> o = 0; o &lt; octaves; o++) {</div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0,xx=_xx; i &lt; num_points; i++, xx+=scx) {</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; uint32_t accum = (inoise16(xx,time))&gt;&gt;o;</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; accum += (pData[i]&lt;&lt;8);</div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">if</span>(accum &gt; 65535) { accum = 65535; }</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; pData[i] = accum&gt;&gt;8;</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; _xx &lt;&lt;= 1;</div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; scx &lt;&lt;= 1;</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; }</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="comment">// Get a signed version of the above for the grad function</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; int8_t xx = ((uint8_t)(x)&gt;&gt;1) &amp; 0x7F;</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; uint8_t N = 0x80;</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; u = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(u,u);</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; int8_t ans = lerp7by8(grad8(P(AA), xx), grad8(P(BA), xx - N), u);</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="keywordflow">return</span> ans;</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="comment">// return scale8((70+(ans)),234)&lt;&lt;1;</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;}</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;uint8_t inoise8(uint16_t x) {</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(69+inoise8_raw(x), 255)&lt;&lt;1;</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="keywordtype">void</span> fill_raw_2dnoise8(uint8_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, <a class="code" href="classq.html">q44</a> freq44, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amplitude, <span class="keywordtype">int</span> skip, uint16_t x, <span class="keywordtype">int</span> scalex, uint16_t y, <span class="keywordtype">int</span> scaley, uint16_t time) {</div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">if</span>(octaves &gt; 1) {</div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; fill_raw_2dnoise8(pData, width, height, octaves-1, freq44, amplitude, skip+1, x*freq44, freq44 * scalex, y*freq44, freq44 * scaley, time);</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="comment">// amplitude is always 255 on the lowest level</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; amplitude=255;</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; scalex *= skip;</div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; scaley *= skip;</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; <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> invamp = 255-amplitude;</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; uint16_t xx = x;</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; height; i++, y+=scaley) {</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; uint8_t *pRow = pData + (i*width);</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; xx = x;</div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; width; j++, xx+=scalex) {</div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; uint8_t noise_base = inoise8(xx,y,time);</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; noise_base = (0x80 &amp; noise_base) ? (noise_base - 127) : (127 - noise_base);</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; noise_base = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(noise_base&lt;&lt;1,amplitude);</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">if</span>(skip == 1) {</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; pRow[j] = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(pRow[j],invamp) + noise_base;</div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ii = i; ii&lt;(i+skip) &amp;&amp; ii&lt;height; ii++) {</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; uint8_t *pRow = pData + (ii*width);</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> jj=j; jj&lt;(j+skip) &amp;&amp; jj&lt;width; jj++) {</div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; pRow[jj] = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(pRow[jj],invamp) + noise_base;</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; }</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; }</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;<span class="keywordtype">void</span> fill_raw_2dnoise8(uint8_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> scalex, uint16_t y, <span class="keywordtype">int</span> scaley, uint16_t time) {</div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; fill_raw_2dnoise8(pData, width, height, octaves, <a class="code" href="group__lib8tion.html#ga85082c3ed8843d32076222e82d72f80d">q44</a>(2,0), 128, 1, x, scalex, y, scaley, time);</div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;}</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="comment">// struct q44 {</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<span class="comment">// uint8_t i:4;</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;<span class="comment">// uint8_t f:4;</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;<span class="comment">// q44(uint8_t _i, uint8_t _f) {i=_i; f=_f; }</span></div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;<span class="comment">// };</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="comment">// uint32_t mul44(uint32_t v, q44 mulby44) {</span></div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="comment">// return (v *mulby44.i) + ((v * mulby44.f) &gt;&gt; 4);</span></div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;<span class="comment">// }</span></div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="comment">// uint16_t mul44_16(uint16_t v, q44 mulby44) {</span></div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;<span class="comment">// return (v *mulby44.i) + ((v * mulby44.f) &gt;&gt; 4);</span></div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="comment">// }</span></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="keywordtype">void</span> fill_raw_noise8(uint8_t *pData, uint8_t num_points, uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> scale, uint16_t time) {</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; uint32_t _xx = x;</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; uint32_t scx = scale;</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> o = 0; o &lt; octaves; o++) {</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0,xx=_xx; i &lt; num_points; i++, xx+=scx) {</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; pData[i] = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>(pData[i],inoise8(xx,time)&gt;&gt;o);</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;</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; _xx &lt;&lt;= 1;</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; scx &lt;&lt;= 1;</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;</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="keywordtype">void</span> fill_raw_noise16into8(uint8_t *pData, uint8_t num_points, uint8_t octaves, uint32_t x, <span class="keywordtype">int</span> scale, uint32_t time) {</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; uint32_t _xx = x;</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; uint32_t scx = scale;</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> o = 0; o &lt; octaves; o++) {</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0,xx=_xx; i &lt; num_points; i++, xx+=scx) {</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; uint32_t accum = (inoise16(xx,time))&gt;&gt;o;</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; accum += (pData[i]&lt;&lt;8);</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">if</span>(accum &gt; 65535) { accum = 65535; }</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; pData[i] = accum&gt;&gt;8;</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;<span class="keywordtype">void</span> fill_raw_2dnoise16(uint16_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, <a class="code" href="classq.html">q88</a> freq88, <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> amplitude, <span class="keywordtype">int</span> skip, uint32_t x, <span class="keywordtype">int</span> scalex, uint32_t y, <span class="keywordtype">int</span> scaley, uint32_t time) {</div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">if</span>(octaves &gt; 1) {</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; fill_raw_2dnoise16(pData, width, height, octaves-1, freq88, amplitude, skip, x *freq88 , scalex *freq88, y * freq88, scaley * freq88, time);</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="comment">// amplitude is always 255 on the lowest level</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; amplitude=65535;</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; scalex *= skip;</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; scaley *= skip;</div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> invamp = 65535-amplitude;</div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; height; i+=skip, y+=scaley) {</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; uint16_t *pRow = pData + (i*width);</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0,xx=x; j &lt; width; j+=skip, xx+=scalex) {</div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; uint16_t noise_base = inoise16(xx,y,time);</div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; noise_base = (0x8000 &amp; noise_base) ? noise_base - (32767) : 32767 - noise_base;</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; noise_base = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(noise_base&lt;&lt;1, amplitude);</div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">if</span>(skip==1) {</div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; pRow[j] = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(pRow[j],invamp) + noise_base;</div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ii = i; ii&lt;(i+skip) &amp;&amp; ii&lt;height; ii++) {</div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; uint16_t *pRow = pData + (ii*width);</div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> jj=j; jj&lt;(j+skip) &amp;&amp; jj&lt;width; jj++) {</div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; pRow[jj] = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(pRow[jj],invamp) + noise_base;</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; }</div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; }</div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; }</div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 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;int32_t nmin=11111110;</div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;int32_t nmax=0;</div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="keywordtype">void</span> fill_raw_2dnoise16into8(uint8_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, <a class="code" href="classq.html">q44</a> freq44, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amplitude, <span class="keywordtype">int</span> skip, uint32_t x, <span class="keywordtype">int</span> scalex, uint32_t y, <span class="keywordtype">int</span> scaley, uint32_t time) {</div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">if</span>(octaves &gt; 1) {</div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; fill_raw_2dnoise16into8(pData, width, height, octaves-1, freq44, amplitude, skip+1, x*freq44, scalex *freq44, y*freq44, scaley * freq44, time);</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="comment">// amplitude is always 255 on the lowest level</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; amplitude=255;</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;</div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; scalex *= skip;</div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; scaley *= skip;</div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; uint32_t xx;</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> invamp = 255-amplitude;</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; height; i+=skip, y+=scaley) {</div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; uint8_t *pRow = pData + (i*width);</div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; xx = x;</div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; width; j+=skip, xx+=scalex) {</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; uint16_t noise_base = inoise16(xx,y,time);</div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; noise_base = (0x8000 &amp; noise_base) ? noise_base - (32767) : 32767 - noise_base;</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; noise_base = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(noise_base&gt;&gt;7,amplitude);</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">if</span>(skip==1) {</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; pRow[j] = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>(<a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(pRow[j],invamp),noise_base);</div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ii = i; ii&lt;(i+skip) &amp;&amp; ii&lt;height; ii++) {</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; uint8_t *pRow = pData + (ii*width);</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> jj=j; jj&lt;(j+skip) &amp;&amp; jj&lt;width; jj++) {</div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; pRow[jj] = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(pRow[jj],invamp) + noise_base;</div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; }</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; }</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; }</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; }</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;</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="keywordtype">void</span> fill_raw_2dnoise16into8(uint8_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, uint32_t x, <span class="keywordtype">int</span> scalex, uint32_t y, <span class="keywordtype">int</span> scaley, uint32_t time) {</div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; fill_raw_2dnoise16into8(pData, width, height, octaves, <a class="code" href="group__lib8tion.html#ga85082c3ed8843d32076222e82d72f80d">q44</a>(2,0), 171, 1, x, scalex, y, scaley, time);</div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;}</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="keywordtype">void</span> fill_noise8(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *leds, <span class="keywordtype">int</span> num_leds,</div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> scale,</div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; uint8_t hue_octaves, uint16_t hue_x, <span class="keywordtype">int</span> hue_scale,</div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; uint16_t time) {</div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; uint8_t V[num_leds];</div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; uint8_t H[num_leds];</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; memset(V,0,num_leds);</div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; memset(H,0,num_leds);</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; fill_raw_noise8(V,num_leds,octaves,x,scale,time);</div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; fill_raw_noise8(H,num_leds,hue_octaves,hue_x,hue_scale,time);</div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; num_leds; i++) {</div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; leds[i] = <a class="code" href="struct_c_h_s_v.html">CHSV</a>(H[i],255,V[i]);</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;}</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="keywordtype">void</span> fill_noise16(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *leds, <span class="keywordtype">int</span> num_leds,</div>
-<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> scale,</div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; uint8_t hue_octaves, uint16_t hue_x, <span class="keywordtype">int</span> hue_scale,</div>
-<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; uint16_t time) {</div>
-<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; uint8_t V[num_leds];</div>
-<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; uint8_t H[num_leds];</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; memset(V,0,num_leds);</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; memset(H,0,num_leds);</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; fill_raw_noise16into8(V,num_leds,octaves,x,scale,time);</div>
-<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; fill_raw_noise8(H,num_leds,hue_octaves,hue_x,hue_scale,time);</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">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; num_leds; i++) {</div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; leds[i] = <a class="code" href="struct_c_h_s_v.html">CHSV</a>(H[i],255,V[i]);</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;}</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="keywordtype">void</span> fill_2dnoise8(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *leds, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">bool</span> serpentine,</div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> xscale, uint16_t y, <span class="keywordtype">int</span> yscale, uint16_t time,</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; uint8_t hue_octaves, uint16_t hue_x, <span class="keywordtype">int</span> hue_xscale, uint16_t hue_y, uint16_t hue_yscale,uint16_t hue_time,<span class="keywordtype">bool</span> blend) {</div>
-<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; uint8_t V[height][width];</div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; uint8_t H[height][width];</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; memset(V,0,height*width);</div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; memset(H,0,height*width);</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; fill_raw_2dnoise8((uint8_t*)V,width,height,octaves,x,xscale,y,yscale,time);</div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; fill_raw_2dnoise8((uint8_t*)H,width,height,hue_octaves,hue_x,hue_xscale,hue_y,hue_yscale,hue_time);</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">int</span> w1 = width-1;</div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordtype">int</span> h1 = height-1;</div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; height; i++) {</div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordtype">int</span> wb = i*width;</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; width; j++) {</div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> led(<a class="code" href="struct_c_h_s_v.html">CHSV</a>(H[h1-i][w1-j],255,V[i][j]));</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; <span class="keywordtype">int</span> pos = j;</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordflow">if</span>(serpentine &amp;&amp; (i &amp; 0x1)) {</div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; pos = w1-j;</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;</div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="keywordflow">if</span>(blend) {</div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; leds[wb+pos] &gt;&gt;= 1; leds[wb+pos] += (led&gt;&gt;=1);</div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; leds[wb+pos] = led;</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; }</div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; }</div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;}</div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;</div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;<span class="keywordtype">void</span> fill_2dnoise16(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *leds, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">bool</span> serpentine,</div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; uint8_t octaves, uint32_t x, <span class="keywordtype">int</span> xscale, uint32_t y, <span class="keywordtype">int</span> yscale, uint32_t time,</div>
-<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; uint8_t hue_octaves, uint16_t hue_x, <span class="keywordtype">int</span> hue_xscale, uint16_t hue_y, uint16_t hue_yscale,uint16_t hue_time, <span class="keywordtype">bool</span> blend, uint16_t hue_shift) {</div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; uint8_t V[height][width];</div>
-<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; uint8_t H[height][width];</div>
-<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;</div>
-<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; memset(V,0,height*width);</div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; memset(H,0,height*width);</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; fill_raw_2dnoise16into8((uint8_t*)V,width,height,octaves,<a class="code" href="group__lib8tion.html#ga85082c3ed8843d32076222e82d72f80d">q44</a>(2,0),171,1,x,xscale,y,yscale,time);</div>
-<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="comment">// fill_raw_2dnoise16into8((uint8_t*)V,width,height,octaves,x,xscale,y,yscale,time);</span></div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="comment">// fill_raw_2dnoise8((uint8_t*)V,width,height,hue_octaves,x,xscale,y,yscale,time);</span></div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; fill_raw_2dnoise8((uint8_t*)H,width,height,hue_octaves,hue_x,hue_xscale,hue_y,hue_yscale,hue_time);</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="keywordtype">int</span> w1 = width-1;</div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keywordtype">int</span> h1 = height-1;</div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; hue_shift &gt;&gt;= 8;</div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; _xx &lt;&lt;= 1;</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; scx &lt;&lt;= 1;</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;}</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="keywordtype">void</span> fill_raw_2dnoise8(uint8_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, <a class="code" href="classq.html">q44</a> freq44, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amplitude, <span class="keywordtype">int</span> skip, uint16_t x, <span class="keywordtype">int</span> scalex, uint16_t y, <span class="keywordtype">int</span> scaley, uint16_t time) {</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">if</span>(octaves &gt; 1) {</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; fill_raw_2dnoise8(pData, width, height, octaves-1, freq44, amplitude, skip+1, x*freq44, freq44 * scalex, y*freq44, freq44 * scaley, time);</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="comment">// amplitude is always 255 on the lowest level</span></div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; amplitude=255;</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; }</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; scalex *= skip;</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; scaley *= skip;</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; <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> invamp = 255-amplitude;</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; uint16_t xx = x;</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; height; i++, y+=scaley) {</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; uint8_t *pRow = pData + (i*width);</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; xx = x;</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; width; j++, xx+=scalex) {</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; uint8_t noise_base = inoise8(xx,y,time);</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; noise_base = (0x80 &amp; noise_base) ? (noise_base - 127) : (127 - noise_base);</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; noise_base = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(noise_base&lt;&lt;1,amplitude);</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">if</span>(skip == 1) {</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; pRow[j] = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(pRow[j],invamp) + noise_base;</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ii = i; ii&lt;(i+skip) &amp;&amp; ii&lt;height; ii++) {</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; uint8_t *pRow = pData + (ii*width);</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> jj=j; jj&lt;(j+skip) &amp;&amp; jj&lt;width; jj++) {</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; pRow[jj] = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(pRow[jj],invamp) + noise_base;</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; }</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; }</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; }</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; }</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;}</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="keywordtype">void</span> fill_raw_2dnoise8(uint8_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> scalex, uint16_t y, <span class="keywordtype">int</span> scaley, uint16_t time) {</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; fill_raw_2dnoise8(pData, width, height, octaves, <a class="code" href="group__lib8tion.html#ga85082c3ed8843d32076222e82d72f80d">q44</a>(2,0), 128, 1, x, scalex, y, scaley, time);</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;</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="keywordtype">void</span> fill_raw_2dnoise16(uint16_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, <a class="code" href="classq.html">q88</a> freq88, <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> amplitude, <span class="keywordtype">int</span> skip, uint32_t x, <span class="keywordtype">int</span> scalex, uint32_t y, <span class="keywordtype">int</span> scaley, uint32_t time) {</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keywordflow">if</span>(octaves &gt; 1) {</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; fill_raw_2dnoise16(pData, width, height, octaves-1, freq88, amplitude, skip, x *freq88 , scalex *freq88, y * freq88, scaley * freq88, time);</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="comment">// amplitude is always 255 on the lowest level</span></div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; amplitude=65535;</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;</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; scalex *= skip;</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; scaley *= skip;</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> invamp = 65535-amplitude;</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; height; i+=skip, y+=scaley) {</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; uint16_t *pRow = pData + (i*width);</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0,xx=x; j &lt; width; j+=skip, xx+=scalex) {</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; uint16_t noise_base = inoise16(xx,y,time);</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; noise_base = (0x8000 &amp; noise_base) ? noise_base - (32767) : 32767 - noise_base;</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; noise_base = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(noise_base&lt;&lt;1, amplitude);</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">if</span>(skip==1) {</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; pRow[j] = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(pRow[j],invamp) + noise_base;</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ii = i; ii&lt;(i+skip) &amp;&amp; ii&lt;height; ii++) {</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; uint16_t *pRow = pData + (ii*width);</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> jj=j; jj&lt;(j+skip) &amp;&amp; jj&lt;width; jj++) {</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; pRow[jj] = <a class="code" href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a>(pRow[jj],invamp) + noise_base;</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; }</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; }</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; }</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; }</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;}</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;int32_t nmin=11111110;</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;int32_t nmax=0;</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;<span class="keywordtype">void</span> fill_raw_2dnoise16into8(uint8_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, <a class="code" href="classq.html">q44</a> freq44, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amplitude, <span class="keywordtype">int</span> skip, uint32_t x, <span class="keywordtype">int</span> scalex, uint32_t y, <span class="keywordtype">int</span> scaley, uint32_t time) {</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">if</span>(octaves &gt; 1) {</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; fill_raw_2dnoise16into8(pData, width, height, octaves-1, freq44, amplitude, skip+1, x*freq44, scalex *freq44, y*freq44, scaley * freq44, time);</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="comment">// amplitude is always 255 on the lowest level</span></div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; amplitude=255;</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; }</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; scalex *= skip;</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; scaley *= skip;</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; uint32_t xx;</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> invamp = 255-amplitude;</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; height; i+=skip, y+=scaley) {</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; uint8_t *pRow = pData + (i*width);</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; xx = x;</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; width; j+=skip, xx+=scalex) {</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; uint16_t noise_base = inoise16(xx,y,time);</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; noise_base = (0x8000 &amp; noise_base) ? noise_base - (32767) : 32767 - noise_base;</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; noise_base = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(noise_base&gt;&gt;7,amplitude);</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keywordflow">if</span>(skip==1) {</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; pRow[j] = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>(<a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(pRow[j],invamp),noise_base);</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> ii = i; ii&lt;(i+skip) &amp;&amp; ii&lt;height; ii++) {</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; uint8_t *pRow = pData + (ii*width);</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> jj=j; jj&lt;(j+skip) &amp;&amp; jj&lt;width; jj++) {</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; pRow[jj] = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(pRow[jj],invamp) + noise_base;</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; }</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; }</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;</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="keywordtype">void</span> fill_raw_2dnoise16into8(uint8_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, uint32_t x, <span class="keywordtype">int</span> scalex, uint32_t y, <span class="keywordtype">int</span> scaley, uint32_t time) {</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; fill_raw_2dnoise16into8(pData, width, height, octaves, <a class="code" href="group__lib8tion.html#ga85082c3ed8843d32076222e82d72f80d">q44</a>(2,0), 171, 1, x, scalex, y, scaley, time);</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;</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;<span class="keywordtype">void</span> fill_noise8(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *leds, <span class="keywordtype">int</span> num_leds,</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> scale,</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; uint8_t hue_octaves, uint16_t hue_x, <span class="keywordtype">int</span> hue_scale,</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; uint16_t time) {</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; uint8_t V[num_leds];</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; uint8_t H[num_leds];</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; memset(V,0,num_leds);</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; memset(H,0,num_leds);</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; fill_raw_noise8(V,num_leds,octaves,x,scale,time);</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; fill_raw_noise8(H,num_leds,hue_octaves,hue_x,hue_scale,time);</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; num_leds; i++) {</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; leds[i] = <a class="code" href="struct_c_h_s_v.html">CHSV</a>(H[i],255,V[i]);</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;}</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;<span class="keywordtype">void</span> fill_noise16(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *leds, <span class="keywordtype">int</span> num_leds,</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> scale,</div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; uint8_t hue_octaves, uint16_t hue_x, <span class="keywordtype">int</span> hue_scale,</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; uint16_t time, uint8_t hue_shift) {</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; uint8_t V[num_leds];</div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; uint8_t H[num_leds];</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;</div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; memset(V,0,num_leds);</div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; memset(H,0,num_leds);</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; fill_raw_noise16into8(V,num_leds,octaves,x,scale,time);</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; fill_raw_noise8(H,num_leds,hue_octaves,hue_x,hue_scale,time);</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="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; num_leds; i++) {</div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; leds[i] = <a class="code" href="struct_c_h_s_v.html">CHSV</a>(H[i] + hue_shift,255,V[i]);</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; }</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="keywordtype">void</span> fill_2dnoise8(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *leds, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">bool</span> serpentine,</div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> xscale, uint16_t y, <span class="keywordtype">int</span> yscale, uint16_t time,</div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; uint8_t hue_octaves, uint16_t hue_x, <span class="keywordtype">int</span> hue_xscale, uint16_t hue_y, uint16_t hue_yscale,uint16_t hue_time,<span class="keywordtype">bool</span> blend) {</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; uint8_t V[height][width];</div>
+<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; uint8_t H[height][width];</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; memset(V,0,height*width);</div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; memset(H,0,height*width);</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; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; height; i++) {</div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordtype">int</span> wb = i*width;</div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; width; j++) {</div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> led(<a class="code" href="struct_c_h_s_v.html">CHSV</a>(hue_shift + (H[h1-i][w1-j]),196,V[i][j]));</div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;</div>
-<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="keywordtype">int</span> pos = j;</div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">if</span>(serpentine &amp;&amp; (i &amp; 0x1)) {</div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; pos = w1-j;</div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; }</div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; fill_raw_2dnoise8((uint8_t*)V,width,height,octaves,x,xscale,y,yscale,time);</div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; fill_raw_2dnoise8((uint8_t*)H,width,height,hue_octaves,hue_x,hue_xscale,hue_y,hue_yscale,hue_time);</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; <span class="keywordtype">int</span> w1 = width-1;</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordtype">int</span> h1 = height-1;</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; height; i++) {</div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordtype">int</span> wb = i*width;</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; width; j++) {</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> led(<a class="code" href="struct_c_h_s_v.html">CHSV</a>(H[h1-i][w1-j],255,V[i][j]));</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; <span class="keywordflow">if</span>(blend) {</div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; leds[wb+pos] &gt;&gt;= 1; leds[wb+pos] += (led&gt;&gt;=1);</div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; leds[wb+pos] = led;</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; }</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;</div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;FASTLED_NAMESPACE_END</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> <a href="pixeltypes_8h_source.html#l00088">pixeltypes.h:88</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gaaf46b9f719ef3bdb574f8e967af6dbb5"><div class="ttname"><a href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a></div><div class="ttdeci">uint16_t fract16</div><div class="ttdoc">ANSI: unsigned _Fract. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00332">lib8tion.h:332</a></div></div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keywordtype">int</span> pos = j;</div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="keywordflow">if</span>(serpentine &amp;&amp; (i &amp; 0x1)) {</div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; pos = w1-j;</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; }</div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">if</span>(blend) {</div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; leds[wb+pos] &gt;&gt;= 1; leds[wb+pos] += (led&gt;&gt;=1);</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; leds[wb+pos] = led;</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; }</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; }</div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;}</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;<span class="keywordtype">void</span> fill_2dnoise16(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *leds, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">bool</span> serpentine,</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; uint8_t octaves, uint32_t x, <span class="keywordtype">int</span> xscale, uint32_t y, <span class="keywordtype">int</span> yscale, uint32_t time,</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; uint8_t hue_octaves, uint16_t hue_x, <span class="keywordtype">int</span> hue_xscale, uint16_t hue_y, uint16_t hue_yscale,uint16_t hue_time, <span class="keywordtype">bool</span> blend, uint16_t hue_shift) {</div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; uint8_t V[height][width];</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; uint8_t H[height][width];</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;</div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; memset(V,0,height*width);</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; memset(H,0,height*width);</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; fill_raw_2dnoise16into8((uint8_t*)V,width,height,octaves,<a class="code" href="group__lib8tion.html#ga85082c3ed8843d32076222e82d72f80d">q44</a>(2,0),171,1,x,xscale,y,yscale,time);</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="comment">// fill_raw_2dnoise16into8((uint8_t*)V,width,height,octaves,x,xscale,y,yscale,time);</span></div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="comment">// fill_raw_2dnoise8((uint8_t*)V,width,height,hue_octaves,x,xscale,y,yscale,time);</span></div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; fill_raw_2dnoise8((uint8_t*)H,width,height,hue_octaves,hue_x,hue_xscale,hue_y,hue_yscale,hue_time);</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</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; <span class="keywordtype">int</span> w1 = width-1;</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordtype">int</span> h1 = height-1;</div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; hue_shift &gt;&gt;= 8;</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; height; i++) {</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keywordtype">int</span> wb = i*width;</div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; width; j++) {</div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> led(<a class="code" href="struct_c_h_s_v.html">CHSV</a>(hue_shift + (H[h1-i][w1-j]),196,V[i][j]));</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="keywordtype">int</span> pos = j;</div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">if</span>(serpentine &amp;&amp; (i &amp; 0x1)) {</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; pos = w1-j;</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; <span class="keywordflow">if</span>(blend) {</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; leds[wb+pos] &gt;&gt;= 1; leds[wb+pos] += (led&gt;&gt;=1);</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; leds[wb+pos] = led;</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;}</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;</div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;FASTLED_NAMESPACE_END</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> <a href="pixeltypes_8h_source.html#l00090">pixeltypes.h:90</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gaaf46b9f719ef3bdb574f8e967af6dbb5"><div class="ttname"><a href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a></div><div class="ttdeci">uint16_t fract16</div><div class="ttdoc">ANSI: unsigned _Fract. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00342">lib8tion.h:342</a></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> <a href="scale8_8h_source.html#l00020">scale8.h:20</a></div></div>
-<div class="ttc" id="group___math_html_ga30558a835c484b418165909118e702b1"><div class="ttname"><a href="group___math.html#ga30558a835c484b418165909118e702b1">avg7</a></div><div class="ttdeci">LIB8STATIC int8_t avg7(int8_t i, int8_t j)</div><div class="ttdoc">Calculate an integer average of two signed 7-bit integers (int8_t) If the first argument is even...</div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00171">math8.h:171</a></div></div>
+<div class="ttc" id="group___math_html_ga30558a835c484b418165909118e702b1"><div class="ttname"><a href="group___math.html#ga30558a835c484b418165909118e702b1">avg7</a></div><div class="ttdeci">LIB8STATIC int8_t avg7(int8_t i, int8_t j)</div><div class="ttdoc">Calculate an integer average of two signed 7-bit integers (int8_t) If the first argument is even...</div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00196">math8.h:196</a></div></div>
<div class="ttc" id="group___scaling_html_ga1ff8ac00ad78e22acc7bb7445bfdb145"><div class="ttname"><a href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a></div><div class="ttdeci">LIB8STATIC uint16_t scale16(uint16_t i, fract16 scale)</div><div class="ttdoc">scale a 16-bit unsigned value by a 16-bit value, considered as numerator of a fraction whose denomina...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00384">scale8.h:384</a></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> <a href="math8_8h_source.html#l00021">math8.h:21</a></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> <a href="lib8tion_8h_source.html#l00324">lib8tion.h:324</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga85082c3ed8843d32076222e82d72f80d"><div class="ttname"><a href="group__lib8tion.html#ga85082c3ed8843d32076222e82d72f80d">q44</a></div><div class="ttdeci">q&lt; uint8_t, 4, 4 &gt; q44</div><div class="ttdoc">A 4.4 integer (4 bits integer, 4 bits fraction) </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00767">lib8tion.h:767</a></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> <a href="lib8tion_8h_source.html#l00334">lib8tion.h:334</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga85082c3ed8843d32076222e82d72f80d"><div class="ttname"><a href="group__lib8tion.html#ga85082c3ed8843d32076222e82d72f80d">q44</a></div><div class="ttdeci">q&lt; uint8_t, 4, 4 &gt; q44</div><div class="ttdoc">A 4.4 integer (4 bits integer, 4 bits fraction) </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00777">lib8tion.h:777</a></div></div>
<div class="ttc" id="group___scaling_html_ga39579fcf09743f15545fe0b831ca313c"><div class="ttname"><a href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC uint8_t scale8_LEAVING_R1_DIRTY(uint8_t i, fract8 scale)</div><div class="ttdoc">This version of scale8 does not clean up the R1 register on AVR If you are doing several &#39;scale8&#39;s in...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00121">scale8.h:121</a></div></div>
<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </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> <a href="fastled__delay_8h_source.html#l00085">fastled_delay.h:85</a></div></div>
-<div class="ttc" id="group___noise_html_ga810bdc406dcf8fd5b7add9041aa18abd"><div class="ttname"><a href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a></div><div class="ttdeci">int16_t inoise16_raw(uint32_t x, uint32_t y, uint32_t z)</div><div class="ttdoc">16 bit raw versions of the noise functions. </div><div class="ttdef"><b>Definition:</b> <a href="noise_8cpp_source.html#l00245">noise.cpp:245</a></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> <a href="fastled__delay_8h_source.html#l00092">fastled_delay.h:92</a></div></div>
+<div class="ttc" id="group___noise_html_ga810bdc406dcf8fd5b7add9041aa18abd"><div class="ttname"><a href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a></div><div class="ttdeci">int16_t inoise16_raw(uint32_t x, uint32_t y, uint32_t z)</div><div class="ttdoc">16 bit raw versions of the noise functions. </div><div class="ttdef"><b>Definition:</b> <a href="noise_8cpp_source.html#l00276">noise.cpp:276</a></div></div>
<div class="ttc" id="group___colorpalletes_html_ga57a38373661043f74b292976e83c687b"><div class="ttname"><a href="group___colorpalletes.html#ga57a38373661043f74b292976e83c687b">FL_PROGMEM</a></div><div class="ttdeci">FASTLED_USING_NAMESPACE const TProgmemRGBPalette16 CloudColors_p FL_PROGMEM</div><div class="ttdoc">HSV Rainbow. </div><div class="ttdef"><b>Definition:</b> <a href="colorpalettes_8cpp_source.html#l00043">colorpalettes.cpp:43</a></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> <a href="pixeltypes_8h_source.html#l00021">pixeltypes.h:21</a></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> <a href="lib8tion_8h_source.html#l00743">lib8tion.h:743</a></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> <a href="pixeltypes_8h_source.html#l00023">pixeltypes.h:23</a></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> <a href="lib8tion_8h_source.html#l00753">lib8tion.h:753</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>noise.cpp</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/noise_8h.html b/docs/3.1/noise_8h.html
index b5361022..066609a4 100644
--- a/docs/3.1/noise_8h.html
+++ b/docs/3.1/noise_8h.html
@@ -207,9 +207,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_raw_2dnoise16int
<tr class="memitem:ga7967fd7b1a7230a0f7428347c70dac3e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7967fd7b1a7230a0f7428347c70dac3e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_noise8</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, int num_leds, uint8_t octaves, uint16_t x, int scale, uint8_t hue_octaves, uint16_t hue_x, int hue_scale, uint16_t time)</td></tr>
<tr class="separator:ga7967fd7b1a7230a0f7428347c70dac3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga55b7c44d1f979e29b51335ca3fe90e1c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga55b7c44d1f979e29b51335ca3fe90e1c"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_noise16</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, int num_leds, uint8_t octaves, uint16_t x, int scale, uint8_t hue_octaves, uint16_t hue_x, int hue_scale, uint16_t time)</td></tr>
-<tr class="separator:ga55b7c44d1f979e29b51335ca3fe90e1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8bf5ab0f87a6bb79204754ef2a62f960"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8bf5ab0f87a6bb79204754ef2a62f960"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_noise16</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, int num_leds, uint8_t octaves, uint16_t x, int scale, uint8_t hue_octaves, uint16_t hue_x, int hue_scale, uint16_t time, uint8_t hue_shift=0)</td></tr>
+<tr class="separator:ga8bf5ab0f87a6bb79204754ef2a62f960"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6fcc17e60eac4b9dbb620f7e354177f1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6fcc17e60eac4b9dbb620f7e354177f1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_2dnoise8</b> (<a class="el" href="struct_c_r_g_b.html">CRGB</a> *leds, int width, int height, bool serpentine, uint8_t octaves, uint16_t x, int xscale, uint16_t y, int yscale, uint16_t time, uint8_t hue_octaves, uint16_t hue_x, int hue_xscale, uint16_t hue_y, uint16_t hue_yscale, uint16_t hue_time, bool blend)</td></tr>
<tr class="separator:ga6fcc17e60eac4b9dbb620f7e354177f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -227,7 +227,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>fill_2dnoise16</b> (<
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="noise_8h.html">noise.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/noise_8h.js b/docs/3.1/noise_8h.js
index 96657195..643902dd 100644
--- a/docs/3.1/noise_8h.js
+++ b/docs/3.1/noise_8h.js
@@ -2,7 +2,7 @@ var noise_8h =
[
[ "fill_2dnoise16", "group___noise.html#ga714a0f305e385a60d81a40d1f98b53fc", null ],
[ "fill_2dnoise8", "group___noise.html#ga6fcc17e60eac4b9dbb620f7e354177f1", null ],
- [ "fill_noise16", "group___noise.html#ga55b7c44d1f979e29b51335ca3fe90e1c", null ],
+ [ "fill_noise16", "group___noise.html#ga8bf5ab0f87a6bb79204754ef2a62f960", null ],
[ "fill_noise8", "group___noise.html#ga7967fd7b1a7230a0f7428347c70dac3e", null ],
[ "fill_raw_2dnoise16", "group___noise.html#ga2a41b0b6fc438305e9fc35307fcd641d", null ],
[ "fill_raw_2dnoise16into8", "group___noise.html#ga46bde35765a7eddbd1049fe49429e94e", null ],
diff --git a/docs/3.1/noise_8h_source.html b/docs/3.1/noise_8h_source.html
index 6919a112..f9895c1e 100644
--- a/docs/3.1/noise_8h_source.html
+++ b/docs/3.1/noise_8h_source.html
@@ -112,65 +112,68 @@ $(document).ready(function(){initNavTree('noise_8h_source.html','');});
<a href="noise_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_NOISE_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_NOISE_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;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keyword">extern</span> uint16_t inoise16(uint32_t x, uint32_t y, uint32_t z);</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">extern</span> uint16_t inoise16(uint32_t x, uint32_t y);</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">extern</span> uint16_t inoise16(uint32_t x);</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</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="keyword">extern</span> uint16_t inoise16(uint32_t x, uint32_t y, uint32_t z);</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">extern</span> uint16_t inoise16(uint32_t x, uint32_t y);</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">extern</span> uint16_t inoise16(uint32_t x);</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="keyword">extern</span> int16_t <a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(uint32_t x, uint32_t y, uint32_t z);</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">extern</span> int16_t <a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(uint32_t x, uint32_t y);</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">extern</span> int16_t <a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(uint32_t x);</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">extern</span> uint8_t inoise8(uint16_t x, uint16_t y, uint16_t z);</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">extern</span> uint8_t inoise8(uint16_t x, uint16_t y);</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">extern</span> uint8_t inoise8(uint16_t x);</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">extern</span> int8_t inoise8_raw(uint16_t x, uint16_t y, uint16_t z);</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">extern</span> int8_t inoise8_raw(uint16_t x, uint16_t y);</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">extern</span> int8_t inoise8_raw(uint16_t x);</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keywordtype">void</span> fill_raw_noise8(uint8_t *pData, uint8_t num_points, uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> scalex, uint16_t time);</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keywordtype">void</span> fill_raw_noise16into8(uint8_t *pData, uint8_t num_points, uint8_t octaves, uint32_t x, <span class="keywordtype">int</span> scalex, uint32_t time);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keywordtype">void</span> fill_raw_2dnoise8(uint8_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> scalex, uint16_t y, <span class="keywordtype">int</span> scaley, uint16_t time);</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keywordtype">void</span> fill_raw_2dnoise16into8(uint8_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, uint32_t x, <span class="keywordtype">int</span> scalex, uint32_t y, <span class="keywordtype">int</span> scaley, uint32_t time);</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keywordtype">void</span> fill_raw_2dnoise16(uint16_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, <a class="code" href="classq.html">q88</a> freq88, <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> amplitude, <span class="keywordtype">int</span> skip, uint32_t x, <span class="keywordtype">int</span> scalex, uint32_t y, <span class="keywordtype">int</span> scaley, uint32_t time);</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keywordtype">void</span> fill_raw_2dnoise16into8(uint8_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, <a class="code" href="classq.html">q44</a> freq44, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amplitude, <span class="keywordtype">int</span> skip, uint32_t x, <span class="keywordtype">int</span> scalex, uint32_t y, <span class="keywordtype">int</span> scaley, uint32_t time);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keywordtype">void</span> fill_noise8(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *leds, <span class="keywordtype">int</span> num_leds,</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> scale,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; uint8_t hue_octaves, uint16_t hue_x, <span class="keywordtype">int</span> hue_scale,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; uint16_t time);</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keywordtype">void</span> fill_noise16(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *leds, <span class="keywordtype">int</span> num_leds,</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> scale,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; uint8_t hue_octaves, uint16_t hue_x, <span class="keywordtype">int</span> hue_scale,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; uint16_t time);</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keywordtype">void</span> fill_2dnoise8(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *leds, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">bool</span> serpentine,</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> xscale, uint16_t y, <span class="keywordtype">int</span> yscale, uint16_t time,</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; uint8_t hue_octaves, uint16_t hue_x, <span class="keywordtype">int</span> hue_xscale, uint16_t hue_y, uint16_t hue_yscale,uint16_t hue_time,<span class="keywordtype">bool</span> blend);</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="keywordtype">void</span> fill_2dnoise16(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *leds, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">bool</span> serpentine,</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; uint8_t octaves, uint32_t x, <span class="keywordtype">int</span> xscale, uint32_t y, <span class="keywordtype">int</span> yscale, uint32_t time,</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; uint8_t hue_octaves, uint16_t hue_x, <span class="keywordtype">int</span> hue_xscale, uint16_t hue_y, uint16_t hue_yscale,uint16_t hue_time, <span class="keywordtype">bool</span> blend, uint16_t hue_shift=0);</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;FASTLED_NAMESPACE_END</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="struct_c_r_g_b_html"><div class="ttname"><a href="struct_c_r_g_b.html">CRGB</a></div><div class="ttdoc">Representation of an RGB pixel (Red, Green, Blue) </div><div class="ttdef"><b>Definition:</b> <a href="pixeltypes_8h_source.html#l00088">pixeltypes.h:88</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gaaf46b9f719ef3bdb574f8e967af6dbb5"><div class="ttname"><a href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a></div><div class="ttdeci">uint16_t fract16</div><div class="ttdoc">ANSI: unsigned _Fract. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00332">lib8tion.h:332</a></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> <a href="lib8tion_8h_source.html#l00324">lib8tion.h:324</a></div></div>
-<div class="ttc" id="group___noise_html_ga810bdc406dcf8fd5b7add9041aa18abd"><div class="ttname"><a href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a></div><div class="ttdeci">int16_t inoise16_raw(uint32_t x, uint32_t y, uint32_t z)</div><div class="ttdoc">16 bit raw versions of the noise functions. </div><div class="ttdef"><b>Definition:</b> <a href="noise_8cpp_source.html#l00245">noise.cpp:245</a></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> <a href="lib8tion_8h_source.html#l00743">lib8tion.h:743</a></div></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;<span class="keyword">extern</span> int16_t <a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(uint32_t x, uint32_t y, uint32_t z);</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">extern</span> int16_t <a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(uint32_t x, uint32_t y);</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">extern</span> int16_t <a class="code" href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a>(uint32_t x);</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">extern</span> uint8_t inoise8(uint16_t x, uint16_t y, uint16_t z);</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">extern</span> uint8_t inoise8(uint16_t x, uint16_t y);</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">extern</span> uint8_t inoise8(uint16_t x);</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">extern</span> int8_t inoise8_raw(uint16_t x, uint16_t y, uint16_t z);</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">extern</span> int8_t inoise8_raw(uint16_t x, uint16_t y);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">extern</span> int8_t inoise8_raw(uint16_t x);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keywordtype">void</span> fill_raw_noise8(uint8_t *pData, uint8_t num_points, uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> scalex, uint16_t time);</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="keywordtype">void</span> fill_raw_noise16into8(uint8_t *pData, uint8_t num_points, uint8_t octaves, uint32_t x, <span class="keywordtype">int</span> scalex, uint32_t time);</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keywordtype">void</span> fill_raw_2dnoise8(uint8_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> scalex, uint16_t y, <span class="keywordtype">int</span> scaley, uint16_t time);</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keywordtype">void</span> fill_raw_2dnoise16into8(uint8_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, uint32_t x, <span class="keywordtype">int</span> scalex, uint32_t y, <span class="keywordtype">int</span> scaley, uint32_t time);</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="keywordtype">void</span> fill_raw_2dnoise16(uint16_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, <a class="code" href="classq.html">q88</a> freq88, <a class="code" href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a> amplitude, <span class="keywordtype">int</span> skip, uint32_t x, <span class="keywordtype">int</span> scalex, uint32_t y, <span class="keywordtype">int</span> scaley, uint32_t time);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="keywordtype">void</span> fill_raw_2dnoise16into8(uint8_t *pData, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, uint8_t octaves, <a class="code" href="classq.html">q44</a> freq44, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amplitude, <span class="keywordtype">int</span> skip, uint32_t x, <span class="keywordtype">int</span> scalex, uint32_t y, <span class="keywordtype">int</span> scaley, uint32_t time);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keywordtype">void</span> fill_noise8(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *leds, <span class="keywordtype">int</span> num_leds,</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> scale,</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; uint8_t hue_octaves, uint16_t hue_x, <span class="keywordtype">int</span> hue_scale,</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; uint16_t time);</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keywordtype">void</span> fill_noise16(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *leds, <span class="keywordtype">int</span> num_leds,</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> scale,</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; uint8_t hue_octaves, uint16_t hue_x, <span class="keywordtype">int</span> hue_scale,</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; uint16_t time, uint8_t hue_shift=0);</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keywordtype">void</span> fill_2dnoise8(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *leds, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">bool</span> serpentine,</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; uint8_t octaves, uint16_t x, <span class="keywordtype">int</span> xscale, uint16_t y, <span class="keywordtype">int</span> yscale, uint16_t time,</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; uint8_t hue_octaves, uint16_t hue_x, <span class="keywordtype">int</span> hue_xscale, uint16_t hue_y, uint16_t hue_yscale,uint16_t hue_time,<span class="keywordtype">bool</span> blend);</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="keywordtype">void</span> fill_2dnoise16(<a class="code" href="struct_c_r_g_b.html">CRGB</a> *leds, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">bool</span> serpentine,</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; uint8_t octaves, uint32_t x, <span class="keywordtype">int</span> xscale, uint32_t y, <span class="keywordtype">int</span> yscale, uint32_t time,</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; uint8_t hue_octaves, uint16_t hue_x, <span class="keywordtype">int</span> hue_xscale, uint16_t hue_y, uint16_t hue_yscale,uint16_t hue_time, <span class="keywordtype">bool</span> blend, uint16_t hue_shift=0);</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;FASTLED_NAMESPACE_END</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">#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> <a href="pixeltypes_8h_source.html#l00090">pixeltypes.h:90</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gaaf46b9f719ef3bdb574f8e967af6dbb5"><div class="ttname"><a href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a></div><div class="ttdeci">uint16_t fract16</div><div class="ttdoc">ANSI: unsigned _Fract. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00342">lib8tion.h:342</a></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> <a href="lib8tion_8h_source.html#l00334">lib8tion.h:334</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
+<div class="ttc" id="group___noise_html_ga810bdc406dcf8fd5b7add9041aa18abd"><div class="ttname"><a href="group___noise.html#ga810bdc406dcf8fd5b7add9041aa18abd">inoise16_raw</a></div><div class="ttdeci">int16_t inoise16_raw(uint32_t x, uint32_t y, uint32_t z)</div><div class="ttdoc">16 bit raw versions of the noise functions. </div><div class="ttdef"><b>Definition:</b> <a href="noise_8cpp_source.html#l00276">noise.cpp:276</a></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> <a href="lib8tion_8h_source.html#l00753">lib8tion.h:753</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="noise_8h.html">noise.h</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/pages.html b/docs/3.1/pages.html
index 750dbb7b..ca3e91ad 100644
--- a/docs/3.1/pages.html
+++ b/docs/3.1/pages.html
@@ -107,7 +107,7 @@ $(document).ready(function(){initNavTree('pages.html','');});
<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.1.1pre</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.2pre</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 -->
@@ -116,7 +116,7 @@ $(document).ready(function(){initNavTree('pages.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:38 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/pixelset_8h_source.html b/docs/3.1/pixelset_8h_source.html
index 0e5c7ea5..50784815 100644
--- a/docs/3.1/pixelset_8h_source.html
+++ b/docs/3.1/pixelset_8h_source.html
@@ -112,288 +112,289 @@ $(document).ready(function(){initNavTree('pixelset_8h_source.html','');});
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_PIXELSET_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_PIXELSET_H</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> PIXEL_TYPE&gt;</div>
-<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html"> 8</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_pixel_view.html">CPixelView</a> {</div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keyword">const</span> int8_t dir;</div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> len;</div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; PIXEL_TYPE * <span class="keyword">const</span> leds;</div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; PIXEL_TYPE * <span class="keyword">const</span> end_pos;</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="keyword">public</span>:</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&quot;</span></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;<span class="keyword">class</span> PIXEL_TYPE&gt;</div>
+<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html"> 10</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_pixel_view.html">CPixelView</a> {</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; <span class="keyword">const</span> int8_t dir;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> len;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; PIXEL_TYPE * <span class="keyword">const</span> leds;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; PIXEL_TYPE * <span class="keyword">const</span> end_pos;</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"><a class="line" href="class_c_pixel_view.html#afe22ceed228286280b4c6f7692db105a"> 18</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html#afe22ceed228286280b4c6f7692db105a">CPixelView</a>(<span class="keyword">const</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; other) : leds(other.leds), len(other.len), dir(other.dir), end_pos(other.end_pos) {}</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
-<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a051455d30c4390abd81bbb23182d22a8"> 24</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html#a051455d30c4390abd81bbb23182d22a8">CPixelView</a>(PIXEL_TYPE *_leds, <span class="keywordtype">int</span> _len) : leds(_leds), len(_len), dir(_len &lt; 0 ? -1 : 1), end_pos(_leds + _len) {}</div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
-<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#ada24d4d93b849bc31aec124f682b836a"> 31</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html#ada24d4d93b849bc31aec124f682b836a">CPixelView</a>(PIXEL_TYPE *_leds, <span class="keywordtype">int</span> _start, <span class="keywordtype">int</span> _end) : leds(_leds), dir(((_end-_start)&lt;0) ? -1 : 1), len((_end - _start) + dir), end_pos(_leds + len) {}</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
-<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e"> 35</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_c_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e">size</a>() { <span class="keywordflow">return</span> abs(len); }</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
-<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a384417cfef1e38aa24fde4673fd8eaac"> 39</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_c_pixel_view.html#a384417cfef1e38aa24fde4673fd8eaac">reversed</a>() { <span class="keywordflow">return</span> len &lt; 0; }</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
-<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a13b5daab212774a2957473acea4e843b"> 42</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_c_pixel_view.html#a13b5daab212774a2957473acea4e843b">operator==</a>(<span class="keyword">const</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> leds == rhs.leds &amp;&amp; len == rhs.len &amp;&amp; dir == rhs.dir; }</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a7ad3ae5a948047704c58458b13bdb53c"> 45</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_c_pixel_view.html#a7ad3ae5a948047704c58458b13bdb53c">operator!=</a>(<span class="keyword">const</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> leds != rhs.leds || len != rhs.len || dir != rhs.dir; }</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
-<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#aba3ece62dbd9f340a0cd78a4c69ab116"> 48</a></span>&#160; <span class="keyword">inline</span> PIXEL_TYPE &amp; <a class="code" href="class_c_pixel_view.html#aba3ece62dbd9f340a0cd78a4c69ab116">operator[]</a>(<span class="keywordtype">int</span> x)<span class="keyword"> const </span>{ <span class="keywordflow">if</span>(dir &amp; 0x80) { <span class="keywordflow">return</span> leds[-x]; } <span class="keywordflow">else</span> { <span class="keywordflow">return</span> leds[x]; } }</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#aa2b10d01a183235fcf62e50049c49dd4"> 54</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> <a class="code" href="class_c_pixel_view.html#aa2b10d01a183235fcf62e50049c49dd4">operator()</a>(<span class="keywordtype">int</span> start, <span class="keywordtype">int</span> end) { <span class="keywordflow">return</span> <a class="code" href="class_c_pixel_view.html#afe22ceed228286280b4c6f7692db105a">CPixelView</a>(leds+start, start, end); }</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</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="class_c_pixel_view.html#ad6e7a725732d4fff0dc4fa5c29015127"> 61</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> <a class="code" href="class_c_pixel_view.html#ad6e7a725732d4fff0dc4fa5c29015127">operator-</a>() { <span class="keywordflow">return</span> <a class="code" href="class_c_pixel_view.html#afe22ceed228286280b4c6f7692db105a">CPixelView</a>(leds + len - dir, len - dir, 0); }</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#af2f7d2d33f63d7aaf024458d0e710320"> 64</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">operator</span> PIXEL_TYPE* () <span class="keyword">const</span> { <span class="keywordflow">return</span> leds; }</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#aa35b7eb6c9b8d2510df02af26db03f29"> 68</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#aa35b7eb6c9b8d2510df02af26db03f29">operator=</a>(<span class="keyword">const</span> PIXEL_TYPE &amp; color) {</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) = color; }</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// void dump() const {</span></div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// Serial.print(&quot;len: &quot;); Serial.print(len); Serial.print(&quot;, dir:&quot;); Serial.print((int)dir);</span></div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// Serial.print(&quot;, range:&quot;); Serial.print((uint32_t)leds); Serial.print(&quot;-&quot;); Serial.print((uint32_t)end_pos);</span></div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// Serial.print(&quot;, diff:&quot;); Serial.print((int32_t)(end_pos - leds));</span></div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// }</span></div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a3e7c2cf9a8dc476f9a92850d69b7c499"> 82</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a3e7c2cf9a8dc476f9a92850d69b7c499">operator=</a>(<span class="keyword">const</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs) {</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">for</span>(iterator pixel = begin(), rhspixel = rhs.begin(), _end = end(), rhs_end = rhs.end(); (pixel != _end) &amp;&amp; (rhspixel != rhs_end); ++pixel, ++rhspixel) {</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; (*pixel) = (*rhspixel);</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="keywordflow">return</span> *<span class="keyword">this</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;</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">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a87abde19e76dfb9ae42971aa3384a50d">addToRGB</a>(uint8_t inc) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) += inc; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a7830b1011e8f6f13298c3500eba2707a"> 94</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a7830b1011e8f6f13298c3500eba2707a">operator+=</a>(<a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs) { <span class="keywordflow">for</span>(iterator pixel = begin(), rhspixel = rhs.begin(), _end = end(), rhs_end = rhs.end(); (pixel != _end) &amp;&amp; (rhspixel != rhs_end); ++pixel, ++rhspixel) { (*pixel) += (*rhspixel); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#afe22ceed228286280b4c6f7692db105a"> 20</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html#afe22ceed228286280b4c6f7692db105a">CPixelView</a>(<span class="keyword">const</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; other) : dir(other.dir), len(other.len), leds(other.leds), end_pos(other.end_pos) {}</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a051455d30c4390abd81bbb23182d22a8"> 26</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html#a051455d30c4390abd81bbb23182d22a8">CPixelView</a>(PIXEL_TYPE *_leds, <span class="keywordtype">int</span> _len) : dir(_len &lt; 0 ? -1 : 1), len(_len), leds(_leds), end_pos(_leds + _len) {}</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#ada24d4d93b849bc31aec124f682b836a"> 33</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html#ada24d4d93b849bc31aec124f682b836a">CPixelView</a>(PIXEL_TYPE *_leds, <span class="keywordtype">int</span> _start, <span class="keywordtype">int</span> _end) : dir(((_end-_start)&lt;0) ? -1 : 1), len((_end - _start) + dir), leds(_leds + _start), end_pos(_leds + _start + len) {}</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e"> 37</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_c_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e">size</a>() { <span class="keywordflow">return</span> abs(len); }</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"><a class="line" href="class_c_pixel_view.html#a384417cfef1e38aa24fde4673fd8eaac"> 41</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_c_pixel_view.html#a384417cfef1e38aa24fde4673fd8eaac">reversed</a>() { <span class="keywordflow">return</span> len &lt; 0; }</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"><a class="line" href="class_c_pixel_view.html#a13b5daab212774a2957473acea4e843b"> 44</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_c_pixel_view.html#a13b5daab212774a2957473acea4e843b">operator==</a>(<span class="keyword">const</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> leds == rhs.leds &amp;&amp; len == rhs.len &amp;&amp; dir == rhs.dir; }</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"><a class="line" href="class_c_pixel_view.html#a7ad3ae5a948047704c58458b13bdb53c"> 47</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_c_pixel_view.html#a7ad3ae5a948047704c58458b13bdb53c">operator!=</a>(<span class="keyword">const</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> leds != rhs.leds || len != rhs.len || dir != rhs.dir; }</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"><a class="line" href="class_c_pixel_view.html#aba3ece62dbd9f340a0cd78a4c69ab116"> 50</a></span>&#160; <span class="keyword">inline</span> PIXEL_TYPE &amp; <a class="code" href="class_c_pixel_view.html#aba3ece62dbd9f340a0cd78a4c69ab116">operator[]</a>(<span class="keywordtype">int</span> x)<span class="keyword"> const </span>{ <span class="keywordflow">if</span>(dir &amp; 0x80) { <span class="keywordflow">return</span> leds[-x]; } <span class="keywordflow">else</span> { <span class="keywordflow">return</span> leds[x]; } }</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#aa2b10d01a183235fcf62e50049c49dd4"> 56</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> <a class="code" href="class_c_pixel_view.html#aa2b10d01a183235fcf62e50049c49dd4">operator()</a>(<span class="keywordtype">int</span> start, <span class="keywordtype">int</span> end) { <span class="keywordflow">return</span> <a class="code" href="class_c_pixel_view.html#afe22ceed228286280b4c6f7692db105a">CPixelView</a>(leds, start, end); }</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#ad6e7a725732d4fff0dc4fa5c29015127"> 63</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> <a class="code" href="class_c_pixel_view.html#ad6e7a725732d4fff0dc4fa5c29015127">operator-</a>() { <span class="keywordflow">return</span> <a class="code" href="class_c_pixel_view.html#afe22ceed228286280b4c6f7692db105a">CPixelView</a>(leds + len - dir, len - dir, 0); }</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#af2f7d2d33f63d7aaf024458d0e710320"> 66</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">operator</span> PIXEL_TYPE* () <span class="keyword">const</span> { <span class="keywordflow">return</span> leds; }</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#aa35b7eb6c9b8d2510df02af26db03f29"> 70</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#aa35b7eb6c9b8d2510df02af26db03f29">operator=</a>(<span class="keyword">const</span> PIXEL_TYPE &amp; color) {</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) = color; }</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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"> 75</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a1f32c60d83428f27d3ec899442b82410"> 76</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_c_pixel_view.html#a1f32c60d83428f27d3ec899442b82410">dump</a>()<span class="keyword"> const </span>{</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="l00087"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a3e7c2cf9a8dc476f9a92850d69b7c499"> 87</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a3e7c2cf9a8dc476f9a92850d69b7c499">operator=</a>(<span class="keyword">const</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs) {</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">for</span>(iterator pixel = begin(), rhspixel = rhs.begin(), _end = end(), rhs_end = rhs.end(); (pixel != _end) &amp;&amp; (rhspixel != rhs_end); ++pixel, ++rhspixel) {</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; (*pixel) = (*rhspixel);</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="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#afb57aeebbd762d7ead044a12fd51f639"> 97</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#afb57aeebbd762d7ead044a12fd51f639">subFromRGB</a>(uint8_t inc) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) -= inc; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a1200796b444865d101184f0c07e1915c"> 99</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a1200796b444865d101184f0c07e1915c">operator-=</a>(<a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs) { <span class="keywordflow">for</span>(iterator pixel = begin(), rhspixel = rhs.begin(), _end = end(), rhs_end = rhs.end(); (pixel != _end) &amp;&amp; (rhspixel != rhs_end); ++pixel, ++rhspixel) { (*pixel) -= (*rhspixel); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a87abde19e76dfb9ae42971aa3384a50d">addToRGB</a>(uint8_t inc) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) += inc; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a7830b1011e8f6f13298c3500eba2707a"> 99</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a7830b1011e8f6f13298c3500eba2707a">operator+=</a>(<a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs) { <span class="keywordflow">for</span>(iterator pixel = begin(), rhspixel = rhs.begin(), _end = end(), rhs_end = rhs.end(); (pixel != _end) &amp;&amp; (rhspixel != rhs_end); ++pixel, ++rhspixel) { (*pixel) += (*rhspixel); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#abfb38ddcb524aa8b7a385c590823aaf6"> 102</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#abfb38ddcb524aa8b7a385c590823aaf6">operator++</a>() { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel)++; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a1425907efc3ca64130e90095f6a254b9"> 104</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a1425907efc3ca64130e90095f6a254b9">operator++</a>(<span class="keywordtype">int</span> DUMMY_ARG) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel)++; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#afb57aeebbd762d7ead044a12fd51f639"> 102</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#afb57aeebbd762d7ead044a12fd51f639">subFromRGB</a>(uint8_t inc) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) -= inc; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a1200796b444865d101184f0c07e1915c"> 104</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a1200796b444865d101184f0c07e1915c">operator-=</a>(<a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs) { <span class="keywordflow">for</span>(iterator pixel = begin(), rhspixel = rhs.begin(), _end = end(), rhs_end = rhs.end(); (pixel != _end) &amp;&amp; (rhspixel != rhs_end); ++pixel, ++rhspixel) { (*pixel) -= (*rhspixel); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#ab31623e9f9036c6571cee8054b696621"> 107</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#ab31623e9f9036c6571cee8054b696621">operator--</a>() { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel)--; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#aef542dfd9d18f1c62bd8dadaa88a76ae"> 109</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#aef542dfd9d18f1c62bd8dadaa88a76ae">operator--</a>(<span class="keywordtype">int</span> DUMMY_ARG) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel)--; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#abfb38ddcb524aa8b7a385c590823aaf6"> 107</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#abfb38ddcb524aa8b7a385c590823aaf6">operator++</a>() { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel)++; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a1425907efc3ca64130e90095f6a254b9"> 109</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a1425907efc3ca64130e90095f6a254b9">operator++</a>(<span class="keywordtype">int</span> DUMMY_ARG) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel)++; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a1f1a98d480cc62635f24e62c68c14f65"> 112</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a1f1a98d480cc62635f24e62c68c14f65">operator/=</a>(uint8_t d) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) /= d; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#af98febdccd4f7f18afbfbb0abfb4413d"> 114</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#af98febdccd4f7f18afbfbb0abfb4413d">operator&gt;&gt;=</a>(uint8_t d) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) &gt;&gt;= d; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a3043e411e2b48b294574e0fbe848991c"> 116</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a3043e411e2b48b294574e0fbe848991c">operator*=</a>(uint8_t d) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) *= d; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
-<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82"> 119</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82">nscale8_video</a>(uint8_t scaledown) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel).<a class="code" href="class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82">nscale8_video</a>(scaledown); } <span class="keywordflow">return</span> *<span class="keyword">this</span>;}</div>
-<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a18f14f953dce5153659f30a1fc47ab2d"> 121</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a18f14f953dce5153659f30a1fc47ab2d">operator%=</a>(uint8_t scaledown) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel).<a class="code" href="class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82">nscale8_video</a>(scaledown); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231"> 123</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231">fadeLightBy</a>(uint8_t fadefactor) { <span class="keywordflow">return</span> <a class="code" href="class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82">nscale8_video</a>(255 - fadefactor); }</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1"> 126</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1">nscale8</a>(uint8_t scaledown) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel).<a class="code" href="class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1">nscale8</a>(scaledown); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#ad1b0bbeb416db7f4dd1139ea23491330"> 128</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#ad1b0bbeb416db7f4dd1139ea23491330">nscale8</a>(PIXEL_TYPE &amp; scaledown) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel).<a class="code" href="class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1">nscale8</a>(scaledown); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a195deb4034393308c9573454ac5e56ae"> 130</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a195deb4034393308c9573454ac5e56ae">nscale8</a>(<a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs) { <span class="keywordflow">for</span>(iterator pixel = begin(), rhspixel = rhs.begin(), _end = end(), rhs_end = rhs.end(); (pixel != _end) &amp;&amp; (rhspixel != rhs_end); ++pixel, ++rhspixel) { (*pixel).<a class="code" href="class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1">nscale8</a>((*rhspixel)); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div>
-<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a4861b6938f1cb9f8f885a9f3af13b8a9"> 133</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a4861b6938f1cb9f8f885a9f3af13b8a9">fadeToBlackBy</a>(uint8_t fade) { <span class="keywordflow">return</span> <a class="code" href="class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1">nscale8</a>(255 - fade); }</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
-<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#ad737aca28b069acb1bb350e635be83f4"> 136</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#ad737aca28b069acb1bb350e635be83f4">operator|=</a>(<span class="keyword">const</span> PIXEL_TYPE &amp; rhs) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) |= rhs; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a0acfbbdeb7c17986ddc806e9df64461c"> 138</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a0acfbbdeb7c17986ddc806e9df64461c">operator|=</a>(<span class="keyword">const</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs) { <span class="keywordflow">for</span>(iterator pixel = begin(), rhspixel = rhs.begin(), _end = end(), rhs_end = rhs.end(); (pixel != _end) &amp;&amp; (rhspixel != rhs_end); ++pixel, ++rhspixel) { (*pixel) |= (*rhspixel); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a2e5576eb742184423d130b4caebd830c"> 140</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a2e5576eb742184423d130b4caebd830c">operator|=</a>(uint8_t d) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) |= d; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
-<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#aec83b9f23486e0efd0729e3e5be87f81"> 143</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#aec83b9f23486e0efd0729e3e5be87f81">operator&amp;=</a>(<span class="keyword">const</span> PIXEL_TYPE &amp; rhs) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) &amp;= rhs; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a0d3f84118cabfbd0e8b9e8556d6fdc37"> 145</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a0d3f84118cabfbd0e8b9e8556d6fdc37">operator&amp;=</a>(<span class="keyword">const</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs) { <span class="keywordflow">for</span>(iterator pixel = begin(), rhspixel = rhs.begin(), _end = end(), rhs_end = rhs.end(); (pixel != _end) &amp;&amp; (rhspixel != rhs_end); ++pixel, ++rhspixel) { (*pixel) &amp;= (*rhspixel); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a1778ed3e4aaa07e64577128429de4c10"> 147</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a1778ed3e4aaa07e64577128429de4c10">operator&amp;=</a>(uint8_t d) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) &amp;= d; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a48b70c6f162cb898a38431bb63655f79"> 151</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">operator</span> bool() { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { <span class="keywordflow">if</span>((*pixel)) <span class="keywordflow">return</span> <span class="keyword">true</span>; } <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">// Color util functions</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_solid(<span class="keyword">const</span> PIXEL_TYPE &amp; color) { *<span class="keyword">this</span> = color; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_solid(<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a> &amp; color) { <span class="keywordflow">if</span>(dir&gt;0) { *<span class="keyword">this</span> = color; <span class="keywordflow">return</span> *<span class="keyword">this</span>; } }</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_rainbow(uint8_t initialhue, uint8_t deltahue=5) {</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; ::fill_rainbow(leds,len,initialhue,deltahue);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; ::fill_rainbow(leds+len+1,-len,initialhue,deltahue);</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</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;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_gradient(<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a> &amp; startcolor, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a> &amp; endcolor, TGradientDirectionCode directionCode = SHORTEST_HUES) {</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; ::fill_gradient(leds,len,startcolor, endcolor, directionCode);</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; ::fill_gradient(leds + len + 1, (-len), endcolor, startcolor, directionCode);</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="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_gradient(<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, TGradientDirectionCode directionCode = SHORTEST_HUES) {</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; ::fill_gradient(leds, len, c1, c2, c3, directionCode);</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; ::fill_gradient(leds + len + 1, -len, c3, c2, c1, directionCode);</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="keywordflow">return</span> *<span class="keyword">this</span>;</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">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_gradient(<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, TGradientDirectionCode directionCode = SHORTEST_HUES) {</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; ::fill_gradient(leds, len, c1, c2, c3, c4, directionCode);</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; ::fill_gradient(leds + len + 1, -len, c4, c3, c2, c1, directionCode);</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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_gradient_RGB(<span class="keyword">const</span> PIXEL_TYPE &amp; startcolor, <span class="keyword">const</span> PIXEL_TYPE &amp; endcolor, TGradientDirectionCode directionCode = SHORTEST_HUES) {</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; ::fill_gradient_RGB(leds,len,startcolor, endcolor);</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; ::fill_gradient_RGB(leds + len + 1, (-len), endcolor, startcolor);</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="keywordflow">return</span> *<span class="keyword">this</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;</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_gradient_RGB(<span class="keyword">const</span> PIXEL_TYPE &amp; c1, <span class="keyword">const</span> PIXEL_TYPE &amp; c2, <span class="keyword">const</span> PIXEL_TYPE &amp; c3) {</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; ::fill_gradient_RGB(leds, len, c1, c2, c3);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; ::fill_gradient_RGB(leds + len + 1, -len, c3, c2, c1);</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="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_gradient_RGB(<span class="keyword">const</span> PIXEL_TYPE &amp; c1, <span class="keyword">const</span> PIXEL_TYPE &amp; c2, <span class="keyword">const</span> PIXEL_TYPE &amp; c3, <span class="keyword">const</span> PIXEL_TYPE &amp; c4) {</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; ::fill_gradient_RGB(leds, len, c1, c2, c3, c4);</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; ::fill_gradient_RGB(leds + len + 1, -len, c4, c3, c2, c1);</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="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; nblend(<span class="keyword">const</span> PIXEL_TYPE &amp; overlay, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { ::nblend((*pixel), overlay, amountOfOverlay); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; nblend(<span class="keyword">const</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay) { <span class="keywordflow">for</span>(iterator pixel = begin(), rhspixel = rhs.begin(), _end = end(), rhs_end = rhs.end(); (pixel != _end) &amp;&amp; (rhspixel != rhs_end); ++pixel, ++rhspixel) { ::nblend((*pixel), (*rhspixel), amountOfOverlay); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</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="comment">// Note: only bringing in a 1d blur, not sure 2d blur makes sense when looking at sub arrays</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; blur1d(<a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount) {</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; ::blur1d(leds, len, blur_amount);</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; ::blur1d(leds + len + 1, -len, blur_amount);</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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; napplyGamma_video(<span class="keywordtype">float</span> gamma) {</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; ::napplyGamma_video(leds, len, gamma);</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; ::napplyGamma_video(leds + len + 1, -len, gamma);</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; napplyGamma_video(<span class="keywordtype">float</span> gammaR, <span class="keywordtype">float</span> gammaG, <span class="keywordtype">float</span> gammaB) {</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; ::napplyGamma_video(leds, len, gammaR, gammaG, gammaB);</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; ::napplyGamma_video(leds + len + 1, -len, gammaR, gammaG, gammaB);</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="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="comment">// TODO: Make this a fully specified/proper iterator</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div>
-<div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="class_c_pixel_view_1_1pixelset__iterator__base.html"> 253</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a> {</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; T * leds;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">const</span> int8_t dir;</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a>(<span class="keyword">const</span> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a> &amp; rhs) : leds(rhs.leds), dir(rhs.dir) {}</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a>(T * _leds, <span class="keyword">const</span> <span class="keywordtype">char</span> _dir) : leds(_leds), dir(_dir) {}</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; __attribute__((always_inline)) <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a>&amp; <a class="code" href="class_c_pixel_view.html#abfb38ddcb524aa8b7a385c590823aaf6">operator++</a>() { leds += dir; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a> <a class="code" href="class_c_pixel_view.html#abfb38ddcb524aa8b7a385c590823aaf6">operator++</a>(<span class="keywordtype">int</span>) { <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a> tmp(*<span class="keyword">this</span>); leds += dir; <span class="keywordflow">return</span> tmp; }</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="class_c_pixel_view.html#a13b5daab212774a2957473acea4e843b">operator==</a>(<a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a> &amp; other)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> leds == other.leds; } <span class="comment">// &amp;&amp; set==other.set; }</span></div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="class_c_pixel_view.html#a7ad3ae5a948047704c58458b13bdb53c">operator!=</a>(<a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a> &amp; other)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> leds != other.leds; } <span class="comment">// || set != other.set; }</span></div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> PIXEL_TYPE&amp; operator*()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *leds; }</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">typedef</span> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base&lt;PIXEL_TYPE&gt;</a> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">iterator</a>;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keyword">typedef</span> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base&lt;const PIXEL_TYPE&gt;</a> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">const_iterator</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"> 272</span>&#160; iterator begin() { <span class="keywordflow">return</span> iterator(leds, dir); }</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; iterator end() { <span class="keywordflow">return</span> iterator(end_pos, dir); }</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; iterator begin()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> iterator(leds, dir); }</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; iterator end()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> iterator(end_pos, dir); }</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; const_iterator cbegin()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> const_iterator(leds, dir); }</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; const_iterator cend()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> const_iterator(end_pos, dir); }</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;};</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_pixel_view.html">CPixelView&lt;CRGB&gt;</a> <a class="code" href="class_c_pixel_view.html">CRGBSet</a>;</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;inline <a class="code" href="struct_c_r_g_b.html">CRGB</a> *operator+(const CRGBSet &amp; pixels, <span class="keywordtype">int</span> offset) { <span class="keywordflow">return</span> (<a class="code" href="struct_c_r_g_b.html">CRGB</a>*)pixels + offset; }</div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#ab31623e9f9036c6571cee8054b696621"> 112</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#ab31623e9f9036c6571cee8054b696621">operator--</a>() { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel)--; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#aef542dfd9d18f1c62bd8dadaa88a76ae"> 114</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#aef542dfd9d18f1c62bd8dadaa88a76ae">operator--</a>(<span class="keywordtype">int</span> DUMMY_ARG) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel)--; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a1f1a98d480cc62635f24e62c68c14f65"> 117</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a1f1a98d480cc62635f24e62c68c14f65">operator/=</a>(uint8_t d) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) /= d; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#af98febdccd4f7f18afbfbb0abfb4413d"> 119</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#af98febdccd4f7f18afbfbb0abfb4413d">operator&gt;&gt;=</a>(uint8_t d) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) &gt;&gt;= d; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a3043e411e2b48b294574e0fbe848991c"> 121</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a3043e411e2b48b294574e0fbe848991c">operator*=</a>(uint8_t d) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) *= d; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82"> 124</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82">nscale8_video</a>(uint8_t scaledown) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel).<a class="code" href="class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82">nscale8_video</a>(scaledown); } <span class="keywordflow">return</span> *<span class="keyword">this</span>;}</div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a18f14f953dce5153659f30a1fc47ab2d"> 126</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a18f14f953dce5153659f30a1fc47ab2d">operator%=</a>(uint8_t scaledown) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel).<a class="code" href="class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82">nscale8_video</a>(scaledown); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231"> 128</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231">fadeLightBy</a>(uint8_t fadefactor) { <span class="keywordflow">return</span> <a class="code" href="class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82">nscale8_video</a>(255 - fadefactor); }</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1"> 131</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1">nscale8</a>(uint8_t scaledown) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel).<a class="code" href="class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1">nscale8</a>(scaledown); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#ad1b0bbeb416db7f4dd1139ea23491330"> 133</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#ad1b0bbeb416db7f4dd1139ea23491330">nscale8</a>(PIXEL_TYPE &amp; scaledown) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel).<a class="code" href="class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1">nscale8</a>(scaledown); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a195deb4034393308c9573454ac5e56ae"> 135</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a195deb4034393308c9573454ac5e56ae">nscale8</a>(<a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs) { <span class="keywordflow">for</span>(iterator pixel = begin(), rhspixel = rhs.begin(), _end = end(), rhs_end = rhs.end(); (pixel != _end) &amp;&amp; (rhspixel != rhs_end); ++pixel, ++rhspixel) { (*pixel).<a class="code" href="class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1">nscale8</a>((*rhspixel)); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a4861b6938f1cb9f8f885a9f3af13b8a9"> 138</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a4861b6938f1cb9f8f885a9f3af13b8a9">fadeToBlackBy</a>(uint8_t fade) { <span class="keywordflow">return</span> <a class="code" href="class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1">nscale8</a>(255 - fade); }</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#ad737aca28b069acb1bb350e635be83f4"> 141</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#ad737aca28b069acb1bb350e635be83f4">operator|=</a>(<span class="keyword">const</span> PIXEL_TYPE &amp; rhs) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) |= rhs; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a0acfbbdeb7c17986ddc806e9df64461c"> 143</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a0acfbbdeb7c17986ddc806e9df64461c">operator|=</a>(<span class="keyword">const</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs) { <span class="keywordflow">for</span>(iterator pixel = begin(), rhspixel = rhs.begin(), _end = end(), rhs_end = rhs.end(); (pixel != _end) &amp;&amp; (rhspixel != rhs_end); ++pixel, ++rhspixel) { (*pixel) |= (*rhspixel); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a2e5576eb742184423d130b4caebd830c"> 145</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a2e5576eb742184423d130b4caebd830c">operator|=</a>(uint8_t d) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) |= d; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#aec83b9f23486e0efd0729e3e5be87f81"> 148</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#aec83b9f23486e0efd0729e3e5be87f81">operator&amp;=</a>(<span class="keyword">const</span> PIXEL_TYPE &amp; rhs) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) &amp;= rhs; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a0d3f84118cabfbd0e8b9e8556d6fdc37"> 150</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a0d3f84118cabfbd0e8b9e8556d6fdc37">operator&amp;=</a>(<span class="keyword">const</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs) { <span class="keywordflow">for</span>(iterator pixel = begin(), rhspixel = rhs.begin(), _end = end(), rhs_end = rhs.end(); (pixel != _end) &amp;&amp; (rhspixel != rhs_end); ++pixel, ++rhspixel) { (*pixel) &amp;= (*rhspixel); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a1778ed3e4aaa07e64577128429de4c10"> 152</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; <a class="code" href="class_c_pixel_view.html#a1778ed3e4aaa07e64577128429de4c10">operator&amp;=</a>(uint8_t d) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { (*pixel) &amp;= d; } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="class_c_pixel_view.html#a48b70c6f162cb898a38431bb63655f79"> 156</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">operator</span> bool() { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { <span class="keywordflow">if</span>((*pixel)) <span class="keywordflow">return</span> <span class="keyword">true</span>; } <span class="keywordflow">return</span> <span class="keyword">false</span>; }</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; <span class="comment">// Color util functions</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_solid(<span class="keyword">const</span> PIXEL_TYPE &amp; color) { *<span class="keyword">this</span> = color; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_solid(<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a> &amp; color) { <span class="keywordflow">if</span>(dir&gt;0) { *<span class="keyword">this</span> = color; <span class="keywordflow">return</span> *<span class="keyword">this</span>; } }</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_rainbow(uint8_t initialhue, uint8_t deltahue=5) {</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; ::fill_rainbow(leds,len,initialhue,deltahue);</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; ::fill_rainbow(leds+len+1,-len,initialhue,deltahue);</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_gradient(<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a> &amp; startcolor, <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a> &amp; endcolor, TGradientDirectionCode directionCode = SHORTEST_HUES) {</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; ::fill_gradient(leds,len,startcolor, endcolor, directionCode);</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; ::fill_gradient(leds + len + 1, (-len), endcolor, startcolor, directionCode);</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="keywordflow">return</span> *<span class="keyword">this</span>;</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="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_gradient(<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, TGradientDirectionCode directionCode = SHORTEST_HUES) {</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; ::fill_gradient(leds, len, c1, c2, c3, directionCode);</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; ::fill_gradient(leds + len + 1, -len, c3, c2, c1, directionCode);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_gradient(<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, TGradientDirectionCode directionCode = SHORTEST_HUES) {</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; ::fill_gradient(leds, len, c1, c2, c3, c4, directionCode);</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; ::fill_gradient(leds + len + 1, -len, c4, c3, c2, c1, directionCode);</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_gradient_RGB(<span class="keyword">const</span> PIXEL_TYPE &amp; startcolor, <span class="keyword">const</span> PIXEL_TYPE &amp; endcolor, TGradientDirectionCode directionCode = SHORTEST_HUES) {</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; ::fill_gradient_RGB(leds,len,startcolor, endcolor);</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; ::fill_gradient_RGB(leds + len + 1, (-len), endcolor, startcolor);</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; <span class="keywordflow">return</span> *<span class="keyword">this</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;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_gradient_RGB(<span class="keyword">const</span> PIXEL_TYPE &amp; c1, <span class="keyword">const</span> PIXEL_TYPE &amp; c2, <span class="keyword">const</span> PIXEL_TYPE &amp; c3) {</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; ::fill_gradient_RGB(leds, len, c1, c2, c3);</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; ::fill_gradient_RGB(leds + len + 1, -len, c3, c2, c1);</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="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; fill_gradient_RGB(<span class="keyword">const</span> PIXEL_TYPE &amp; c1, <span class="keyword">const</span> PIXEL_TYPE &amp; c2, <span class="keyword">const</span> PIXEL_TYPE &amp; c3, <span class="keyword">const</span> PIXEL_TYPE &amp; c4) {</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; ::fill_gradient_RGB(leds, len, c1, c2, c3, c4);</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; ::fill_gradient_RGB(leds + len + 1, -len, c4, c3, c2, c1);</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="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; nblend(<span class="keyword">const</span> PIXEL_TYPE &amp; overlay, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay) { <span class="keywordflow">for</span>(iterator pixel = begin(), _end = end(); pixel != _end; ++pixel) { ::nblend((*pixel), overlay, amountOfOverlay); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; nblend(<span class="keyword">const</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; rhs, <a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> amountOfOverlay) { <span class="keywordflow">for</span>(iterator pixel = begin(), rhspixel = rhs.begin(), _end = end(), rhs_end = rhs.end(); (pixel != _end) &amp;&amp; (rhspixel != rhs_end); ++pixel, ++rhspixel) { ::nblend((*pixel), (*rhspixel), amountOfOverlay); } <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="comment">// Note: only bringing in a 1d blur, not sure 2d blur makes sense when looking at sub arrays</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; blur1d(<a class="code" href="group__lib8tion.html#ga5d6d013429a5b8a09d564d6137217644">fract8</a> blur_amount) {</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; ::blur1d(leds, len, blur_amount);</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; ::blur1d(leds + len + 1, -len, blur_amount);</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; napplyGamma_video(<span class="keywordtype">float</span> gamma) {</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; ::napplyGamma_video(leds, len, gamma);</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; ::napplyGamma_video(leds + len + 1, -len, gamma);</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; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a> &amp; napplyGamma_video(<span class="keywordtype">float</span> gammaR, <span class="keywordtype">float</span> gammaG, <span class="keywordtype">float</span> gammaB) {</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">if</span>(dir &gt;= 0) {</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; ::napplyGamma_video(leds, len, gammaR, gammaG, gammaB);</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; ::napplyGamma_video(leds + len + 1, -len, gammaR, gammaG, gammaB);</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</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;</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">// TODO: Make this a fully specified/proper iterator</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> T&gt;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="class_c_pixel_view_1_1pixelset__iterator__base.html"> 258</a></span>&#160; <span class="keyword">class </span><a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a> {</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; T * leds;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">const</span> int8_t dir;</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a>(<span class="keyword">const</span> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a> &amp; rhs) : leds(rhs.leds), dir(rhs.dir) {}</div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a>(T * _leds, <span class="keyword">const</span> <span class="keywordtype">char</span> _dir) : leds(_leds), dir(_dir) {}</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; __attribute__((always_inline)) <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a>&amp; <a class="code" href="class_c_pixel_view.html#abfb38ddcb524aa8b7a385c590823aaf6">operator++</a>() { leds += dir; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a> <a class="code" href="class_c_pixel_view.html#abfb38ddcb524aa8b7a385c590823aaf6">operator++</a>(<span class="keywordtype">int</span>) { <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a> tmp(*<span class="keyword">this</span>); leds += dir; <span class="keywordflow">return</span> tmp; }</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; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="class_c_pixel_view.html#a13b5daab212774a2957473acea4e843b">operator==</a>(<a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a> &amp; other)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> leds == other.leds; } <span class="comment">// &amp;&amp; set==other.set; }</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; __attribute__((always_inline)) <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="class_c_pixel_view.html#a7ad3ae5a948047704c58458b13bdb53c">operator!=</a>(<a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base</a> &amp; other)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> leds != other.leds; } <span class="comment">// || set != other.set; }</span></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; __attribute__((always_inline)) <span class="keyword">inline</span> PIXEL_TYPE&amp; operator*()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> *leds; }</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; };</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">typedef</span> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base&lt;PIXEL_TYPE&gt;</a> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">iterator</a>;</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">typedef</span> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">pixelset_iterator_base&lt;const PIXEL_TYPE&gt;</a> <a class="code" href="class_c_pixel_view_1_1pixelset__iterator__base.html">const_iterator</a>;</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; iterator begin() { <span class="keywordflow">return</span> iterator(leds, dir); }</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; iterator end() { <span class="keywordflow">return</span> iterator(end_pos, dir); }</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; iterator begin()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> iterator(leds, dir); }</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; iterator end()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> iterator(end_pos, dir); }</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; const_iterator cbegin()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> const_iterator(leds, dir); }</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; const_iterator cend()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> const_iterator(end_pos, dir); }</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;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SIZE&gt;</div>
-<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="class_c_r_g_b_array.html"> 289</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_r_g_b_array.html">CRGBArray</a> : <span class="keyword">public</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a>&lt;CRGB&gt; {</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rawleds[SIZE];</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="class_c_r_g_b_array.html">CRGBArray</a>() : <a class="code" href="class_c_pixel_view.html">CPixelView&lt;CRGB&gt;</a>(rawleds, SIZE) {}</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;};</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="class_c_pixel_view_html_ad1b0bbeb416db7f4dd1139ea23491330"><div class="ttname"><a href="class_c_pixel_view.html#ad1b0bbeb416db7f4dd1139ea23491330">CPixelView::nscale8</a></div><div class="ttdeci">CPixelView &amp; nscale8(PIXEL_TYPE &amp;scaledown)</div><div class="ttdoc">Scale every led by the given scale. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00128">pixelset.h:128</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_ad6e7a725732d4fff0dc4fa5c29015127"><div class="ttname"><a href="class_c_pixel_view.html#ad6e7a725732d4fff0dc4fa5c29015127">CPixelView::operator-</a></div><div class="ttdeci">CPixelView operator-()</div><div class="ttdoc">Access an inclusive subset of the leds in this set, starting from the first. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00061">pixelset.h:61</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_aec83b9f23486e0efd0729e3e5be87f81"><div class="ttname"><a href="class_c_pixel_view.html#aec83b9f23486e0efd0729e3e5be87f81">CPixelView::operator&amp;=</a></div><div class="ttdeci">CPixelView &amp; operator&amp;=(const PIXEL_TYPE &amp;rhs)</div><div class="ttdoc">Apply the PIXEL_TYPE &= operator to every pixel in this set with the given PIXEL_TYPE value (bringing...</div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00143">pixelset.h:143</a></div></div>
-<div class="ttc" id="class_c_r_g_b_array_html"><div class="ttname"><a href="class_c_r_g_b_array.html">CRGBArray</a></div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00289">pixelset.h:289</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a1425907efc3ca64130e90095f6a254b9"><div class="ttname"><a href="class_c_pixel_view.html#a1425907efc3ca64130e90095f6a254b9">CPixelView::operator++</a></div><div class="ttdeci">CPixelView &amp; operator++(int DUMMY_ARG)</div><div class="ttdoc">Increment every pixel value in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00104">pixelset.h:104</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a0ef40ea240450afe6fdb7f4cf6a5b231"><div class="ttname"><a href="class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231">CPixelView::fadeLightBy</a></div><div class="ttdeci">CPixelView &amp; fadeLightBy(uint8_t fadefactor)</div><div class="ttdoc">Fade every led down by the given scale. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00123">pixelset.h:123</a></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> <a href="pixeltypes_8h_source.html#l00088">pixeltypes.h:88</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a3043e411e2b48b294574e0fbe848991c"><div class="ttname"><a href="class_c_pixel_view.html#a3043e411e2b48b294574e0fbe848991c">CPixelView::operator*=</a></div><div class="ttdeci">CPixelView &amp; operator*=(uint8_t d)</div><div class="ttdoc">Multiply every led in this set by the given value. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00116">pixelset.h:116</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a0d3f84118cabfbd0e8b9e8556d6fdc37"><div class="ttname"><a href="class_c_pixel_view.html#a0d3f84118cabfbd0e8b9e8556d6fdc37">CPixelView::operator&amp;=</a></div><div class="ttdeci">CPixelView &amp; operator&amp;=(const CPixelView &amp;rhs)</div><div class="ttdoc">Apply the PIXEL_TYPE &= operator to every pixel in this set with every pixel in the passed in set...</div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00145">pixelset.h:145</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_abfb38ddcb524aa8b7a385c590823aaf6"><div class="ttname"><a href="class_c_pixel_view.html#abfb38ddcb524aa8b7a385c590823aaf6">CPixelView::operator++</a></div><div class="ttdeci">CPixelView &amp; operator++()</div><div class="ttdoc">Increment every pixel value in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00102">pixelset.h:102</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a87abde19e76dfb9ae42971aa3384a50d"><div class="ttname"><a href="class_c_pixel_view.html#a87abde19e76dfb9ae42971aa3384a50d">CPixelView::addToRGB</a></div><div class="ttdeci">CPixelView &amp; addToRGB(uint8_t inc)</div><div class="ttdoc">Add the passed in value to r,g, b for all the pixels in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00092">pixelset.h:92</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_aa35b7eb6c9b8d2510df02af26db03f29"><div class="ttname"><a href="class_c_pixel_view.html#aa35b7eb6c9b8d2510df02af26db03f29">CPixelView::operator=</a></div><div class="ttdeci">CPixelView &amp; operator=(const PIXEL_TYPE &amp;color)</div><div class="ttdoc">Assign the passed in color to all elements in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00068">pixelset.h:68</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a384417cfef1e38aa24fde4673fd8eaac"><div class="ttname"><a href="class_c_pixel_view.html#a384417cfef1e38aa24fde4673fd8eaac">CPixelView::reversed</a></div><div class="ttdeci">bool reversed()</div><div class="ttdoc">Whether or not this set goes backwards. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00039">pixelset.h:39</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_ab31623e9f9036c6571cee8054b696621"><div class="ttname"><a href="class_c_pixel_view.html#ab31623e9f9036c6571cee8054b696621">CPixelView::operator--</a></div><div class="ttdeci">CPixelView &amp; operator--()</div><div class="ttdoc">Decrement every pixel value in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00107">pixelset.h:107</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_aef542dfd9d18f1c62bd8dadaa88a76ae"><div class="ttname"><a href="class_c_pixel_view.html#aef542dfd9d18f1c62bd8dadaa88a76ae">CPixelView::operator--</a></div><div class="ttdeci">CPixelView &amp; operator--(int DUMMY_ARG)</div><div class="ttdoc">Decrement every pixel value in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00109">pixelset.h:109</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_aa2b10d01a183235fcf62e50049c49dd4"><div class="ttname"><a href="class_c_pixel_view.html#aa2b10d01a183235fcf62e50049c49dd4">CPixelView::operator()</a></div><div class="ttdeci">CPixelView operator()(int start, int end)</div><div class="ttdoc">Access an inclusive subset of the leds in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00054">pixelset.h:54</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_afe22ceed228286280b4c6f7692db105a"><div class="ttname"><a href="class_c_pixel_view.html#afe22ceed228286280b4c6f7692db105a">CPixelView::CPixelView</a></div><div class="ttdeci">CPixelView(const CPixelView &amp;other)</div><div class="ttdoc">PixelSet copy constructor. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00018">pixelset.h:18</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a195deb4034393308c9573454ac5e56ae"><div class="ttname"><a href="class_c_pixel_view.html#a195deb4034393308c9573454ac5e56ae">CPixelView::nscale8</a></div><div class="ttdeci">CPixelView &amp; nscale8(CPixelView &amp;rhs)</div><div class="ttdoc">Scale every led in this set by every led in the other set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00130">pixelset.h:130</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_ada24d4d93b849bc31aec124f682b836a"><div class="ttname"><a href="class_c_pixel_view.html#ada24d4d93b849bc31aec124f682b836a">CPixelView::CPixelView</a></div><div class="ttdeci">CPixelView(PIXEL_TYPE *_leds, int _start, int _end)</div><div class="ttdoc">PixelSet constructor for the given set of leds, with start and end boundaries. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00031">pixelset.h:31</a></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> <a href="lib8tion_8h_source.html#l00324">lib8tion.h:324</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a267b004b77ee7da80be81f6ff73c1d82"><div class="ttname"><a href="class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82">CPixelView::nscale8_video</a></div><div class="ttdeci">CPixelView &amp; nscale8_video(uint8_t scaledown)</div><div class="ttdoc">Scale every led by the given scale. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00119">pixelset.h:119</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a18f14f953dce5153659f30a1fc47ab2d"><div class="ttname"><a href="class_c_pixel_view.html#a18f14f953dce5153659f30a1fc47ab2d">CPixelView::operator%=</a></div><div class="ttdeci">CPixelView &amp; operator%=(uint8_t scaledown)</div><div class="ttdoc">Scale down every led by the given scale. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00121">pixelset.h:121</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a7830b1011e8f6f13298c3500eba2707a"><div class="ttname"><a href="class_c_pixel_view.html#a7830b1011e8f6f13298c3500eba2707a">CPixelView::operator+=</a></div><div class="ttdeci">CPixelView &amp; operator+=(CPixelView &amp;rhs)</div><div class="ttdoc">Add every pixel in the other set to this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00094">pixelset.h:94</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a7ad3ae5a948047704c58458b13bdb53c"><div class="ttname"><a href="class_c_pixel_view.html#a7ad3ae5a948047704c58458b13bdb53c">CPixelView::operator!=</a></div><div class="ttdeci">bool operator!=(const CPixelView &amp;rhs) const </div><div class="ttdoc">do these sets point to the different things (note, this is different from the contents of the set bei...</div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00045">pixelset.h:45</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html"><div class="ttname"><a href="class_c_pixel_view.html">CPixelView</a></div><div class="ttdoc">Represents a set of CRGB led objects. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00008">pixelset.h:8</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_adde9560e0a2f538a998e849ff0361bc1"><div class="ttname"><a href="class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1">CPixelView::nscale8</a></div><div class="ttdeci">CPixelView &amp; nscale8(uint8_t scaledown)</div><div class="ttdoc">Scale every led by the given scale. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00126">pixelset.h:126</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a4861b6938f1cb9f8f885a9f3af13b8a9"><div class="ttname"><a href="class_c_pixel_view.html#a4861b6938f1cb9f8f885a9f3af13b8a9">CPixelView::fadeToBlackBy</a></div><div class="ttdeci">CPixelView &amp; fadeToBlackBy(uint8_t fade)</div><div class="ttdoc">Fade every led down by the given scale. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00133">pixelset.h:133</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a0acfbbdeb7c17986ddc806e9df64461c"><div class="ttname"><a href="class_c_pixel_view.html#a0acfbbdeb7c17986ddc806e9df64461c">CPixelView::operator|=</a></div><div class="ttdeci">CPixelView &amp; operator|=(const CPixelView &amp;rhs)</div><div class="ttdoc">Apply the PIXEL_TYPE |= operator to every pixel in this set with every pixel in the passed in set...</div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00138">pixelset.h:138</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a1f1a98d480cc62635f24e62c68c14f65"><div class="ttname"><a href="class_c_pixel_view.html#a1f1a98d480cc62635f24e62c68c14f65">CPixelView::operator/=</a></div><div class="ttdeci">CPixelView &amp; operator/=(uint8_t d)</div><div class="ttdoc">Divide every led by the given value. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00112">pixelset.h:112</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_afe3500651fc4eb5770aeb01728aa0a1e"><div class="ttname"><a href="class_c_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e">CPixelView::size</a></div><div class="ttdeci">int size()</div><div class="ttdoc">Get the size of this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00035">pixelset.h:35</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a13b5daab212774a2957473acea4e843b"><div class="ttname"><a href="class_c_pixel_view.html#a13b5daab212774a2957473acea4e843b">CPixelView::operator==</a></div><div class="ttdeci">bool operator==(const CPixelView &amp;rhs) const </div><div class="ttdoc">do these sets point to the same thing (note, this is different from the contents of the set being the...</div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00042">pixelset.h:42</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a3e7c2cf9a8dc476f9a92850d69b7c499"><div class="ttname"><a href="class_c_pixel_view.html#a3e7c2cf9a8dc476f9a92850d69b7c499">CPixelView::operator=</a></div><div class="ttdeci">CPixelView &amp; operator=(const CPixelView &amp;rhs)</div><div class="ttdoc">Copy the contents of the passed in set to our set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00082">pixelset.h:82</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a1200796b444865d101184f0c07e1915c"><div class="ttname"><a href="class_c_pixel_view.html#a1200796b444865d101184f0c07e1915c">CPixelView::operator-=</a></div><div class="ttdeci">CPixelView &amp; operator-=(CPixelView &amp;rhs)</div><div class="ttdoc">Subtract every pixel in the other set from this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00099">pixelset.h:99</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_ad737aca28b069acb1bb350e635be83f4"><div class="ttname"><a href="class_c_pixel_view.html#ad737aca28b069acb1bb350e635be83f4">CPixelView::operator|=</a></div><div class="ttdeci">CPixelView &amp; operator|=(const PIXEL_TYPE &amp;rhs)</div><div class="ttdoc">Apply the PIXEL_TYPE |= operator to every pixel in this set with the given PIXEL_TYPE value (bringing...</div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00136">pixelset.h:136</a></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> <a href="fastled__delay_8h_source.html#l00085">fastled_delay.h:85</a></div></div>
-<div class="ttc" id="class_c_pixel_view_1_1pixelset__iterator__base_html"><div class="ttname"><a href="class_c_pixel_view_1_1pixelset__iterator__base.html">CPixelView::pixelset_iterator_base</a></div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00253">pixelset.h:253</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a2e5576eb742184423d130b4caebd830c"><div class="ttname"><a href="class_c_pixel_view.html#a2e5576eb742184423d130b4caebd830c">CPixelView::operator|=</a></div><div class="ttdeci">CPixelView &amp; operator|=(uint8_t d)</div><div class="ttdoc">Apply the PIXEL_TYPE |= operator to every pixel in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00140">pixelset.h:140</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_aba3ece62dbd9f340a0cd78a4c69ab116"><div class="ttname"><a href="class_c_pixel_view.html#aba3ece62dbd9f340a0cd78a4c69ab116">CPixelView::operator[]</a></div><div class="ttdeci">PIXEL_TYPE &amp; operator[](int x) const </div><div class="ttdoc">access a single element in this set, just like an array operator </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00048">pixelset.h:48</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a051455d30c4390abd81bbb23182d22a8"><div class="ttname"><a href="class_c_pixel_view.html#a051455d30c4390abd81bbb23182d22a8">CPixelView::CPixelView</a></div><div class="ttdeci">CPixelView(PIXEL_TYPE *_leds, int _len)</div><div class="ttdoc">pixelset constructor for a pixel set starting at the given PIXEL_TYPE* and going for _len leds...</div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00024">pixelset.h:24</a></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> <a href="pixeltypes_8h_source.html#l00021">pixeltypes.h:21</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_af98febdccd4f7f18afbfbb0abfb4413d"><div class="ttname"><a href="class_c_pixel_view.html#af98febdccd4f7f18afbfbb0abfb4413d">CPixelView::operator&gt;&gt;=</a></div><div class="ttdeci">CPixelView &amp; operator&gt;&gt;=(uint8_t d)</div><div class="ttdoc">Shift every led in this set right by the given number of bits. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00114">pixelset.h:114</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_a1778ed3e4aaa07e64577128429de4c10"><div class="ttname"><a href="class_c_pixel_view.html#a1778ed3e4aaa07e64577128429de4c10">CPixelView::operator&amp;=</a></div><div class="ttdeci">CPixelView &amp; operator&amp;=(uint8_t d)</div><div class="ttdoc">APply the PIXEL_TYPE &= operator to every pixel in this set with the passed in value. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00147">pixelset.h:147</a></div></div>
-<div class="ttc" id="class_c_pixel_view_html_afb57aeebbd762d7ead044a12fd51f639"><div class="ttname"><a href="class_c_pixel_view.html#afb57aeebbd762d7ead044a12fd51f639">CPixelView::subFromRGB</a></div><div class="ttdeci">CPixelView &amp; subFromRGB(uint8_t inc)</div><div class="ttdoc">Subtract the passed in value from r,g,b for all pixels in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00097">pixelset.h:97</a></div></div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="keyword">typedef</span> <a class="code" href="class_c_pixel_view.html">CPixelView&lt;CRGB&gt;</a> <a class="code" href="class_c_pixel_view.html">CRGBSet</a>;</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;<a class="code" href="group___bitswap.html#ga01396a2e40133293c3badab349ac99f0">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;inline <a class="code" href="struct_c_r_g_b.html">CRGB</a> *operator+(const CRGBSet &amp; pixels, <span class="keywordtype">int</span> offset) { <span class="keywordflow">return</span> (<a class="code" href="struct_c_r_g_b.html">CRGB</a>*)pixels + offset; }</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;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="keyword">template</span>&lt;<span class="keywordtype">int</span> SIZE&gt;</div>
+<div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="class_c_r_g_b_array.html"> 294</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_c_r_g_b_array.html">CRGBArray</a> : <span class="keyword">public</span> <a class="code" href="class_c_pixel_view.html">CPixelView</a>&lt;CRGB&gt; {</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> rawleds[SIZE];</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="class_c_r_g_b_array.html">CRGBArray</a>() : <a class="code" href="class_c_pixel_view.html">CPixelView&lt;CRGB&gt;</a>(rawleds, SIZE) {}</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;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="class_c_pixel_view_html_ad1b0bbeb416db7f4dd1139ea23491330"><div class="ttname"><a href="class_c_pixel_view.html#ad1b0bbeb416db7f4dd1139ea23491330">CPixelView::nscale8</a></div><div class="ttdeci">CPixelView &amp; nscale8(PIXEL_TYPE &amp;scaledown)</div><div class="ttdoc">Scale every led by the given scale. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00133">pixelset.h:133</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_ad6e7a725732d4fff0dc4fa5c29015127"><div class="ttname"><a href="class_c_pixel_view.html#ad6e7a725732d4fff0dc4fa5c29015127">CPixelView::operator-</a></div><div class="ttdeci">CPixelView operator-()</div><div class="ttdoc">Access an inclusive subset of the leds in this set, starting from the first. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00063">pixelset.h:63</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_aec83b9f23486e0efd0729e3e5be87f81"><div class="ttname"><a href="class_c_pixel_view.html#aec83b9f23486e0efd0729e3e5be87f81">CPixelView::operator&amp;=</a></div><div class="ttdeci">CPixelView &amp; operator&amp;=(const PIXEL_TYPE &amp;rhs)</div><div class="ttdoc">Apply the PIXEL_TYPE &= operator to every pixel in this set with the given PIXEL_TYPE value (bringing...</div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00148">pixelset.h:148</a></div></div>
+<div class="ttc" id="class_c_r_g_b_array_html"><div class="ttname"><a href="class_c_r_g_b_array.html">CRGBArray</a></div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00294">pixelset.h:294</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a1425907efc3ca64130e90095f6a254b9"><div class="ttname"><a href="class_c_pixel_view.html#a1425907efc3ca64130e90095f6a254b9">CPixelView::operator++</a></div><div class="ttdeci">CPixelView &amp; operator++(int DUMMY_ARG)</div><div class="ttdoc">Increment every pixel value in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00109">pixelset.h:109</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a0ef40ea240450afe6fdb7f4cf6a5b231"><div class="ttname"><a href="class_c_pixel_view.html#a0ef40ea240450afe6fdb7f4cf6a5b231">CPixelView::fadeLightBy</a></div><div class="ttdeci">CPixelView &amp; fadeLightBy(uint8_t fadefactor)</div><div class="ttdoc">Fade every led down by the given scale. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00128">pixelset.h:128</a></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> <a href="pixeltypes_8h_source.html#l00090">pixeltypes.h:90</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a3043e411e2b48b294574e0fbe848991c"><div class="ttname"><a href="class_c_pixel_view.html#a3043e411e2b48b294574e0fbe848991c">CPixelView::operator*=</a></div><div class="ttdeci">CPixelView &amp; operator*=(uint8_t d)</div><div class="ttdoc">Multiply every led in this set by the given value. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00121">pixelset.h:121</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a0d3f84118cabfbd0e8b9e8556d6fdc37"><div class="ttname"><a href="class_c_pixel_view.html#a0d3f84118cabfbd0e8b9e8556d6fdc37">CPixelView::operator&amp;=</a></div><div class="ttdeci">CPixelView &amp; operator&amp;=(const CPixelView &amp;rhs)</div><div class="ttdoc">Apply the PIXEL_TYPE &= operator to every pixel in this set with every pixel in the passed in set...</div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00150">pixelset.h:150</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_abfb38ddcb524aa8b7a385c590823aaf6"><div class="ttname"><a href="class_c_pixel_view.html#abfb38ddcb524aa8b7a385c590823aaf6">CPixelView::operator++</a></div><div class="ttdeci">CPixelView &amp; operator++()</div><div class="ttdoc">Increment every pixel value in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00107">pixelset.h:107</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a87abde19e76dfb9ae42971aa3384a50d"><div class="ttname"><a href="class_c_pixel_view.html#a87abde19e76dfb9ae42971aa3384a50d">CPixelView::addToRGB</a></div><div class="ttdeci">CPixelView &amp; addToRGB(uint8_t inc)</div><div class="ttdoc">Add the passed in value to r,g, b for all the pixels in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00097">pixelset.h:97</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_aa35b7eb6c9b8d2510df02af26db03f29"><div class="ttname"><a href="class_c_pixel_view.html#aa35b7eb6c9b8d2510df02af26db03f29">CPixelView::operator=</a></div><div class="ttdeci">CPixelView &amp; operator=(const PIXEL_TYPE &amp;color)</div><div class="ttdoc">Assign the passed in color to all elements in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00070">pixelset.h:70</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a384417cfef1e38aa24fde4673fd8eaac"><div class="ttname"><a href="class_c_pixel_view.html#a384417cfef1e38aa24fde4673fd8eaac">CPixelView::reversed</a></div><div class="ttdeci">bool reversed()</div><div class="ttdoc">Whether or not this set goes backwards. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00041">pixelset.h:41</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_ab31623e9f9036c6571cee8054b696621"><div class="ttname"><a href="class_c_pixel_view.html#ab31623e9f9036c6571cee8054b696621">CPixelView::operator--</a></div><div class="ttdeci">CPixelView &amp; operator--()</div><div class="ttdoc">Decrement every pixel value in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00112">pixelset.h:112</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_aef542dfd9d18f1c62bd8dadaa88a76ae"><div class="ttname"><a href="class_c_pixel_view.html#aef542dfd9d18f1c62bd8dadaa88a76ae">CPixelView::operator--</a></div><div class="ttdeci">CPixelView &amp; operator--(int DUMMY_ARG)</div><div class="ttdoc">Decrement every pixel value in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00114">pixelset.h:114</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_aa2b10d01a183235fcf62e50049c49dd4"><div class="ttname"><a href="class_c_pixel_view.html#aa2b10d01a183235fcf62e50049c49dd4">CPixelView::operator()</a></div><div class="ttdeci">CPixelView operator()(int start, int end)</div><div class="ttdoc">Access an inclusive subset of the leds in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00056">pixelset.h:56</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_afe22ceed228286280b4c6f7692db105a"><div class="ttname"><a href="class_c_pixel_view.html#afe22ceed228286280b4c6f7692db105a">CPixelView::CPixelView</a></div><div class="ttdeci">CPixelView(const CPixelView &amp;other)</div><div class="ttdoc">PixelSet copy constructor. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00020">pixelset.h:20</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a195deb4034393308c9573454ac5e56ae"><div class="ttname"><a href="class_c_pixel_view.html#a195deb4034393308c9573454ac5e56ae">CPixelView::nscale8</a></div><div class="ttdeci">CPixelView &amp; nscale8(CPixelView &amp;rhs)</div><div class="ttdoc">Scale every led in this set by every led in the other set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00135">pixelset.h:135</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_ada24d4d93b849bc31aec124f682b836a"><div class="ttname"><a href="class_c_pixel_view.html#ada24d4d93b849bc31aec124f682b836a">CPixelView::CPixelView</a></div><div class="ttdeci">CPixelView(PIXEL_TYPE *_leds, int _start, int _end)</div><div class="ttdoc">PixelSet constructor for the given set of leds, with start and end boundaries. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00033">pixelset.h:33</a></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> <a href="lib8tion_8h_source.html#l00334">lib8tion.h:334</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a267b004b77ee7da80be81f6ff73c1d82"><div class="ttname"><a href="class_c_pixel_view.html#a267b004b77ee7da80be81f6ff73c1d82">CPixelView::nscale8_video</a></div><div class="ttdeci">CPixelView &amp; nscale8_video(uint8_t scaledown)</div><div class="ttdoc">Scale every led by the given scale. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00124">pixelset.h:124</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a18f14f953dce5153659f30a1fc47ab2d"><div class="ttname"><a href="class_c_pixel_view.html#a18f14f953dce5153659f30a1fc47ab2d">CPixelView::operator%=</a></div><div class="ttdeci">CPixelView &amp; operator%=(uint8_t scaledown)</div><div class="ttdoc">Scale down every led by the given scale. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00126">pixelset.h:126</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a7830b1011e8f6f13298c3500eba2707a"><div class="ttname"><a href="class_c_pixel_view.html#a7830b1011e8f6f13298c3500eba2707a">CPixelView::operator+=</a></div><div class="ttdeci">CPixelView &amp; operator+=(CPixelView &amp;rhs)</div><div class="ttdoc">Add every pixel in the other set to this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00099">pixelset.h:99</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a7ad3ae5a948047704c58458b13bdb53c"><div class="ttname"><a href="class_c_pixel_view.html#a7ad3ae5a948047704c58458b13bdb53c">CPixelView::operator!=</a></div><div class="ttdeci">bool operator!=(const CPixelView &amp;rhs) const </div><div class="ttdoc">do these sets point to the different things (note, this is different from the contents of the set bei...</div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00047">pixelset.h:47</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html"><div class="ttname"><a href="class_c_pixel_view.html">CPixelView</a></div><div class="ttdoc">Represents a set of CRGB led objects. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00010">pixelset.h:10</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_adde9560e0a2f538a998e849ff0361bc1"><div class="ttname"><a href="class_c_pixel_view.html#adde9560e0a2f538a998e849ff0361bc1">CPixelView::nscale8</a></div><div class="ttdeci">CPixelView &amp; nscale8(uint8_t scaledown)</div><div class="ttdoc">Scale every led by the given scale. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00131">pixelset.h:131</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
+<div class="ttc" id="class_c_pixel_view_html_a4861b6938f1cb9f8f885a9f3af13b8a9"><div class="ttname"><a href="class_c_pixel_view.html#a4861b6938f1cb9f8f885a9f3af13b8a9">CPixelView::fadeToBlackBy</a></div><div class="ttdeci">CPixelView &amp; fadeToBlackBy(uint8_t fade)</div><div class="ttdoc">Fade every led down by the given scale. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00138">pixelset.h:138</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a0acfbbdeb7c17986ddc806e9df64461c"><div class="ttname"><a href="class_c_pixel_view.html#a0acfbbdeb7c17986ddc806e9df64461c">CPixelView::operator|=</a></div><div class="ttdeci">CPixelView &amp; operator|=(const CPixelView &amp;rhs)</div><div class="ttdoc">Apply the PIXEL_TYPE |= operator to every pixel in this set with every pixel in the passed in set...</div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00143">pixelset.h:143</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a1f1a98d480cc62635f24e62c68c14f65"><div class="ttname"><a href="class_c_pixel_view.html#a1f1a98d480cc62635f24e62c68c14f65">CPixelView::operator/=</a></div><div class="ttdeci">CPixelView &amp; operator/=(uint8_t d)</div><div class="ttdoc">Divide every led by the given value. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00117">pixelset.h:117</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_afe3500651fc4eb5770aeb01728aa0a1e"><div class="ttname"><a href="class_c_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e">CPixelView::size</a></div><div class="ttdeci">int size()</div><div class="ttdoc">Get the size of this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00037">pixelset.h:37</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a13b5daab212774a2957473acea4e843b"><div class="ttname"><a href="class_c_pixel_view.html#a13b5daab212774a2957473acea4e843b">CPixelView::operator==</a></div><div class="ttdeci">bool operator==(const CPixelView &amp;rhs) const </div><div class="ttdoc">do these sets point to the same thing (note, this is different from the contents of the set being the...</div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00044">pixelset.h:44</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a3e7c2cf9a8dc476f9a92850d69b7c499"><div class="ttname"><a href="class_c_pixel_view.html#a3e7c2cf9a8dc476f9a92850d69b7c499">CPixelView::operator=</a></div><div class="ttdeci">CPixelView &amp; operator=(const CPixelView &amp;rhs)</div><div class="ttdoc">Copy the contents of the passed in set to our set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00087">pixelset.h:87</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a1f32c60d83428f27d3ec899442b82410"><div class="ttname"><a href="class_c_pixel_view.html#a1f32c60d83428f27d3ec899442b82410">CPixelView::dump</a></div><div class="ttdeci">void dump() const </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00076">pixelset.h:76</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a1200796b444865d101184f0c07e1915c"><div class="ttname"><a href="class_c_pixel_view.html#a1200796b444865d101184f0c07e1915c">CPixelView::operator-=</a></div><div class="ttdeci">CPixelView &amp; operator-=(CPixelView &amp;rhs)</div><div class="ttdoc">Subtract every pixel in the other set from this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00104">pixelset.h:104</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_ad737aca28b069acb1bb350e635be83f4"><div class="ttname"><a href="class_c_pixel_view.html#ad737aca28b069acb1bb350e635be83f4">CPixelView::operator|=</a></div><div class="ttdeci">CPixelView &amp; operator|=(const PIXEL_TYPE &amp;rhs)</div><div class="ttdoc">Apply the PIXEL_TYPE |= operator to every pixel in this set with the given PIXEL_TYPE value (bringing...</div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00141">pixelset.h:141</a></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> <a href="fastled__delay_8h_source.html#l00092">fastled_delay.h:92</a></div></div>
+<div class="ttc" id="class_c_pixel_view_1_1pixelset__iterator__base_html"><div class="ttname"><a href="class_c_pixel_view_1_1pixelset__iterator__base.html">CPixelView::pixelset_iterator_base</a></div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00258">pixelset.h:258</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a2e5576eb742184423d130b4caebd830c"><div class="ttname"><a href="class_c_pixel_view.html#a2e5576eb742184423d130b4caebd830c">CPixelView::operator|=</a></div><div class="ttdeci">CPixelView &amp; operator|=(uint8_t d)</div><div class="ttdoc">Apply the PIXEL_TYPE |= operator to every pixel in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00145">pixelset.h:145</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_aba3ece62dbd9f340a0cd78a4c69ab116"><div class="ttname"><a href="class_c_pixel_view.html#aba3ece62dbd9f340a0cd78a4c69ab116">CPixelView::operator[]</a></div><div class="ttdeci">PIXEL_TYPE &amp; operator[](int x) const </div><div class="ttdoc">access a single element in this set, just like an array operator </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00050">pixelset.h:50</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a051455d30c4390abd81bbb23182d22a8"><div class="ttname"><a href="class_c_pixel_view.html#a051455d30c4390abd81bbb23182d22a8">CPixelView::CPixelView</a></div><div class="ttdeci">CPixelView(PIXEL_TYPE *_leds, int _len)</div><div class="ttdoc">pixelset constructor for a pixel set starting at the given PIXEL_TYPE* and going for _len leds...</div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00026">pixelset.h:26</a></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> <a href="pixeltypes_8h_source.html#l00023">pixeltypes.h:23</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_af98febdccd4f7f18afbfbb0abfb4413d"><div class="ttname"><a href="class_c_pixel_view.html#af98febdccd4f7f18afbfbb0abfb4413d">CPixelView::operator&gt;&gt;=</a></div><div class="ttdeci">CPixelView &amp; operator&gt;&gt;=(uint8_t d)</div><div class="ttdoc">Shift every led in this set right by the given number of bits. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00119">pixelset.h:119</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_a1778ed3e4aaa07e64577128429de4c10"><div class="ttname"><a href="class_c_pixel_view.html#a1778ed3e4aaa07e64577128429de4c10">CPixelView::operator&amp;=</a></div><div class="ttdeci">CPixelView &amp; operator&amp;=(uint8_t d)</div><div class="ttdoc">APply the PIXEL_TYPE &= operator to every pixel in this set with the passed in value. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00152">pixelset.h:152</a></div></div>
+<div class="ttc" id="class_c_pixel_view_html_afb57aeebbd762d7ead044a12fd51f639"><div class="ttname"><a href="class_c_pixel_view.html#afb57aeebbd762d7ead044a12fd51f639">CPixelView::subFromRGB</a></div><div class="ttdeci">CPixelView &amp; subFromRGB(uint8_t inc)</div><div class="ttdoc">Subtract the passed in value from r,g,b for all pixels in this set. </div><div class="ttdef"><b>Definition:</b> <a href="pixelset_8h_source.html#l00102">pixelset.h:102</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>pixelset.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/pixeltypes_8h_source.html b/docs/3.1/pixeltypes_8h_source.html
index 0b2dfcdc..6ef7be28 100644
--- a/docs/3.1/pixeltypes_8h_source.html
+++ b/docs/3.1/pixeltypes_8h_source.html
@@ -112,864 +112,867 @@ $(document).ready(function(){initNavTree('pixeltypes_8h_source.html','');});
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_PIXELS_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_PIXELS_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">#include &lt;stdint.h&gt;</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;lib8tion.h&quot;</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="color_8h.html">color.h</a>&quot;</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&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">#include &lt;stdint.h&gt;</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;lib8tion.h&quot;</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="color_8h.html">color.h</a>&quot;</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="keyword">struct </span><a class="code" href="struct_c_r_g_b.html">CRGB</a>;</div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_c_h_s_v.html">CHSV</a>;</div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; hsv, <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb);</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
-<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="struct_c_h_s_v.html"> 21</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_c_h_s_v.html">CHSV</a> {</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; uint8_t hue;</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; uint8_t h; };</div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; uint8_t saturation;</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; uint8_t sat;</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; uint8_t s; };</div>
-<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; uint8_t value;</div>
-<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; uint8_t val;</div>
-<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; uint8_t v; };</div>
-<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; };</div>
-<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; uint8_t raw[3];</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; };</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">// default values are UNITIALIZED</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>() <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; {</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// allow construction from H, S, V</span></div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>( uint8_t ih, uint8_t is, uint8_t iv) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; : h(ih), s(is), v(iv)</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; {</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// allow copy construction</span></div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>(<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; h = rhs.h;</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; s = rhs.s;</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; v = rhs.v;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator= (<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; h = rhs.h;</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; s = rhs.s;</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; v = rhs.v;</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; setHSV(uint8_t ih, uint8_t is, uint8_t iv) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; {</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; h = ih;</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; s = is;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; v = iv;</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;};</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="group___pixeltypes.html#ga6585ae9f9a54e6a1fcb7c5f985931fb3"> 76</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; HUE_RED = 0,</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; HUE_ORANGE = 32,</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; HUE_YELLOW = 64,</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; HUE_GREEN = 96,</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; HUE_AQUA = 128,</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; HUE_BLUE = 160,</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; HUE_PURPLE = 192,</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; HUE_PINK = 224</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;} <a class="code" href="group___pixeltypes.html#ga6585ae9f9a54e6a1fcb7c5f985931fb3">HSVHue</a>;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
-<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html"> 88</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_c_r_g_b.html">CRGB</a> {</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">struct </span>{</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; uint8_t r;</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; uint8_t red;</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; };</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; uint8_t g;</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; uint8_t green;</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; };</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">union </span>{</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; uint8_t b;</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; uint8_t blue;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; };</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; };</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; uint8_t raw[3];</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; };</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">inline</span> uint8_t&amp; operator[] (uint8_t x) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; {</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> raw[x];</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> uint8_t&amp; operator[] (uint8_t x) <span class="keyword">const</span> <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; {</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> raw[x];</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="comment">// default values are UNINITIALIZED</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>() <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; {</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// allow construction from R, G, B</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( uint8_t ir, uint8_t ig, uint8_t ib) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; : r(ir), g(ig), b(ib)</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; {</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="comment">// allow construction from 32-bit (really 24-bit) bit 0xRRGGBB color code</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( uint32_t colorcode) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; : r((colorcode &gt;&gt; 16) &amp; 0xFF), g((colorcode &gt;&gt; 8) &amp; 0xFF), b((colorcode &gt;&gt; 0) &amp; 0xFF)</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( <a class="code" href="group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8">LEDColorCorrection</a> colorcode) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; : r((colorcode &gt;&gt; 16) &amp; 0xFF), g((colorcode &gt;&gt; 8) &amp; 0xFF), b((colorcode &gt;&gt; 0) &amp; 0xFF)</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;FASTLED_NAMESPACE_BEGIN</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;<span class="keyword">struct </span><a class="code" href="struct_c_r_g_b.html">CRGB</a>;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">struct </span><a class="code" href="struct_c_h_s_v.html">CHSV</a>;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; hsv, <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rgb);</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="struct_c_h_s_v.html"> 23</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_c_h_s_v.html">CHSV</a> {</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; uint8_t hue;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; uint8_t h; };</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; uint8_t saturation;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; uint8_t sat;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; uint8_t s; };</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; uint8_t value;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; uint8_t val;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; uint8_t v; };</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; uint8_t raw[3];</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">// default values are UNITIALIZED</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>() <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</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; }</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">// allow construction from H, S, V</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>( uint8_t ih, uint8_t is, uint8_t iv) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; : h(ih), s(is), v(iv)</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;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// allow copy construction</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>(<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; h = rhs.h;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; s = rhs.s;</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; v = rhs.v;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; operator= (<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; h = rhs.h;</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; s = rhs.s;</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; v = rhs.v;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</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;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; setHSV(uint8_t ih, uint8_t is, uint8_t iv) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; h = ih;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; s = is;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; v = iv;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;};</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="group___pixeltypes.html#ga6585ae9f9a54e6a1fcb7c5f985931fb3"> 78</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; HUE_RED = 0,</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; HUE_ORANGE = 32,</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; HUE_YELLOW = 64,</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; HUE_GREEN = 96,</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; HUE_AQUA = 128,</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; HUE_BLUE = 160,</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; HUE_PURPLE = 192,</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; HUE_PINK = 224</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;} <a class="code" href="group___pixeltypes.html#ga6585ae9f9a54e6a1fcb7c5f985931fb3">HSVHue</a>;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_c_r_g_b.html"> 90</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_c_r_g_b.html">CRGB</a> {</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; uint8_t r;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; uint8_t red;</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">union </span>{</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; uint8_t g;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; uint8_t green;</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="keyword">union </span>{</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; uint8_t b;</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; uint8_t blue;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; };</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; };</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; uint8_t raw[3];</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;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">inline</span> uint8_t&amp; operator[] (uint8_t x) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> raw[x];</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> uint8_t&amp; operator[] (uint8_t x) <span class="keyword">const</span> <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> raw[x];</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;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// default values are UNINITIALIZED</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>() <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; {</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// allow construction from R, G, B</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( uint8_t ir, uint8_t ig, uint8_t ib) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; : r(ir), g(ig), b(ib)</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; {</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="comment">// allow construction from 32-bit (really 24-bit) bit 0xRRGGBB color code</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( uint32_t colorcode) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; : r((colorcode &gt;&gt; 16) &amp; 0xFF), g((colorcode &gt;&gt; 8) &amp; 0xFF), b((colorcode &gt;&gt; 0) &amp; 0xFF)</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( <a class="code" href="group___color_enums.html#gadf6bcba67c9573665af20788c4431ae8">LEDColorCorrection</a> colorcode) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; : r((colorcode &gt;&gt; 16) &amp; 0xFF), g((colorcode &gt;&gt; 8) &amp; 0xFF), b((colorcode &gt;&gt; 0) &amp; 0xFF)</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; {</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( <a class="code" href="group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9">ColorTemperature</a> colorcode) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; : r((colorcode &gt;&gt; 16) &amp; 0xFF), g((colorcode &gt;&gt; 8) &amp; 0xFF), b((colorcode &gt;&gt; 0) &amp; 0xFF)</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; {</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>( <a class="code" href="group___color_enums.html#ga251e9e8dc2c7b981786b71706522b2a9">ColorTemperature</a> colorcode) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; : r((colorcode &gt;&gt; 16) &amp; 0xFF), g((colorcode &gt;&gt; 8) &amp; 0xFF), b((colorcode &gt;&gt; 0) &amp; 0xFF)</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// allow copy construction</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>(<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; r = rhs.r;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; g = rhs.g;</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; b = rhs.b;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// allow construction from HSV color</span></div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>(<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; {</div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( rhs, *<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">// allow assignment from one RGB struct to another</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator= (<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; r = rhs.r;</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; g = rhs.g;</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; b = rhs.b;</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator= (<span class="keyword">const</span> uint32_t colorcode) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; r = (colorcode &gt;&gt; 16) &amp; 0xFF;</div>
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; g = (colorcode &gt;&gt; 8) &amp; 0xFF;</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; b = (colorcode &gt;&gt; 0) &amp; 0xFF;</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">// allow assignment from R, G, and B</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; setRGB (uint8_t nr, uint8_t ng, uint8_t nb) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; {</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; r = nr;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; g = ng;</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; b = nb;</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">// allow assignment from H, S, and V</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; setHSV (uint8_t hue, uint8_t sat, uint8_t val) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; {</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <a class="code" href="struct_c_h_s_v.html">CHSV</a>(hue, sat, val), *<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="comment">// allow assignment from just a Hue, saturation and value automatically at max.</span></div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; setHue (uint8_t hue) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div>
-<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <a class="code" href="struct_c_h_s_v.html">CHSV</a>(hue, 255, 255), *<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="comment">// allow assignment from HSV color</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator= (<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; {</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( rhs, *<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="comment">// allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code</span></div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; setColorCode (uint32_t colorcode) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; r = (colorcode &gt;&gt; 16) &amp; 0xFF;</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; g = (colorcode &gt;&gt; 8) &amp; 0xFF;</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; b = (colorcode &gt;&gt; 0) &amp; 0xFF;</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">// add one RGB to another, saturating at 0xFF for each channel</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator+= (<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs )</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; r = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( r, rhs.r);</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; g = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( g, rhs.g);</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; b = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( b, rhs.b);</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// add a contstant to each channel, saturating at 0xFF</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="comment">// this is NOT an operator+= overload because the compiler</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="comment">// can&#39;t usefully decide when it&#39;s being passed a 32-bit</span></div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="comment">// constant (e.g. CRGB::Red) and an 8-bit one (CRGB::Blue)</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; addToRGB (uint8_t d )</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; r = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( r, d);</div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; g = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( g, d);</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; b = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( b, d);</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="comment">// subtract one RGB from another, saturating at 0x00 for each channel</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator-= (<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs )</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; r = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( r, rhs.r);</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; g = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( g, rhs.g);</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; b = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( b, rhs.b);</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="comment">// subtract a constant from each channel, saturating at 0x00</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="comment">// this is NOT an operator+= overload because the compiler</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="comment">// can&#39;t usefully decide when it&#39;s being passed a 32-bit</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="comment">// constant (e.g. CRGB::Red) and an 8-bit one (CRGB::Blue)</span></div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; subtractFromRGB(uint8_t d )</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; {</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; r = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( r, d);</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; g = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( g, d);</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; b = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( b, d);</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// subtract a constant of &#39;1&#39; from each channel, saturating at 0x00</span></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator-- () <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; {</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; subtractFromRGB(1);</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">// subtract a constant of &#39;1&#39; from each channel, saturating at 0x00</span></div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator-- (<span class="keywordtype">int</span> ) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; {</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> retval(*<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; --(*this);</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">return</span> retval;</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div>
-<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="comment">// add a constant of &#39;1&#39; from each channel, saturating at 0xFF</span></div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator++ () <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; {</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; addToRGB(1);</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// add a constant of &#39;1&#39; from each channel, saturating at 0xFF</span></div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a> operator++ (<span class="keywordtype">int</span> ) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; {</div>
-<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> retval(*<span class="keyword">this</span>);</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; ++(*this);</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> retval;</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="comment">// divide each of the channels by a constant</span></div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator/= (uint8_t d )</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; {</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; r /= d;</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; g /= d;</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; b /= d;</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div>
-<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="comment">// right shift each of the channels by a constant</span></div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator&gt;&gt;= (uint8_t d)</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; {</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; r &gt;&gt;= d;</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; g &gt;&gt;= d;</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; b &gt;&gt;= d;</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="comment">// multiply each of the channels by a constant,</span></div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// saturating each channel at 0xFF</span></div>
-<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator*= (uint8_t d )</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; {</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; r = <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( r, d);</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; g = <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( g, d);</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; b = <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( b, d);</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="comment">// scale down a RGB to N 256ths of it&#39;s current brightness, using</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="comment">// &#39;video&#39; dimming rules, which means that unless the scale factor is ZERO</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="comment">// each channel is guaranteed NOT to dim down to zero. If it&#39;s already</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="comment">// nonzero, it&#39;ll stay nonzero, even if that means the hue shifts a little</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="comment">// at low brightness levels.</span></div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; nscale8_video (uint8_t scaledown )</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; {</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( r, g, b, scaledown);</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="comment">// %= is a synonym for nscale8_video. Think of it is scaling down</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="comment">// by &quot;a percentage&quot;</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator%= (uint8_t scaledown )</div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; {</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( r, g, b, scaledown);</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="comment">// fadeLightBy is a synonym for nscale8_video( ..., 255-fadefactor)</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; fadeLightBy (uint8_t fadefactor )</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; {</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( r, g, b, 255 - fadefactor);</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; }</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="comment">// scale down a RGB to N 256ths of it&#39;s current brightness, using</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="comment">// &#39;plain math&#39; dimming rules, which means that if the low light levels</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="comment">// may dim all the way to 100% black.</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; nscale8 (uint8_t scaledown )</div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; {</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <a class="code" href="group___scaling.html#ga39bf87e5526120889086cab19ac749b1">nscale8x3</a>( r, g, b, scaledown);</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; }</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="comment">// 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="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> 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="l00146"></a><span class="lineno"> 146</span>&#160; }</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// allow copy construction</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>(<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; {</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; r = rhs.r;</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; g = rhs.g;</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; b = rhs.b;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// allow construction from HSV color</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>(<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; {</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( rhs, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="comment">// allow assignment from one RGB struct to another</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator= (<span class="keyword">const</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; r = rhs.r;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; g = rhs.g;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; b = rhs.b;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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; <span class="comment">// allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator= (<span class="keyword">const</span> uint32_t colorcode) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; {</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; r = (colorcode &gt;&gt; 16) &amp; 0xFF;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; g = (colorcode &gt;&gt; 8) &amp; 0xFF;</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; b = (colorcode &gt;&gt; 0) &amp; 0xFF;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// allow assignment from R, G, and B</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; setRGB (uint8_t nr, uint8_t ng, uint8_t nb) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; {</div>
+<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; r = nr;</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; g = ng;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; b = nb;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">// allow assignment from H, S, and V</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; setHSV (uint8_t hue, uint8_t sat, uint8_t val) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <a class="code" href="struct_c_h_s_v.html">CHSV</a>(hue, sat, val), *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">// allow assignment from just a Hue, saturation and value automatically at max.</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; setHue (uint8_t hue) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( <a class="code" href="struct_c_h_s_v.html">CHSV</a>(hue, 255, 255), *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">// allow assignment from HSV color</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator= (<span class="keyword">const</span> <a class="code" href="struct_c_h_s_v.html">CHSV</a>&amp; rhs) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a>( rhs, *<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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"> 210</span>&#160; <span class="comment">// allow assignment from 32-bit (really 24-bit) 0xRRGGBB color code</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; setColorCode (uint32_t colorcode) <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; {</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; r = (colorcode &gt;&gt; 16) &amp; 0xFF;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; g = (colorcode &gt;&gt; 8) &amp; 0xFF;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; b = (colorcode &gt;&gt; 0) &amp; 0xFF;</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</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="comment">// add one RGB to another, saturating at 0xFF for each channel</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</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="l00222"></a><span class="lineno"> 222</span>&#160; {</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; r = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( r, rhs.r);</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; g = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( g, rhs.g);</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; b = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( b, rhs.b);</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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; <span class="comment">// add a contstant to each channel, saturating at 0xFF</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="comment">// this is NOT an operator+= overload because the compiler</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="comment">// can&#39;t usefully decide when it&#39;s being passed a 32-bit</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">// constant (e.g. CRGB::Red) and an 8-bit one (CRGB::Blue)</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; addToRGB (uint8_t d )</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; r = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( r, d);</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; g = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( g, d);</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; b = <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( b, d);</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">// subtract one RGB from another, saturating at 0x00 for each channel</span></div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</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="l00243"></a><span class="lineno"> 243</span>&#160; {</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; r = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( r, rhs.r);</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; g = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( g, rhs.g);</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; b = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( b, rhs.b);</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="comment">// subtract a constant from each channel, saturating at 0x00</span></div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="comment">// this is NOT an operator+= overload because the compiler</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="comment">// can&#39;t usefully decide when it&#39;s being passed a 32-bit</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="comment">// constant (e.g. CRGB::Red) and an 8-bit one (CRGB::Blue)</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; subtractFromRGB(uint8_t d )</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; {</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; r = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( r, d);</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; g = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( g, d);</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; b = <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( b, d);</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// subtract a constant of &#39;1&#39; from each channel, saturating at 0x00</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator-- () <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; {</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; subtractFromRGB(1);</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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="comment">// subtract a constant of &#39;1&#39; from each channel, saturating at 0x00</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</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="l00271"></a><span class="lineno"> 271</span>&#160; {</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> retval(*<span class="keyword">this</span>);</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; --(*this);</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> retval;</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="comment">// add a constant of &#39;1&#39; from each channel, saturating at 0xFF</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator++ () <a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; {</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; addToRGB(1);</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</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="l00285"></a><span class="lineno"> 285</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="l00286"></a><span class="lineno"> 286</span>&#160; {</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</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="l00288"></a><span class="lineno"> 288</span>&#160; ++(*this);</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">return</span> retval;</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;</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">// divide each of the channels by a constant</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</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="l00294"></a><span class="lineno"> 294</span>&#160; {</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; r /= d;</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; g /= d;</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; b /= d;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div>
+<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="comment">// right shift each of the channels by a constant</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator&gt;&gt;= (uint8_t d)</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; {</div>
+<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; r &gt;&gt;= d;</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; g &gt;&gt;= d;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; b &gt;&gt;= d;</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="comment">// multiply each of the channels by a constant,</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="comment">// saturating each channel at 0xFF</span></div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</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="l00313"></a><span class="lineno"> 313</span>&#160; {</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; r = <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( r, d);</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; g = <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( g, d);</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; b = <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( b, d);</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</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="l00321"></a><span class="lineno"> 321</span>&#160; <span class="comment">// &#39;video&#39; dimming rules, which means that unless the scale factor is ZERO</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="comment">// each channel is guaranteed NOT to dim down to zero. If it&#39;s already</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="comment">// nonzero, it&#39;ll stay nonzero, even if that means the hue shifts a little</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="comment">// at low brightness levels.</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; nscale8_video (uint8_t scaledown )</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; {</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( r, g, b, scaledown);</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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;</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="comment">// %= is a synonym for nscale8_video. Think of it is scaling down</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="comment">// by &quot;a percentage&quot;</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; operator%= (uint8_t scaledown )</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; {</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( r, g, b, scaledown);</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="comment">// fadeLightBy is a synonym for nscale8_video( ..., 255-fadefactor)</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; fadeLightBy (uint8_t fadefactor )</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; {</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <a class="code" href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a>( r, g, b, 255 - fadefactor);</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; }</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="comment">// scale down a RGB to N 256ths of it&#39;s current brightness, using</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno"> 347</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="l00348"></a><span class="lineno"> 348</span>&#160; <span class="comment">// may dim all the way to 100% black.</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keyword">inline</span> <a class="code" href="struct_c_r_g_b.html">CRGB</a>&amp; nscale8 (uint8_t scaledown )</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; {</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <a class="code" href="group___scaling.html#ga39bf87e5526120889086cab19ac749b1">nscale8x3</a>( r, g, b, scaledown);</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div>
+<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="comment">// scale down a RGB to N 256ths of it&#39;s current brightness, using</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</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="l00357"></a><span class="lineno"> 357</span>&#160; <span class="comment">// may dim all the way to 100% black.</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</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="l00359"></a><span class="lineno"> 359</span>&#160; {</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; r = ::scale8(r, scaledown.r);</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; g = ::scale8(g, scaledown.g);</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; b = ::scale8(b, scaledown.b);</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</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="l00367"></a><span class="lineno"> 367</span>&#160;<span class="keyword"> </span>{</div>
+<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> out;</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; out.r = ::scale8(r, scaledown.r);</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; out.g = ::scale8(g, scaledown.g);</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; out.b = ::scale8(b, scaledown.b);</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">return</span> out;</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;</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="comment">// fadeToBlackBy is a synonym for nscale8( ..., 255-fadefactor)</span></div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</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="l00377"></a><span class="lineno"> 377</span>&#160; {</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <a class="code" href="group___scaling.html#ga39bf87e5526120889086cab19ac749b1">nscale8x3</a>( r, g, b, 255 - fadefactor);</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; }</div>
+<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</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="l00383"></a><span class="lineno"> 383</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="l00384"></a><span class="lineno"> 384</span>&#160; {</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">if</span>( rhs.r &gt; r) r = rhs.r;</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">if</span>( rhs.g &gt; g) g = rhs.g;</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">if</span>( rhs.b &gt; b) b = rhs.b;</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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="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="l00391"></a><span class="lineno"> 391</span>&#160; {</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">if</span>( d &gt; r) r = d;</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">if</span>( d &gt; g) g = d;</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">if</span>( d &gt; b) b = d;</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</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="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>&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="l00400"></a><span class="lineno"> 400</span>&#160; {</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">if</span>( rhs.r &lt; r) r = rhs.r;</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">if</span>( rhs.g &lt; g) g = rhs.g;</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">if</span>( rhs.b &lt; b) b = rhs.b;</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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="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="l00407"></a><span class="lineno"> 407</span>&#160; {</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">if</span>( d &lt; r) r = d;</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">if</span>( d &lt; g) g = d;</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span>( d &lt; b) b = d;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; }</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="comment">// this allows testing a CRGB for zero-ness</span></div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</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="l00416"></a><span class="lineno"> 416</span>&#160; {</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">return</span> r || g || b;</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">// invert each channel</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</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="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_c_r_g_b.html">CRGB</a> retval;</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; retval.r = 255 - r;</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; retval.g = 255 - g;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; retval.b = 255 - b;</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">return</span> retval;</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;</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="preprocessor">#if (defined SmartMatrix_h || defined SmartMatrix3_h)</span></div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keyword">operator</span> rgb24()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; rgb24 ret;</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; ret.red = r;</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; ret.green = g;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; ret.blue = b;</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">return</span> ret;</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="preprocessor">#endif</span></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; <span class="keyword">inline</span> uint8_t getLuma ( )<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</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="l00442"></a><span class="lineno"> 442</span>&#160; <span class="comment">// 54 183 18 (!)</span></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; 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="l00445"></a><span class="lineno"> 445</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="l00446"></a><span class="lineno"> 446</span>&#160;<a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c"> scale8_LEAVING_R1_DIRTY</a>( b, 18);</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">return</span> luma;</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;</div>
+<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keyword">inline</span> uint8_t getAverageLight( )<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keyword">const</span> uint8_t eightysix = 86;</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</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="l00454"></a><span class="lineno"> 454</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="l00455"></a><span class="lineno"> 455</span>&#160;<a class="code" href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c"> scale8_LEAVING_R1_DIRTY</a>( b, eightysix);</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a>();</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">return</span> avg;</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;</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> maximizeBrightness( uint8_t limit = 255 ) {</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; uint8_t max = red;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">if</span>( green &gt; max) max = green;</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">if</span>( blue &gt; max) max = blue;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; uint16_t factor = ((uint16_t)(limit) * 256) / max;</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; red = (red * factor) / 256;</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; green = (green * factor) / 256;</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; blue = (blue * factor) / 256;</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_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="l00471"></a><span class="lineno"> 471</span>&#160; {</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> ret;</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; ret.r = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(r,other.r,frac);</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; ret.g = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(g,other.g,frac);</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; ret.b = <a class="code" href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a>(b,other.b,frac);</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="keywordflow">return</span> ret;</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;</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</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="l00482"></a><span class="lineno"> 482</span>&#160; {</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <a class="code" href="struct_c_r_g_b.html">CRGB</a> ret;</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; 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="l00486"></a><span class="lineno"> 486</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="l00487"></a><span class="lineno"> 487</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="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> ret;</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="comment">// getParity returns 0 or 1, depending on the</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="comment">// lowest bit of the sum of the color components.</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keyword">inline</span> uint8_t getParity()</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; uint8_t sum = r + g + b;</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">return</span> (sum &amp; 0x01);</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;</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="comment">// setParity adjusts the color in the smallest</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="comment">// way possible so that the parity of the color</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="comment">// is now the desired value. This allows you to</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="comment">// &#39;hide&#39; one bit of information in the color.</span></div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="comment">// Ideally, we find one color channel which already</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="comment">// has data in it, and modify just that channel by one.</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</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="l00508"></a><span class="lineno"> 508</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="l00509"></a><span class="lineno"> 509</span>&#160; <span class="comment">// (meaning that R==G==B), we modify all three channels</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="comment">// at once, to preserve the neutral hue.</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</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="l00513"></a><span class="lineno"> 513</span>&#160; <span class="comment">// this &#39;hidden bit&#39; may actually be visible, but this</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="comment">// code makes reasonable efforts to hide it as much</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="comment">// as is reasonably possible.</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="comment">// Also, an effort is made to have make it such that</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="comment">// repeatedly setting the parity to different values</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="comment">// will not cause the color to &#39;drift&#39;. Toggling</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="comment">// the parity twice should generally result in the</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="comment">// original color again.</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="comment">//</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> setParity( uint8_t parity)</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; uint8_t curparity = getParity();</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="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">if</span>( parity == curparity) <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">if</span>( parity ) {</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="comment">// going &#39;up&#39;</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">if</span>( (b &gt; 0) &amp;&amp; (b &lt; 255)) {</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; r++;</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; g++;</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; b++;</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</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="l00538"></a><span class="lineno"> 538</span>&#160; r++;</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</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="l00540"></a><span class="lineno"> 540</span>&#160; g++;</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; r ^= 0x01;</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; g ^= 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; b ^= 0x01;</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; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="comment">// going &#39;down&#39;</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">if</span>( b &gt; 1) {</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; r--;</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; g--;</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; b--;</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( g &gt; 1) {</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; g--;</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>( r &gt; 1) {</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; r--;</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">if</span>( r == g &amp;&amp; g == b) {</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; r ^= 0x01;</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; g ^= 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; b ^= 0x01;</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="l00568"></a><span class="lineno"> 568</span>&#160; }</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;</div>
+<div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99"> 571</a></span>&#160; <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; AliceBlue=0xF0F8FF,</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; Amethyst=0x9966CC,</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; AntiqueWhite=0xFAEBD7,</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; Aqua=0x00FFFF,</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; Aquamarine=0x7FFFD4,</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; Azure=0xF0FFFF,</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; Beige=0xF5F5DC,</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; Bisque=0xFFE4C4,</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; Black=0x000000,</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; BlanchedAlmond=0xFFEBCD,</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; Blue=0x0000FF,</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; BlueViolet=0x8A2BE2,</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; Brown=0xA52A2A,</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; BurlyWood=0xDEB887,</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; CadetBlue=0x5F9EA0,</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; Chartreuse=0x7FFF00,</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; Chocolate=0xD2691E,</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; Coral=0xFF7F50,</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; CornflowerBlue=0x6495ED,</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; Cornsilk=0xFFF8DC,</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; Crimson=0xDC143C,</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; Cyan=0x00FFFF,</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; DarkBlue=0x00008B,</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; DarkCyan=0x008B8B,</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; DarkGoldenrod=0xB8860B,</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; DarkGray=0xA9A9A9,</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; DarkGrey=0xA9A9A9,</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; DarkGreen=0x006400,</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; DarkKhaki=0xBDB76B,</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; DarkMagenta=0x8B008B,</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; DarkOliveGreen=0x556B2F,</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; DarkOrange=0xFF8C00,</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; DarkOrchid=0x9932CC,</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; DarkRed=0x8B0000,</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; DarkSalmon=0xE9967A,</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; DarkSeaGreen=0x8FBC8F,</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; DarkSlateBlue=0x483D8B,</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; DarkSlateGray=0x2F4F4F,</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; DarkSlateGrey=0x2F4F4F,</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; DarkTurquoise=0x00CED1,</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; DarkViolet=0x9400D3,</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; DeepPink=0xFF1493,</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; DeepSkyBlue=0x00BFFF,</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; DimGray=0x696969,</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; DimGrey=0x696969,</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; DodgerBlue=0x1E90FF,</div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; FireBrick=0xB22222,</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; FloralWhite=0xFFFAF0,</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; ForestGreen=0x228B22,</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; Fuchsia=0xFF00FF,</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; Gainsboro=0xDCDCDC,</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; GhostWhite=0xF8F8FF,</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; Gold=0xFFD700,</div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; Goldenrod=0xDAA520,</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; Gray=0x808080,</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; Grey=0x808080,</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; Green=0x008000,</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; GreenYellow=0xADFF2F,</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; Honeydew=0xF0FFF0,</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; HotPink=0xFF69B4,</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; IndianRed=0xCD5C5C,</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; Indigo=0x4B0082,</div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; Ivory=0xFFFFF0,</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; Khaki=0xF0E68C,</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; Lavender=0xE6E6FA,</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; LavenderBlush=0xFFF0F5,</div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; LawnGreen=0x7CFC00,</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; LemonChiffon=0xFFFACD,</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; LightBlue=0xADD8E6,</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; LightCoral=0xF08080,</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; LightCyan=0xE0FFFF,</div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; LightGoldenrodYellow=0xFAFAD2,</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; LightGreen=0x90EE90,</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; LightGrey=0xD3D3D3,</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; LightPink=0xFFB6C1,</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; LightSalmon=0xFFA07A,</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; LightSeaGreen=0x20B2AA,</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; LightSkyBlue=0x87CEFA,</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; LightSlateGray=0x778899,</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; LightSlateGrey=0x778899,</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; LightSteelBlue=0xB0C4DE,</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; LightYellow=0xFFFFE0,</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; Lime=0x00FF00,</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; LimeGreen=0x32CD32,</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; Linen=0xFAF0E6,</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; Magenta=0xFF00FF,</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; Maroon=0x800000,</div>
+<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; MediumAquamarine=0x66CDAA,</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; MediumBlue=0x0000CD,</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; MediumOrchid=0xBA55D3,</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; MediumPurple=0x9370DB,</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; MediumSeaGreen=0x3CB371,</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; MediumSlateBlue=0x7B68EE,</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; MediumSpringGreen=0x00FA9A,</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; MediumTurquoise=0x48D1CC,</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; MediumVioletRed=0xC71585,</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; MidnightBlue=0x191970,</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; MintCream=0xF5FFFA,</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; MistyRose=0xFFE4E1,</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; Moccasin=0xFFE4B5,</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; NavajoWhite=0xFFDEAD,</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; Navy=0x000080,</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; OldLace=0xFDF5E6,</div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; Olive=0x808000,</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; OliveDrab=0x6B8E23,</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; Orange=0xFFA500,</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; OrangeRed=0xFF4500,</div>
+<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; Orchid=0xDA70D6,</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; PaleGoldenrod=0xEEE8AA,</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; PaleGreen=0x98FB98,</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; PaleTurquoise=0xAFEEEE,</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; PaleVioletRed=0xDB7093,</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; PapayaWhip=0xFFEFD5,</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; PeachPuff=0xFFDAB9,</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; Peru=0xCD853F,</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; Pink=0xFFC0CB,</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; Plaid=0xCC5533,</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; Plum=0xDDA0DD,</div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; PowderBlue=0xB0E0E6,</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; Purple=0x800080,</div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; Red=0xFF0000,</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; RosyBrown=0xBC8F8F,</div>
+<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; RoyalBlue=0x4169E1,</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; SaddleBrown=0x8B4513,</div>
+<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; Salmon=0xFA8072,</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; SandyBrown=0xF4A460,</div>
+<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; SeaGreen=0x2E8B57,</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; Seashell=0xFFF5EE,</div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; Sienna=0xA0522D,</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; Silver=0xC0C0C0,</div>
+<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; SkyBlue=0x87CEEB,</div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; SlateBlue=0x6A5ACD,</div>
+<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; SlateGray=0x708090,</div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; SlateGrey=0x708090,</div>
+<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; Snow=0xFFFAFA,</div>
+<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; SpringGreen=0x00FF7F,</div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; SteelBlue=0x4682B4,</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; Tan=0xD2B48C,</div>
+<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; Teal=0x008080,</div>
+<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; Thistle=0xD8BFD8,</div>
+<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; Tomato=0xFF6347,</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; Turquoise=0x40E0D0,</div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; Violet=0xEE82EE,</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; Wheat=0xF5DEB3,</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; White=0xFFFFFF,</div>
+<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; WhiteSmoke=0xF5F5F5,</div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; Yellow=0xFFFF00,</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; YellowGreen=0x9ACD32,</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="comment">// LED RGB color that roughly approximates</span></div>
+<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="comment">// the color of incandescent fairy lights,</span></div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="comment">// assuming that you&#39;re using FastLED</span></div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="comment">// color correction on your LEDs (recommended).</span></div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; FairyLight=0xFFE42D,</div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="comment">// If you are using no color correction, use this</span></div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; FairyLightNCC=0xFF9D2A</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="group___pixeltypes.html#gaeb40a08b7cb90c1e21bd408261558b99">HTMLColorCode</a>;</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;};</div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</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="l00734"></a><span class="lineno"> 734</span>&#160;{</div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</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="l00736"></a><span class="lineno"> 736</span>&#160;}</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="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="l00739"></a><span class="lineno"> 739</span>&#160;{</div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">return</span> !(lhs == rhs);</div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;}</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</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="l00744"></a><span class="lineno"> 744</span>&#160;{</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; uint16_t sl, sr;</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
+<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">return</span> sl &lt; sr;</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;</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</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="l00752"></a><span class="lineno"> 752</span>&#160;{</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; uint16_t sl, sr;</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordflow">return</span> sl &gt; sr;</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;<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="l00760"></a><span class="lineno"> 760</span>&#160;{</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; uint16_t sl, sr;</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordflow">return</span> sl &gt;= sr;</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;}</div>
+<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</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="l00768"></a><span class="lineno"> 768</span>&#160;{</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; uint16_t sl, sr;</div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; sl = lhs.r + lhs.g + lhs.b;</div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; sr = rhs.r + rhs.g + rhs.b;</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keywordflow">return</span> sl &lt;= sr;</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;</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;</div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</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="l00778"></a><span class="lineno"> 778</span>&#160;{</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</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="l00780"></a><span class="lineno"> 780</span>&#160; <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( p1.g, p2.g),</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <a class="code" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>( p1.b, p2.b));</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;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</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="l00786"></a><span class="lineno"> 786</span>&#160;{</div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</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="l00788"></a><span class="lineno"> 788</span>&#160; <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( p1.g, p2.g),</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <a class="code" href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a>( p1.b, p2.b));</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;</div>
+<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</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="l00794"></a><span class="lineno"> 794</span>&#160;{</div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</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="l00796"></a><span class="lineno"> 796</span>&#160; <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( p1.g, d),</div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <a class="code" href="group___math.html#ga9d113e85065df7c9006704ea6b6dcda4">qmul8</a>( p1.b, d));</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;}</div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;</div>
+<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</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="l00802"></a><span class="lineno"> 802</span>&#160;{</div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</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="l00804"></a><span class="lineno"> 804</span>&#160;}</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;</div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00808"></a><span class="lineno"> 808</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="l00809"></a><span class="lineno"> 809</span>&#160;{</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</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="l00811"></a><span class="lineno"> 811</span>&#160; p1.g &lt; p2.g ? p1.g : p2.g,</div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; p1.b &lt; p2.b ? p1.b : p2.b);</div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;}</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;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</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="l00817"></a><span class="lineno"> 817</span>&#160;{</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</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="l00819"></a><span class="lineno"> 819</span>&#160; p1.g &gt; p2.g ? p1.g : p2.g,</div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; p1.b &gt; p2.b ? p1.b : p2.b);</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;<a class="code" href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a>((always_inline))</div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</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="l00825"></a><span class="lineno"> 825</span>&#160;{</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> retval( p1);</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; retval.nscale8_video( d);</div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordflow">return</span> retval;</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> <a href="math8_8h_source.html#l00267">math8.h:267</a></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> <a href="pixeltypes_8h_source.html#l00076">pixeltypes.h:76</a></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> <a href="pixeltypes_8h_source.html#l00088">pixeltypes.h:88</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga62ed4425400bc4140902347dc54ffb72"><div class="ttname"><a href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a></div><div class="ttdeci">LIB8STATIC uint8_t lerp8by8(uint8_t a, uint8_t b, fract8 frac)</div><div class="ttdoc">linear interpolation between two unsigned 8-bit values, with 8-bit fraction </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00446">lib8tion.h:446</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gaaf46b9f719ef3bdb574f8e967af6dbb5"><div class="ttname"><a href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a></div><div class="ttdeci">uint16_t fract16</div><div class="ttdoc">ANSI: unsigned _Fract. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00332">lib8tion.h:332</a></div></div>
-<div class="ttc" id="group__lib8tion_html_ga7c02960d0f26e90054c7312e5f9a55b3"><div class="ttname"><a href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a></div><div class="ttdeci">LIB8STATIC uint16_t lerp16by16(uint16_t a, uint16_t b, fract16 frac)</div><div class="ttdoc">linear interpolation between two unsigned 16-bit values, with 16-bit fraction </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00463">lib8tion.h:463</a></div></div>
+<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;</div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;</div>
+<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;<span class="keyword">enum</span> EOrder {</div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; RGB=0012,</div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; RBG=0021,</div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; GRB=0102,</div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; GBR=0120,</div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; BRG=0201,</div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; BGR=0210</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;</div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;<span class="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> <a href="math8_8h_source.html#l00320">math8.h:320</a></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> <a href="pixeltypes_8h_source.html#l00078">pixeltypes.h:78</a></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> <a href="pixeltypes_8h_source.html#l00090">pixeltypes.h:90</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga62ed4425400bc4140902347dc54ffb72"><div class="ttname"><a href="group__lib8tion.html#ga62ed4425400bc4140902347dc54ffb72">lerp8by8</a></div><div class="ttdeci">LIB8STATIC uint8_t lerp8by8(uint8_t a, uint8_t b, fract8 frac)</div><div class="ttdoc">linear interpolation between two unsigned 8-bit values, with 8-bit fraction </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00456">lib8tion.h:456</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gaaf46b9f719ef3bdb574f8e967af6dbb5"><div class="ttname"><a href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a></div><div class="ttdeci">uint16_t fract16</div><div class="ttdoc">ANSI: unsigned _Fract. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00342">lib8tion.h:342</a></div></div>
+<div class="ttc" id="group__lib8tion_html_ga7c02960d0f26e90054c7312e5f9a55b3"><div class="ttname"><a href="group__lib8tion.html#ga7c02960d0f26e90054c7312e5f9a55b3">lerp16by16</a></div><div class="ttdeci">LIB8STATIC uint16_t lerp16by16(uint16_t a, uint16_t b, fract16 frac)</div><div class="ttdoc">linear interpolation between two unsigned 16-bit values, with 16-bit fraction </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00473">lib8tion.h:473</a></div></div>
<div class="ttc" id="group___math_html_gaaaa16f47aca46653d51793b1af177587"><div class="ttname"><a href="group___math.html#gaaaa16f47aca46653d51793b1af177587">qsub8</a></div><div class="ttdeci">LIB8STATIC uint8_t qsub8(uint8_t i, uint8_t j)</div><div class="ttdoc">subtract one byte from another, saturating at 0x00 </div><div class="ttdef"><b>Definition:</b> <a href="math8_8h_source.html#l00086">math8.h:86</a></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> <a href="math8_8h_source.html#l00021">math8.h:21</a></div></div>
<div class="ttc" id="group___scaling_html_ga700b7f510f32e8c91385093c436c27d9"><div class="ttname"><a href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a></div><div class="ttdeci">LIB8STATIC void nscale8x3_video(uint8_t &amp;r, uint8_t &amp;g, uint8_t &amp;b, fract8 scale)</div><div class="ttdoc">scale three one byte values by a fourth one, which is treated as the numerator of a fraction whose de...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00282">scale8.h:282</a></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> <a href="lib8tion_8h_source.html#l00324">lib8tion.h:324</a></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> <a href="lib8tion_8h_source.html#l00334">lib8tion.h:334</a></div></div>
<div class="ttc" id="group___scaling_html_ga39579fcf09743f15545fe0b831ca313c"><div class="ttname"><a href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC uint8_t scale8_LEAVING_R1_DIRTY(uint8_t i, fract8 scale)</div><div class="ttdoc">This version of scale8 does not clean up the R1 register on AVR If you are doing several &#39;scale8&#39;s in...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00121">scale8.h:121</a></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> <a href="color_8h_source.html#l00011">color.h:11</a></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> <a href="color_8h_source.html#l00013">color.h:13</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </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="group___pixeltypes_html_ga06ee0f21e1bf430ea547244f6ed4add8"><div class="ttname"><a href="group___pixeltypes.html#ga06ee0f21e1bf430ea547244f6ed4add8">hsv2rgb_rainbow</a></div><div class="ttdeci">void hsv2rgb_rainbow(const CHSV &amp;hsv, CRGB &amp;rgb)</div><div class="ttdoc">Forward declaration of hsv2rgb_rainbow here, to avoid circular dependencies. </div><div class="ttdef"><b>Definition:</b> <a href="hsv2rgb_8cpp_source.html#l00277">hsv2rgb.cpp:277</a></div></div>
<div class="ttc" id="group___scaling_html_ga572d0b441676c9d8ceb071fe8284b7e9"><div class="ttname"><a href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a></div><div class="ttdeci">LIB8STATIC void cleanup_R1()</div><div class="ttdoc">Clean up the r1 register after a series of *LEAVING_R1_DIRTY calls. </div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00244">scale8.h:244</a></div></div>
<div class="ttc" id="group___scaling_html_ga39bf87e5526120889086cab19ac749b1"><div class="ttname"><a href="group___scaling.html#ga39bf87e5526120889086cab19ac749b1">nscale8x3</a></div><div class="ttdeci">LIB8STATIC void nscale8x3(uint8_t &amp;r, uint8_t &amp;g, uint8_t &amp;b, fract8 scale)</div><div class="ttdoc">scale three one byte values by a fourth one, which is treated as the numerator of a fraction whose de...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00259">scale8.h:259</a></div></div>
-<div class="ttc" id="group___pixeltypes_html_gad47d9c821aeaaa0123d125a18ff961d5"><div class="ttname"><a href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) bool operator</div><div class="ttdoc">Do an 8byte by 8bit rotation. </div><div class="ttdef"><b>Definition:</b> <a href="fastled__delay_8h_source.html#l00085">fastled_delay.h:85</a></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> <a href="color_8h_source.html#l00033">color.h:33</a></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> <a href="pixeltypes_8h_source.html#l00021">pixeltypes.h:21</a></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> <a href="pixeltypes_8h_source.html#l00569">pixeltypes.h:569</a></div></div>
+<div class="ttc" id="group___pixeltypes_html_gad47d9c821aeaaa0123d125a18ff961d5"><div class="ttname"><a href="group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5">__attribute__</a></div><div class="ttdeci">__attribute__((always_inline)) bool operator</div><div class="ttdoc">Do an 8byte by 8bit rotation. </div><div class="ttdef"><b>Definition:</b> <a href="fastled__delay_8h_source.html#l00092">fastled_delay.h:92</a></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> <a href="color_8h_source.html#l00035">color.h:35</a></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> <a href="pixeltypes_8h_source.html#l00023">pixeltypes.h:23</a></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> <a href="pixeltypes_8h_source.html#l00571">pixeltypes.h:571</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>pixeltypes.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/platforms_8h_source.html b/docs/3.1/platforms_8h_source.html
index 83f23ad2..a37511cc 100644
--- a/docs/3.1/platforms_8h_source.html
+++ b/docs/3.1/platforms_8h_source.html
@@ -112,39 +112,42 @@ $(document).ready(function(){initNavTree('platforms_8h_source.html','');});
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef __INC_PLATFORMS_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __INC_PLATFORMS_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">#include &quot;<a class="code" href="fastled__config_8h.html">fastled_config.h</a>&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&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">#if defined(NRF51)</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/nrf51/fastled_arm_nrf51.h&quot;</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#elif defined(__MK20DX128__) || defined(__MK20DX256__)</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// Include k20/T3 headers</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/k20/fastled_arm_k20.h&quot;</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#elif defined(__MKL26Z64__)</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// Include kl26/T-LC headers</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/kl26/fastled_arm_kl26.h&quot;</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#elif defined(__SAM3X8E__)</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Include sam/due headers</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/sam/fastled_arm_sam.h&quot;</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#elif defined(STM32F10X_MD)</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/stm32/fastled_arm_stm32.h&quot;</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#elif defined(__SAMD21G18A__)</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/d21/fastled_arm_d21.h&quot;</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#elif defined(__XTENSA__)</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#error &quot;XTENSA-architecture microcontrollers are not supported&quot;</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// AVR platforms</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;platforms/avr/fastled_avr.h&quot;</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</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="l00007"></a><span class="lineno"> 7</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#if defined(NRF51)</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/nrf51/fastled_arm_nrf51.h&quot;</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#elif defined(__MK20DX128__) || defined(__MK20DX256__)</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// Include k20/T3 headers</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/k20/fastled_arm_k20.h&quot;</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#elif defined(__MKL26Z64__)</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// Include kl26/T-LC headers</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/kl26/fastled_arm_kl26.h&quot;</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#elif defined(__SAM3X8E__)</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">// Include sam/due headers</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/sam/fastled_arm_sam.h&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#elif defined(STM32F10X_MD)</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/stm32/fastled_arm_stm32.h&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#elif defined(__SAMD21G18A__)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;platforms/arm/d21/fastled_arm_d21.h&quot;</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#elif defined(ESP8266)</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;platforms/esp/8266/fastled_esp8266.h&quot;</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// AVR platforms</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;platforms/avr/fastled_avr.h&quot;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#endif</span></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="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>platforms.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/power__mgt_8cpp_source.html b/docs/3.1/power__mgt_8cpp_source.html
index cb728086..ab900def 100644
--- a/docs/3.1/power__mgt_8cpp_source.html
+++ b/docs/3.1/power__mgt_8cpp_source.html
@@ -277,24 +277,24 @@ $(document).ready(function(){initNavTree('power__mgt_8cpp_source.html','');});
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;}</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;FASTLED_NAMESPACE_END</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> <a href="pixeltypes_8h_source.html#l00088">pixeltypes.h:88</a></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> <a href="controller_8h_source.html#l00037">controller.h:37</a></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> <a href="_fast_l_e_d_8h_source.html#l00414">FastLED.h:414</a></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> <a href="_fast_l_e_d_8h_source.html#l00418">FastLED.h:418</a></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> <a href="controller_8h_source.html#l00103">controller.h:103</a></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> <a href="controller_8h_source.html#l00130">controller.h:130</a></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> <a href="pixeltypes_8h_source.html#l00090">pixeltypes.h:90</a></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> <a href="controller_8h_source.html#l00038">controller.h:38</a></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> <a href="_fast_l_e_d_8h_source.html#l00415">FastLED.h:415</a></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> <a href="_fast_l_e_d_8h_source.html#l00419">FastLED.h:419</a></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> <a href="controller_8h_source.html#l00100">controller.h:100</a></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> <a href="controller_8h_source.html#l00120">controller.h:120</a></div></div>
<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
<div class="ttc" id="class_c_fast_l_e_d_html_a83afdd1e2a21f33ac4f8d2610d6e331b"><div class="ttname"><a href="class_c_fast_l_e_d.html#a83afdd1e2a21f33ac4f8d2610d6e331b">CFastLED::show</a></div><div class="ttdeci">void show(uint8_t scale)</div><div class="ttdoc">Update all our controllers with the current led colors, using the passed in brightness. </div><div class="ttdef"><b>Definition:</b> <a href="_fast_l_e_d_8cpp_source.html#l00042">FastLED.cpp:42</a></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> <a href="controller_8h_source.html#l00127">controller.h:127</a></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> <a href="controller_8h_source.html#l00101">controller.h:101</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00115">FastLED.cpp:115</a></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> <a href="controller_8h_source.html#l00117">controller.h:117</a></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> <a href="controller_8h_source.html#l00098">controller.h:98</a></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> <a href="_fast_l_e_d_8cpp_source.html#l00120">FastLED.cpp:120</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>power_mgt.cpp</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/power__mgt_8h_source.html b/docs/3.1/power__mgt_8h_source.html
index eee2ca56..cc4dbbfc 100644
--- a/docs/3.1/power__mgt_8h_source.html
+++ b/docs/3.1/power__mgt_8h_source.html
@@ -112,57 +112,60 @@ $(document).ready(function(){initNavTree('power__mgt_8h_source.html','');});
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef POWER_MGT_H</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define POWER_MGT_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">#include &quot;pixeltypes.h&quot;</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fast_l_e_d_8h.html">FastLED.h</a>&quot;</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;pixeltypes.h&quot;</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// Power Control setup functions</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// Example:</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// set_max_power_in_volts_and_milliamps( 5, 400);</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">//</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
-<div class="line"><a name="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="l00008"></a><span class="lineno"> 8</span>&#160;FASTLED_NAMESPACE_BEGIN</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// Power Control setup functions</span></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">// Example:</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// set_max_power_in_volts_and_milliamps( 5, 400);</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</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="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keywordtype">void</span> set_max_power_in_milliwatts( uint32_t powerInmW);</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</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="l00029"></a><span class="lineno"> 29</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">// Power Control &#39;show&#39; and &#39;delay&#39; 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">// These are drop-in replacements for FastLED.show() and FastLED.delay()</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</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="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// FastLED.show() and FastLED.delay() with these two functions.</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// Example:</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// // was: FastLED.show();</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// // now is:</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// show_at_max_brightness_for_power();</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">//</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keywordtype">void</span> show_at_max_brightness_for_power();</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keywordtype">void</span> delay_at_max_brightness_for_power( uint16_t ms);</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;</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;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> <a href="pixeltypes_8h_source.html#l00088">pixeltypes.h:88</a></div></div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="comment">// Power Control internal helper functions</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</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="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</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="l00066"></a><span class="lineno"> 66</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;FASTLED_NAMESPACE_END</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="comment">// POWER_MGT_H</span></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">#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> <a href="pixeltypes_8h_source.html#l00090">pixeltypes.h:90</a></div></div>
+<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>power_mgt.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/random8_8h_source.html b/docs/3.1/random8_8h_source.html
index 28380566..1ea68516 100644
--- a/docs/3.1/random8_8h_source.html
+++ b/docs/3.1/random8_8h_source.html
@@ -193,7 +193,7 @@ $(document).ready(function(){initNavTree('random8_8h_source.html','');});
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_fbb9e787cf27434374136273d35a9c17.html">lib8tion</a></li><li class="navelem"><b>random8.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/release__notes_8md_source.html b/docs/3.1/release__notes_8md_source.html
index d6e9a7f3..1b2c52e8 100644
--- a/docs/3.1/release__notes_8md_source.html
+++ b/docs/3.1/release__notes_8md_source.html
@@ -109,154 +109,159 @@ $(document).ready(function(){initNavTree('release__notes_8md.html','');});
<div class="title">release_notes.md</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;FastLED3.1.1pre</div>
-<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;============</div>
-<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;* Enabled RFDuino/nrf51822 hardware SPI support</div>
-<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;* Fix edge case bug w/HSV palette blending </div>
-<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;* Fix power management issue w/parallel output</div>
-<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;* Use static_asserts for some more useful compile time errors around bad pins</div>
-<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;* Roll power management into FastLED.show/delay directly</div>
-<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;* Support for adafruit pixies on arduino type platforms that have SoftwareSerial</div>
-<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; * TODO: support hardware serial on platforms that have it available</div>
-<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;* Add UCS2903 timings</div>
-<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;* Preliminary CPixelView/CRGBSet code - more flexible treatment of groups of arrays </div>
-<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; * https://github.com/FastLED/FastLED/wiki/RGBSet-Reference</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;</div>
-<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;FastLED3.1.0</div>
-<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;============</div>
-<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;* Added support for the following platforms</div>
-<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; * Arduino Zero</div>
-<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; * Teensy LC</div>
-<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; * RFDuino/nrf51822</div>
-<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; * Spark Core</div>
-<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;* Major internal code reoganization</div>
-<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;* Started doxygen based documentation </div>
-<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;* Lots of bug/performance fixes</div>
-<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;* Parallel output on various arm platforms</div>
-<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;* lots of new stuff</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;FastLED3.0.2</div>
-<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;============</div>
-<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;* possibly fix issues #67 and #90 by fixing gcc 4.8.x support</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;FastLED3.0.1</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;* fix issue #89 w/power management pin always being on</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;FastLED3.0</div>
-<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;==========</div>
-<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;* Added support for the following platforms:</div>
-<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; * Arduino due</div>
-<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; * Teensy 3.1</div>
-<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;* Added the following LED chipsets:</div>
-<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; * USC1903_400</div>
-<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; * GW6205 / GW6205_400</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; * APA102</div>
-<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; * APA104</div>
-<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; * LPD1886</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; * P9813</div>
-<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; * SmartMatrix</div>
-<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;* Added multiple examples:</div>
-<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; * ColorPalette - show off the color palette code</div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; * ColorTemperature - show off the color correction code</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; * Fire2012</div>
-<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; * Fire2012WithPalette</div>
-<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; * Multiple led controller examples</div>
-<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; * Noise</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; * NoisePlayground</div>
-<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; * NoisePlusPalette</div>
-<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; * SmartMatrix - show off SmartMatrix support</div>
-<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; * XYMatrix - show how to use a mtrix layout of leds</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;* Added color correction</div>
-<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;* Added dithering</div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;* Added power management support</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;* Added support for color palettes</div>
-<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;* Added easing functions</div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;* Added fast trig functions</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;* Added simplex noise functions</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;* Added color utility functions</div>
-<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;* Fixed DMXSERIAL/DMXSIMPLE support</div>
-<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;* Timing adjustments for existing SPI chipsets</div>
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;* Cleaned up the code layout to make platform support easier</div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;* Many bug fixes </div>
-<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;* A number of performance/memory improvements</div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;* Remove Squant (takes up space!)</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;FastLED2</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;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;## Full release of the library</div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;FastLED3.1.2pre</div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;===============</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;* Add SK6822 timings</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;FastLED3.1.1</div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;============</div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;* Enabled RFDuino/nrf51822 hardware SPI support</div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;* Fix edge case bug w/HSV palette blending </div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;* Fix power management issue w/parallel output</div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;* Use static_asserts for some more useful compile time errors around bad pins</div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;* Roll power management into FastLED.show/delay directly</div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;* Support for adafruit pixies on arduino type platforms that have SoftwareSerial</div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; * TODO: support hardware serial on platforms that have it available</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;* Add UCS2903 timings</div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;* Preliminary CPixelView/CRGBSet code - more flexible treatment of groups of arrays </div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; * https://github.com/FastLED/FastLED/wiki/RGBSet-Reference</div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;FastLED3.1.0</div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;============</div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;* Added support for the following platforms</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; * Arduino Zero</div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; * Teensy LC</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; * RFDuino/nrf51822</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; * Spark Core</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;* Major internal code reoganization</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;* Started doxygen based documentation </div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;* Lots of bug/performance fixes</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;* Parallel output on various arm platforms</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;* lots of new stuff</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;FastLED3.0.2</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;* possibly fix issues #67 and #90 by fixing gcc 4.8.x support</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;FastLED3.0.1</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;* fix issue #89 w/power management pin always being on</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;FastLED3.0</div>
+<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;==========</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;* Added support for the following platforms:</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; * Arduino due</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; * Teensy 3.1</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;* Added the following LED chipsets:</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; * USC1903_400</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; * GW6205 / GW6205_400</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; * APA102</div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; * APA104</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; * LPD1886</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; * P9813</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; * SmartMatrix</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;* Added multiple examples:</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; * ColorPalette - show off the color palette code</div>
+<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; * ColorTemperature - show off the color correction code</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; * Fire2012</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; * Fire2012WithPalette</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; * Multiple led controller examples</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; * Noise</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; * NoisePlayground</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; * NoisePlusPalette</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; * SmartMatrix - show off SmartMatrix support</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; * XYMatrix - show how to use a mtrix layout of leds</div>
+<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;* Added color correction</div>
+<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;* Added dithering</div>
+<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;* Added power management support</div>
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;* Added support for color palettes</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;* Added easing functions</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;* Added fast trig functions</div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;* Added simplex noise functions</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;* Added color utility functions</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;* Fixed DMXSERIAL/DMXSIMPLE support</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;* Timing adjustments for existing SPI chipsets</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;* Cleaned up the code layout to make platform support easier</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;* Many bug fixes </div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;* A number of performance/memory improvements</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;* Remove Squant (takes up space!)</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;## Release Candidate 6</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;* Rename library, offically, to FastLED, move to github </div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;* Update keywords with all the new stuffs</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;## Release Candidate 5</div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;* Gemma and Trinket: supported except for global &quot;setBrightness&quot;</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;## Release Candidate 4</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;* Added NEOPIXEL as a synonym for WS2811</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;* Fix WS2811/WS2812B timings, bring it in line to exactly 1.25ns/bit. </div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;* Fix handling of constant color definitions (damn you, gcc!)</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;FastLED2</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;========</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;## Full release of the library</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;## Release Candidate 6</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;* Rename library, offically, to FastLED, move to github </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;* Update keywords with all the new stuffs</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;## Release Candidate 5</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;* Gemma and Trinket: supported except for global &quot;setBrightness&quot;</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;## Release Candidate 3</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;* Fixed bug when Clock and Data were on the same port</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;* Added ability to set pixel color directly from HSV</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;* Added ability to retrieve current random16 seed</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;## Release Candidate 4</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;* Added NEOPIXEL as a synonym for WS2811</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;* Fix WS2811/WS2812B timings, bring it in line to exactly 1.25ns/bit. </div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;* Fix handling of constant color definitions (damn you, gcc!)</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;## Release Candidate 2 </div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;* mostly bug fixes</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;* Fix SPI macro definitions for latest teensy3 software update</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;* Teensy 2 compilation fix</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;* hsv2rgb_rainbow performance fix</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;## Release Candidate 1</div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;* New unified/simplified API for adding/using controllers</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;* fleshout clockless chip support</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;* add hsv (spectrum and rainbow style colors)</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;* high speed memory management operations</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;* library for interpolation/easing functions</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;* various api changes, addition of clear and showColor functions</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;* scale value applied to all show methods </div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;* bug fixes for SM16716</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;* performance improvements, lpd8806 exceeds 22Mbit now</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;* hardware def fixes</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;* allow alternate rgb color orderings</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;* high speed math methods</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;* rich CRGB structure</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;## Preview 3</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;* True hardware SPI support for teensy (up to 20Mbit output!)</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;* Minor bug fixes/tweaks</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;## Preview 2</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;* Rename pin class to FastPin</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;* Replace latch with select, more accurate description of what it does</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;* Enforce intra-frame timing for ws2801s</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;* SM16716 support</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;* Add #define FAST_SPI_INTERRUPTS_WRITE_PINS to make sure world is ok w/interrupts and SPI</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;* Add #define FASTLED_FORCE_SOFTWARE_SPI for those times when you absolutely don&#39;t want to use hardware SPI, ev</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;en if you&#39;re using the hardware SPI pins</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;* Add pin definitions for the arduino megas - should fix ws2811 support</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;* Add pin definitions for the leonardo - should fix spi support and pin mappings</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;* Add warnings when pin definitions are missing</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;* Added google+ community for fastspi users - https://plus.google.com/communities/109127054924227823508</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;# Add pin definitions for Teensy++ 2.0</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;## Preview 1</div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;* Initial release</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;## Release Candidate 3</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;* Fixed bug when Clock and Data were on the same port</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;* Added ability to set pixel color directly from HSV</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;* Added ability to retrieve current random16 seed</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;## Release Candidate 2 </div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;* mostly bug fixes</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;* Fix SPI macro definitions for latest teensy3 software update</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;* Teensy 2 compilation fix</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;* hsv2rgb_rainbow performance fix</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;## Release Candidate 1</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;* New unified/simplified API for adding/using controllers</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;* fleshout clockless chip support</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;* add hsv (spectrum and rainbow style colors)</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;* high speed memory management operations</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;* library for interpolation/easing functions</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;* various api changes, addition of clear and showColor functions</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;* scale value applied to all show methods </div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;* bug fixes for SM16716</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;* performance improvements, lpd8806 exceeds 22Mbit now</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;* hardware def fixes</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;* allow alternate rgb color orderings</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;* high speed math methods</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;* rich CRGB structure</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;## Preview 3</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;* True hardware SPI support for teensy (up to 20Mbit output!)</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;* Minor bug fixes/tweaks</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;## Preview 2</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;* Rename pin class to FastPin</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;* Replace latch with select, more accurate description of what it does</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;* Enforce intra-frame timing for ws2801s</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;* SM16716 support</div>
+<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;* Add #define FAST_SPI_INTERRUPTS_WRITE_PINS to make sure world is ok w/interrupts and SPI</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;* Add #define FASTLED_FORCE_SOFTWARE_SPI for those times when you absolutely don&#39;t want to use hardware SPI, ev</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;en if you&#39;re using the hardware SPI pins</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;* Add pin definitions for the arduino megas - should fix ws2811 support</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;* Add pin definitions for the leonardo - should fix spi support and pin mappings</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;* Add warnings when pin definitions are missing</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;* Added google+ community for fastspi users - https://plus.google.com/communities/109127054924227823508</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;# Add pin definitions for Teensy++ 2.0</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;## Preview 1</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;* Initial release</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>release_notes.md</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/scale8_8h_source.html b/docs/3.1/scale8_8h_source.html
index 88744494..328b6631 100644
--- a/docs/3.1/scale8_8h_source.html
+++ b/docs/3.1/scale8_8h_source.html
@@ -435,135 +435,149 @@ $(document).ready(function(){initNavTree('scale8_8h_source.html','');});
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; result = ((uint32_t)(i) * (uint32_t)(scale)) / 65536;</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> result;</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor">#elif SCALE16_AVRASM == 1</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; uint32_t result = 0;</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keyword">const</span> uint8_t zero = 0;</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="comment">// result.A-B = i.A x scale.A</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="stringliteral">&quot; mul %A[i], %A[scale] \n\t&quot;</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="comment">// save results...</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="comment">// basic idea:</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="comment">//&quot; mov %A[result], r0 \n\t&quot;</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="comment">//&quot; mov %B[result], r1 \n\t&quot;</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="comment">// which can be written as...</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="stringliteral">&quot; movw %A[result], r0 \n\t&quot;</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="comment">// We actually need to do anything with r0,</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="comment">// as result.A is never used again here, so we</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="comment">// could just move the high byte, but movw is</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="comment">// one clock cycle, just like mov, so might as</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="comment">// well, in case we want to use this code for</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="comment">// a generic 16x16 multiply somewhere.</span></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; <span class="comment">// result.C-D = i.B x scale.B</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="stringliteral">&quot; mul %B[i], %B[scale] \n\t&quot;</span></div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="comment">//&quot; mov %C[result], r0 \n\t&quot;</span></div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="comment">//&quot; mov %D[result], r1 \n\t&quot;</span></div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="stringliteral">&quot; movw %C[result], r0 \n\t&quot;</span></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="comment">// result.B-D += i.B x scale.A</span></div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="stringliteral">&quot; mul %B[i], %A[scale] \n\t&quot;</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="stringliteral">&quot; add %B[result], r0 \n\t&quot;</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="stringliteral">&quot; adc %C[result], r1 \n\t&quot;</span></div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="stringliteral">&quot; adc %D[result], %[zero] \n\t&quot;</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; <span class="comment">// result.B-D += i.A x scale.B</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="stringliteral">&quot; mul %A[i], %B[scale] \n\t&quot;</span></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; <span class="stringliteral">&quot; add %B[result], r0 \n\t&quot;</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="stringliteral">&quot; adc %C[result], r1 \n\t&quot;</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="stringliteral">&quot; adc %D[result], %[zero] \n\t&quot;</span></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">// cleanup r1</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="stringliteral">&quot; clr r1 \n\t&quot;</span></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; : [result] <span class="stringliteral">&quot;+r&quot;</span> (result)</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; : [i] <span class="stringliteral">&quot;r&quot;</span> (i),</div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; [scale] <span class="stringliteral">&quot;r&quot;</span> (scale),</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; [zero] <span class="stringliteral">&quot;r&quot;</span> (zero)</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</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; result = result &gt;&gt; 16;</div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<span class="preprocessor"> #error &quot;No implementation for scale16 available.&quot;</span></div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;}</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div>
-<div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="group___dimming.html#gae51352a3522bb8eae5e17dbee97aa1aa"> 460</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___dimming.html#gae51352a3522bb8eae5e17dbee97aa1aa">dim8_raw</a>( uint8_t x)</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;{</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( x, x);</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;}</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
-<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="group___dimming.html#ga40a13446a2022dc489be8b2a8f2fa494"> 466</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___dimming.html#ga40a13446a2022dc489be8b2a8f2fa494">dim8_video</a>( uint8_t x)</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;{</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1">scale8_video</a>( x, x);</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;}</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;</div>
-<div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="group___dimming.html#ga3f94d2455e0aa92133f77af8747b5914"> 472</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___dimming.html#ga3f94d2455e0aa92133f77af8747b5914">dim8_lin</a>( uint8_t 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="keywordflow">if</span>( x &amp; 0x80 ) {</div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; x = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( x, x);</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; x += 1;</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; x /= 2;</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> 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;</div>
-<div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="group___dimming.html#gae8e36472a70f3016595048532d6c3a2d"> 484</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___dimming.html#gae8e36472a70f3016595048532d6c3a2d">brighten8_raw</a>( 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; uint8_t ix = 255 - x;</div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">return</span> 255 - <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( ix, ix);</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="l00491"></a><span class="lineno"><a class="line" href="group___dimming.html#gad21876a676bcf26c47f957faed23f9bb"> 491</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___dimming.html#gad21876a676bcf26c47f957faed23f9bb">brighten8_video</a>( uint8_t x)</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; uint8_t ix = 255 - x;</div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">return</span> 255 - <a class="code" href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1">scale8_video</a>( ix, ix);</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; uint32_t result;</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="comment">// result.A-B = i.A x scale.A</span></div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="stringliteral">&quot; mul %A[i], %A[scale] \n\t&quot;</span></div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="comment">// save results...</span></div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="comment">// basic idea:</span></div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="comment">//&quot; mov %A[result], r0 \n\t&quot;</span></div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="comment">//&quot; mov %B[result], r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="comment">// which can be written as...</span></div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="stringliteral">&quot; movw %A[result], r0 \n\t&quot;</span></div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="comment">// We actually need to do anything with r0,</span></div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="comment">// as result.A is never used again here, so we</span></div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="comment">// could just move the high byte, but movw is</span></div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="comment">// one clock cycle, just like mov, so might as</span></div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="comment">// well, in case we want to use this code for</span></div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="comment">// a generic 16x16 multiply somewhere.</span></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; : [result] <span class="stringliteral">&quot;=r&quot;</span> (result)</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; : [i] <span class="stringliteral">&quot;r&quot;</span> (i),</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; [scale] <span class="stringliteral">&quot;r&quot;</span> (scale)</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span></div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; );</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="comment">// result.C-D = i.B x scale.B</span></div>
+<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="stringliteral">&quot; mul %B[i], %B[scale] \n\t&quot;</span></div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="comment">//&quot; mov %C[result], r0 \n\t&quot;</span></div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="comment">//&quot; mov %D[result], r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="stringliteral">&quot; movw %C[result], r0 \n\t&quot;</span></div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; : [result] <span class="stringliteral">&quot;+r&quot;</span> (result)</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; : [i] <span class="stringliteral">&quot;r&quot;</span> (i),</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; [scale] <span class="stringliteral">&quot;r&quot;</span> (scale)</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span></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; <span class="keyword">const</span> uint8_t zero = 0;</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keyword">asm</span> <span class="keyword">volatile</span>(</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="comment">// result.B-D += i.B x scale.A</span></div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="stringliteral">&quot; mul %B[i], %A[scale] \n\t&quot;</span></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; <span class="stringliteral">&quot; add %B[result], r0 \n\t&quot;</span></div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="stringliteral">&quot; adc %C[result], r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="stringliteral">&quot; adc %D[result], %[zero] \n\t&quot;</span></div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="comment">// result.B-D += i.A x scale.B</span></div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="stringliteral">&quot; mul %A[i], %B[scale] \n\t&quot;</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="stringliteral">&quot; add %B[result], r0 \n\t&quot;</span></div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="stringliteral">&quot; adc %C[result], r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="stringliteral">&quot; adc %D[result], %[zero] \n\t&quot;</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; <span class="comment">// cleanup r1</span></div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="stringliteral">&quot; clr r1 \n\t&quot;</span></div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; : [result] <span class="stringliteral">&quot;+r&quot;</span> (result)</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; : [i] <span class="stringliteral">&quot;r&quot;</span> (i),</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; [scale] <span class="stringliteral">&quot;r&quot;</span> (scale),</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; [zero] <span class="stringliteral">&quot;r&quot;</span> (zero)</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; : <span class="stringliteral">&quot;r0&quot;</span>, <span class="stringliteral">&quot;r1&quot;</span></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;</div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; result = result &gt;&gt; 16;</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="preprocessor"> #error &quot;No implementation for scale16 available.&quot;</span></div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;}</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div>
+<div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="group___dimming.html#gae51352a3522bb8eae5e17dbee97aa1aa"> 474</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___dimming.html#gae51352a3522bb8eae5e17dbee97aa1aa">dim8_raw</a>( uint8_t x)</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;{</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">return</span> <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( x, 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="l00480"></a><span class="lineno"><a class="line" href="group___dimming.html#ga40a13446a2022dc489be8b2a8f2fa494"> 480</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___dimming.html#ga40a13446a2022dc489be8b2a8f2fa494">dim8_video</a>( 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="keywordflow">return</span> <a class="code" href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1">scale8_video</a>( x, x);</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;</div>
+<div class="line"><a name="l00486"></a><span class="lineno"><a class="line" href="group___dimming.html#ga3f94d2455e0aa92133f77af8747b5914"> 486</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___dimming.html#ga3f94d2455e0aa92133f77af8747b5914">dim8_lin</a>( uint8_t x )</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;{</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">if</span>( x &amp; 0x80 ) {</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; x = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( x, x);</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; x += 1;</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; x /= 2;</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">return</span> x;</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;</div>
-<div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="group___dimming.html#ga094bda002b416c66e57521fc93878830"> 498</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___dimming.html#ga094bda002b416c66e57521fc93878830">brighten8_lin</a>( uint8_t x )</div>
+<div class="line"><a name="l00498"></a><span class="lineno"><a class="line" href="group___dimming.html#gae8e36472a70f3016595048532d6c3a2d"> 498</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___dimming.html#gae8e36472a70f3016595048532d6c3a2d">brighten8_raw</a>( uint8_t x)</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; uint8_t ix = 255 - x;</div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">if</span>( ix &amp; 0x80 ) {</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; ix = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( ix, ix);</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; ix += 1;</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; ix /= 2;</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">return</span> 255 - ix;</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="l00511"></a><span class="lineno"> 511</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="ttc" id="group___dimming_html_gae51352a3522bb8eae5e17dbee97aa1aa"><div class="ttname"><a href="group___dimming.html#gae51352a3522bb8eae5e17dbee97aa1aa">dim8_raw</a></div><div class="ttdeci">LIB8STATIC uint8_t dim8_raw(uint8_t x)</div><div class="ttdoc">Adjust a scaling value for dimming. </div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00460">scale8.h:460</a></div></div>
-<div class="ttc" id="group___dimming_html_ga094bda002b416c66e57521fc93878830"><div class="ttname"><a href="group___dimming.html#ga094bda002b416c66e57521fc93878830">brighten8_lin</a></div><div class="ttdeci">LIB8STATIC uint8_t brighten8_lin(uint8_t x)</div><div class="ttdoc">inverse of the dimming function, brighten a value </div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00498">scale8.h:498</a></div></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">return</span> 255 - <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( ix, ix);</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="l00505"></a><span class="lineno"><a class="line" href="group___dimming.html#gad21876a676bcf26c47f957faed23f9bb"> 505</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___dimming.html#gad21876a676bcf26c47f957faed23f9bb">brighten8_video</a>( uint8_t x)</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; uint8_t ix = 255 - x;</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">return</span> 255 - <a class="code" href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1">scale8_video</a>( ix, ix);</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="l00512"></a><span class="lineno"><a class="line" href="group___dimming.html#ga094bda002b416c66e57521fc93878830"> 512</a></span>&#160;LIB8STATIC uint8_t <a class="code" href="group___dimming.html#ga094bda002b416c66e57521fc93878830">brighten8_lin</a>( uint8_t x )</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; uint8_t ix = 255 - x;</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">if</span>( ix &amp; 0x80 ) {</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; ix = <a class="code" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>( ix, ix);</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; ix += 1;</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; ix /= 2;</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; }</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">return</span> 255 - ix;</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;}</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="ttc" id="group___dimming_html_gae51352a3522bb8eae5e17dbee97aa1aa"><div class="ttname"><a href="group___dimming.html#gae51352a3522bb8eae5e17dbee97aa1aa">dim8_raw</a></div><div class="ttdeci">LIB8STATIC uint8_t dim8_raw(uint8_t x)</div><div class="ttdoc">Adjust a scaling value for dimming. </div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00474">scale8.h:474</a></div></div>
+<div class="ttc" id="group___dimming_html_ga094bda002b416c66e57521fc93878830"><div class="ttname"><a href="group___dimming.html#ga094bda002b416c66e57521fc93878830">brighten8_lin</a></div><div class="ttdeci">LIB8STATIC uint8_t brighten8_lin(uint8_t x)</div><div class="ttdoc">inverse of the dimming function, brighten a value </div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00512">scale8.h:512</a></div></div>
<div class="ttc" id="group___scaling_html_gab341cef8d46232269bb70092fed9eb75"><div class="ttname"><a href="group___scaling.html#gab341cef8d46232269bb70092fed9eb75">scale8_video_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC uint8_t scale8_video_LEAVING_R1_DIRTY(uint8_t i, fract8 scale)</div><div class="ttdoc">This version of scale8_video does not clean up the R1 register on AVR If you are doing several &#39;scale...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00175">scale8.h:175</a></div></div>
-<div class="ttc" id="group__lib8tion_html_gaaf46b9f719ef3bdb574f8e967af6dbb5"><div class="ttname"><a href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a></div><div class="ttdeci">uint16_t fract16</div><div class="ttdoc">ANSI: unsigned _Fract. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00332">lib8tion.h:332</a></div></div>
+<div class="ttc" id="group__lib8tion_html_gaaf46b9f719ef3bdb574f8e967af6dbb5"><div class="ttname"><a href="group__lib8tion.html#gaaf46b9f719ef3bdb574f8e967af6dbb5">fract16</a></div><div class="ttdeci">uint16_t fract16</div><div class="ttdoc">ANSI: unsigned _Fract. </div><div class="ttdef"><b>Definition:</b> <a href="lib8tion_8h_source.html#l00342">lib8tion.h:342</a></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> <a href="scale8_8h_source.html#l00020">scale8.h:20</a></div></div>
-<div class="ttc" id="group___dimming_html_ga3f94d2455e0aa92133f77af8747b5914"><div class="ttname"><a href="group___dimming.html#ga3f94d2455e0aa92133f77af8747b5914">dim8_lin</a></div><div class="ttdeci">LIB8STATIC uint8_t dim8_lin(uint8_t x)</div><div class="ttdoc">Linear version of the dimming function that halves for values < 128. </div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00472">scale8.h:472</a></div></div>
+<div class="ttc" id="group___dimming_html_ga3f94d2455e0aa92133f77af8747b5914"><div class="ttname"><a href="group___dimming.html#ga3f94d2455e0aa92133f77af8747b5914">dim8_lin</a></div><div class="ttdeci">LIB8STATIC uint8_t dim8_lin(uint8_t x)</div><div class="ttdoc">Linear version of the dimming function that halves for values < 128. </div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00486">scale8.h:486</a></div></div>
<div class="ttc" id="group___scaling_html_ga4204edd4a3f8aac7124a10f1f5cfccfe"><div class="ttname"><a href="group___scaling.html#ga4204edd4a3f8aac7124a10f1f5cfccfe">nscale8x2_video</a></div><div class="ttdeci">LIB8STATIC void nscale8x2_video(uint8_t &amp;i, uint8_t &amp;j, fract8 scale)</div><div class="ttdoc">scale two one byte values by a third one, which is treated as the numerator of a fraction whose demom...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00328">scale8.h:328</a></div></div>
<div class="ttc" id="group___scaling_html_ga333095ffa436c94d3e77ee9dc39da1c1"><div class="ttname"><a href="group___scaling.html#ga333095ffa436c94d3e77ee9dc39da1c1">scale8_video</a></div><div class="ttdeci">LIB8STATIC uint8_t scale8_video(uint8_t i, fract8 scale)</div><div class="ttdoc">The "video" version of scale8 guarantees that the output will be only be zero if one or both of the i...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00073">scale8.h:73</a></div></div>
<div class="ttc" id="group___scaling_html_gaf34fde0746c9c2e5ed44f9c437a2267e"><div class="ttname"><a href="group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e">scale16by8</a></div><div class="ttdeci">LIB8STATIC uint16_t scale16by8(uint16_t i, fract8 scale)</div><div class="ttdoc">scale a 16-bit unsigned value by an 8-bit value, considered as numerator of a fraction whose denomina...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00348">scale8.h:348</a></div></div>
<div class="ttc" id="group___scaling_html_ga5f6dde3d9398f4b389c96e759a3f7b80"><div class="ttname"><a href="group___scaling.html#ga5f6dde3d9398f4b389c96e759a3f7b80">nscale8_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC void nscale8_LEAVING_R1_DIRTY(uint8_t &amp;i, fract8 scale)</div><div class="ttdoc">In place modifying version of scale8, also this version of nscale8 does not clean up the R1 register ...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00150">scale8.h:150</a></div></div>
<div class="ttc" id="group___scaling_html_ga1ff8ac00ad78e22acc7bb7445bfdb145"><div class="ttname"><a href="group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145">scale16</a></div><div class="ttdeci">LIB8STATIC uint16_t scale16(uint16_t i, fract16 scale)</div><div class="ttdoc">scale a 16-bit unsigned value by a 16-bit value, considered as numerator of a fraction whose denomina...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00384">scale8.h:384</a></div></div>
-<div class="ttc" id="group___dimming_html_gae8e36472a70f3016595048532d6c3a2d"><div class="ttname"><a href="group___dimming.html#gae8e36472a70f3016595048532d6c3a2d">brighten8_raw</a></div><div class="ttdeci">LIB8STATIC uint8_t brighten8_raw(uint8_t x)</div><div class="ttdoc">inverse of the dimming function, brighten a value </div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00484">scale8.h:484</a></div></div>
+<div class="ttc" id="group___dimming_html_gae8e36472a70f3016595048532d6c3a2d"><div class="ttname"><a href="group___dimming.html#gae8e36472a70f3016595048532d6c3a2d">brighten8_raw</a></div><div class="ttdeci">LIB8STATIC uint8_t brighten8_raw(uint8_t x)</div><div class="ttdoc">inverse of the dimming function, brighten a value </div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00498">scale8.h:498</a></div></div>
<div class="ttc" id="group___scaling_html_ga700b7f510f32e8c91385093c436c27d9"><div class="ttname"><a href="group___scaling.html#ga700b7f510f32e8c91385093c436c27d9">nscale8x3_video</a></div><div class="ttdeci">LIB8STATIC void nscale8x3_video(uint8_t &amp;r, uint8_t &amp;g, uint8_t &amp;b, fract8 scale)</div><div class="ttdoc">scale three one byte values by a fourth one, which is treated as the numerator of a fraction whose de...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00282">scale8.h:282</a></div></div>
-<div class="ttc" id="group___dimming_html_gad21876a676bcf26c47f957faed23f9bb"><div class="ttname"><a href="group___dimming.html#gad21876a676bcf26c47f957faed23f9bb">brighten8_video</a></div><div class="ttdeci">LIB8STATIC uint8_t brighten8_video(uint8_t x)</div><div class="ttdoc">inverse of the dimming function, brighten a value </div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00491">scale8.h:491</a></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> <a href="lib8tion_8h_source.html#l00324">lib8tion.h:324</a></div></div>
+<div class="ttc" id="group___dimming_html_gad21876a676bcf26c47f957faed23f9bb"><div class="ttname"><a href="group___dimming.html#gad21876a676bcf26c47f957faed23f9bb">brighten8_video</a></div><div class="ttdeci">LIB8STATIC uint8_t brighten8_video(uint8_t x)</div><div class="ttdoc">inverse of the dimming function, brighten a value </div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00505">scale8.h:505</a></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> <a href="lib8tion_8h_source.html#l00334">lib8tion.h:334</a></div></div>
<div class="ttc" id="group___scaling_html_ga39579fcf09743f15545fe0b831ca313c"><div class="ttname"><a href="group___scaling.html#ga39579fcf09743f15545fe0b831ca313c">scale8_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC uint8_t scale8_LEAVING_R1_DIRTY(uint8_t i, fract8 scale)</div><div class="ttdoc">This version of scale8 does not clean up the R1 register on AVR If you are doing several &#39;scale8&#39;s in...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00121">scale8.h:121</a></div></div>
<div class="ttc" id="group___scaling_html_ga572d0b441676c9d8ceb071fe8284b7e9"><div class="ttname"><a href="group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9">cleanup_R1</a></div><div class="ttdeci">LIB8STATIC void cleanup_R1()</div><div class="ttdoc">Clean up the r1 register after a series of *LEAVING_R1_DIRTY calls. </div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00244">scale8.h:244</a></div></div>
<div class="ttc" id="group___scaling_html_ga6f419761a744efed4bae8875ac07aef0"><div class="ttname"><a href="group___scaling.html#ga6f419761a744efed4bae8875ac07aef0">nscale8x2</a></div><div class="ttdeci">LIB8STATIC void nscale8x2(uint8_t &amp;i, uint8_t &amp;j, fract8 scale)</div><div class="ttdoc">scale two one byte values by a third one, which is treated as the numerator of a fraction whose demom...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00305">scale8.h:305</a></div></div>
<div class="ttc" id="group___scaling_html_ga2a580fcaa010558218faae95d1936635"><div class="ttname"><a href="group___scaling.html#ga2a580fcaa010558218faae95d1936635">nscale8_video_LEAVING_R1_DIRTY</a></div><div class="ttdeci">LIB8STATIC void nscale8_video_LEAVING_R1_DIRTY(uint8_t &amp;i, fract8 scale)</div><div class="ttdoc">In place modifying version of scale8_video, also this version of nscale8_video does not clean up the ...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00222">scale8.h:222</a></div></div>
<div class="ttc" id="group___scaling_html_ga39bf87e5526120889086cab19ac749b1"><div class="ttname"><a href="group___scaling.html#ga39bf87e5526120889086cab19ac749b1">nscale8x3</a></div><div class="ttdeci">LIB8STATIC void nscale8x3(uint8_t &amp;r, uint8_t &amp;g, uint8_t &amp;b, fract8 scale)</div><div class="ttdoc">scale three one byte values by a fourth one, which is treated as the numerator of a fraction whose de...</div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00259">scale8.h:259</a></div></div>
-<div class="ttc" id="group___dimming_html_ga40a13446a2022dc489be8b2a8f2fa494"><div class="ttname"><a href="group___dimming.html#ga40a13446a2022dc489be8b2a8f2fa494">dim8_video</a></div><div class="ttdeci">LIB8STATIC uint8_t dim8_video(uint8_t x)</div><div class="ttdoc">Adjust a scaling value for dimming for video (value will never go below 1) </div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00466">scale8.h:466</a></div></div>
+<div class="ttc" id="group___dimming_html_ga40a13446a2022dc489be8b2a8f2fa494"><div class="ttname"><a href="group___dimming.html#ga40a13446a2022dc489be8b2a8f2fa494">dim8_video</a></div><div class="ttdeci">LIB8STATIC uint8_t dim8_video(uint8_t x)</div><div class="ttdoc">Adjust a scaling value for dimming for video (value will never go below 1) </div><div class="ttdef"><b>Definition:</b> <a href="scale8_8h_source.html#l00480">scale8.h:480</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_fbb9e787cf27434374136273d35a9c17.html">lib8tion</a></li><li class="navelem"><b>scale8.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/search/all_0.js b/docs/3.1/search/all_0.js
index 54b37936..24d0ef0b 100644
--- a/docs/3.1/search/all_0.js
+++ b/docs/3.1/search/all_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['_5f_5fattribute_5f_5f',['__attribute__',['../struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b',1,'PixelController::__attribute__((always_inline)) inline bool has(int n)'],['../struct_pixel_controller.html#afbe76a814e6bec02854dd4df167567b4',1,'PixelController::__attribute__((always_inline)) inline int advanceBy()'],['../struct_pixel_controller.html#a404558c7da7f3f6fae768bc45af9dc03',1,'PixelController::__attribute__((always_inline)) inline void advanceData()'],['../struct_pixel_controller.html#a900493d7e9e345d0cb6e602186151e73',1,'PixelController::__attribute__((always_inline)) inline void stepDithering()'],['../struct_pixel_controller.html#a9b0bc80097821046dbda7bbbf38dd7df',1,'PixelController::__attribute__((always_inline)) inline void preStepFirstByteDithering()'],['../group___bitswap.html#ga01396a2e40133293c3badab349ac99f0',1,'__attribute__((always_inline)) inline void swapbits8(bitswap_type in:&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) inline void delaycycles():&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) inline void delaycycles&lt;-6 &gt;():&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) bool operator:&#160;fastled_delay.h']]]
+ ['_5f_5fattribute_5f_5f',['__attribute__',['../group___bitswap.html#ga01396a2e40133293c3badab349ac99f0',1,'__attribute__((always_inline)) inline void swapbits8(bitswap_type in:&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) inline void delaycycles():&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) inline void delaycycles&lt;-10 &gt;():&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) bool operator:&#160;fastled_delay.h']]]
];
diff --git a/docs/3.1/search/all_1.js b/docs/3.1/search/all_1.js
index 6c2f0cb7..003a04bf 100644
--- a/docs/3.1/search/all_1.js
+++ b/docs/3.1/search/all_1.js
@@ -10,6 +10,8 @@ var searchData=
['addtorgb',['addToRGB',['../class_c_pixel_view.html#a87abde19e76dfb9ae42971aa3384a50d',1,'CPixelView']]],
['apa102controller',['APA102Controller',['../class_a_p_a102_controller.html',1,'']]],
['apa104',['APA104',['../class_a_p_a104.html',1,'']]],
+ ['avg15',['avg15',['../group___math.html#ga5873ff4e986c61d72cb291709190ed25',1,'math8.h']]],
+ ['avg16',['avg16',['../group___math.html#gac09b1bbea319b879bded54d129eb5358',1,'math8.h']]],
['avg7',['avg7',['../group___math.html#ga30558a835c484b418165909118e702b1',1,'math8.h']]],
['avg8',['avg8',['../group___math.html#ga6bfedf0473d4c3705e8feeb6a25b9ea5',1,'math8.h']]],
['avrsoftwarespioutput',['AVRSoftwareSPIOutput',['../class_a_v_r_software_s_p_i_output.html',1,'']]],
diff --git a/docs/3.1/search/all_12.js b/docs/3.1/search/all_12.js
index ee0076a2..87eaf87a 100644
--- a/docs/3.1/search/all_12.js
+++ b/docs/3.1/search/all_12.js
@@ -25,8 +25,8 @@ var searchData=
['sfract15',['sfract15',['../group__lib8tion.html#ga00cb5dc9e5b477a58669a3e40bc473c2',1,'lib8tion.h']]],
['sfract15tofloat',['sfract15ToFloat',['../group__lib8tion.html#gab947c1150e3b9056cb91685a14270173',1,'lib8tion.h']]],
['sfract7',['sfract7',['../group__lib8tion.html#ga7d6219a7247ab1923ed623e7ae0f34ae',1,'lib8tion.h']]],
- ['show',['show',['../class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583',1,'PixieController::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583',1,'PixieController::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../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()']]],
- ['showcolor',['showColor',['../class_pixie_controller.html#a9da14e8683ef6588d795d33eaba6da3f',1,'PixieController::showColor()'],['../class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259',1,'LPD8806Controller::showColor()'],['../class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501',1,'WS2801Controller::showColor()'],['../class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428',1,'APA102Controller::showColor()'],['../class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a',1,'P9813Controller::showColor()'],['../class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677',1,'SM16716Controller::showColor()'],['../class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92',1,'CLEDController::showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)=0'],['../class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b',1,'CLEDController::showColor(const struct CRGB &amp;data, int nLeds, uint8_t brightness)'],['../class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4',1,'CLEDController::showColor(const struct CRGB &amp;data, uint8_t brightness=255)'],['../class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1',1,'DMXSimpleController::showColor()'],['../class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b',1,'DMXSerialController::showColor()'],['../class_c_fast_l_e_d.html#a7315b060d295bad5fbd32e50eaaf02b0',1,'CFastLED::showColor(const struct CRGB &amp;color, uint8_t scale)'],['../class_c_fast_l_e_d.html#a570df74cf09e6215c3647333d2b479a9',1,'CFastLED::showColor(const struct CRGB &amp;color)']]],
+ ['show',['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_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c',1,'CPixelLEDController::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()']]],
+ ['showcolor',['showColor',['../class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92',1,'CLEDController::showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)=0'],['../class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b',1,'CLEDController::showColor(const struct CRGB &amp;data, int nLeds, uint8_t brightness)'],['../class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4',1,'CLEDController::showColor(const struct CRGB &amp;data, uint8_t brightness=255)'],['../class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016',1,'CPixelLEDController::showColor()'],['../class_c_fast_l_e_d.html#a7315b060d295bad5fbd32e50eaaf02b0',1,'CFastLED::showColor(const struct CRGB &amp;color, uint8_t scale)'],['../class_c_fast_l_e_d.html#a570df74cf09e6215c3647333d2b479a9',1,'CFastLED::showColor(const struct CRGB &amp;color)']]],
['showleds',['showLeds',['../class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076',1,'CLEDController']]],
['sin16_5favr',['sin16_avr',['../group___trig.html#ga660ff60bfc5116525e50187de72009fc',1,'trig8.h']]],
['sin16_5fc',['sin16_C',['../group___trig.html#ga0890962cb06b267617f4b06d7e9be5eb',1,'trig8.h']]],
@@ -35,6 +35,8 @@ var searchData=
['size',['size',['../class_c_l_e_d_controller.html#a63f75cf7e55cf8da46db5fd27110bb3e',1,'CLEDController::size()'],['../class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0',1,'CFastLED::size()'],['../class_c_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e',1,'CPixelView::size()']]],
['sk6812',['SK6812',['../class_s_k6812.html',1,'']]],
['sk6812controller',['SK6812Controller',['../class_s_k6812_controller.html',1,'']]],
+ ['sk6822',['SK6822',['../class_s_k6822.html',1,'']]],
+ ['sk6822controller',['SK6822Controller',['../class_s_k6822_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_3.js b/docs/3.1/search/all_3.js
index c2af51c5..97175347 100644
--- a/docs/3.1/search/all_3.js
+++ b/docs/3.1/search/all_3.js
@@ -8,12 +8,13 @@ var searchData=
['chsv',['CHSV',['../struct_c_h_s_v.html',1,'']]],
['chsvpalette16',['CHSVPalette16',['../class_c_h_s_v_palette16.html',1,'']]],
['chsvpalette256',['CHSVPalette256',['../class_c_h_s_v_palette256.html',1,'']]],
+ ['chsvpalette32',['CHSVPalette32',['../class_c_h_s_v_palette32.html',1,'']]],
['cleanup_5fr1',['cleanup_R1',['../group___scaling.html#ga572d0b441676c9d8ceb071fe8284b7e9',1,'scale8.h']]],
['clear',['clear',['../class_c_fast_l_e_d.html#a042989511cbc42390620bedc196ea956',1,'CFastLED']]],
['clearbluesky',['ClearBlueSky',['../group___color_enums.html#gga251e9e8dc2c7b981786b71706522b2a9acb80944aa5bed3031b19f1e1101f6a9a',1,'color.h']]],
['cleardata',['clearData',['../class_c_fast_l_e_d.html#ac4f613f1b3e618528dca3189df88ce80',1,'CFastLED']]],
['clearleddata',['clearLedData',['../class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52',1,'CLEDController']]],
- ['clearleds',['clearLeds',['../class_pixie_controller.html#af56e4137870a8f2721f16afcc76db01c',1,'PixieController::clearLeds()'],['../class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e',1,'LPD8806Controller::clearLeds()'],['../class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c',1,'WS2801Controller::clearLeds()'],['../class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb',1,'APA102Controller::clearLeds()'],['../class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c',1,'P9813Controller::clearLeds()'],['../class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8',1,'SM16716Controller::clearLeds()'],['../class_c_l_e_d_controller.html#adfa6601c84fefd733904b32ac98b6dae',1,'CLEDController::clearLeds()'],['../class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e',1,'DMXSimpleController::clearLeds()'],['../class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129',1,'DMXSerialController::clearLeds()']]],
+ ['clearleds',['clearLeds',['../class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2',1,'CLEDController']]],
['cledcontroller',['CLEDController',['../class_c_l_e_d_controller.html',1,'CLEDController'],['../class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32',1,'CLEDController::CLEDController()']]],
['cminwait',['CMinWait',['../class_c_min_wait.html',1,'']]],
['cminwait_3c_201000_20_3e',['CMinWait&lt; 1000 &gt;',['../class_c_min_wait.html',1,'']]],
@@ -29,12 +30,15 @@ var searchData=
['cos8',['cos8',['../group___trig.html#ga4432f985c94f5bff715db402d767b0e8',1,'trig8.h']]],
['count',['count',['../class_c_fast_l_e_d.html#ae5730545ea18b1f5228172f9d246beb6',1,'CFastLED']]],
['countfps',['countFPS',['../class_c_fast_l_e_d.html#a61d27e179c9b68bde89d220aebc0de32',1,'CFastLED']]],
+ ['cpixelledcontroller',['CPixelLEDController',['../class_c_pixel_l_e_d_controller.html',1,'']]],
+ ['cpixelledcontroller_3c_20rgb_5forder_20_3e',['CPixelLEDController&lt; RGB_ORDER &gt;',['../class_c_pixel_l_e_d_controller.html',1,'']]],
['cpixelview',['CPixelView',['../class_c_pixel_view.html',1,'CPixelView&lt; PIXEL_TYPE &gt;'],['../class_c_pixel_view.html#afe22ceed228286280b4c6f7692db105a',1,'CPixelView::CPixelView(const CPixelView &amp;other)'],['../class_c_pixel_view.html#a051455d30c4390abd81bbb23182d22a8',1,'CPixelView::CPixelView(PIXEL_TYPE *_leds, int _len)'],['../class_c_pixel_view.html#ada24d4d93b849bc31aec124f682b836a',1,'CPixelView::CPixelView(PIXEL_TYPE *_leds, int _start, int _end)']]],
['cpixelview_3c_20crgb_20_3e',['CPixelView&lt; CRGB &gt;',['../class_c_pixel_view.html',1,'']]],
['crgb',['CRGB',['../struct_c_r_g_b.html',1,'']]],
['crgbarray',['CRGBArray',['../class_c_r_g_b_array.html',1,'']]],
['crgbpalette16',['CRGBPalette16',['../class_c_r_g_b_palette16.html',1,'']]],
['crgbpalette256',['CRGBPalette256',['../class_c_r_g_b_palette256.html',1,'']]],
+ ['crgbpalette32',['CRGBPalette32',['../class_c_r_g_b_palette32.html',1,'']]],
['cubicwave8',['cubicwave8',['../group__lib8tion.html#ga06b04a0cf955ec107d49b76e0cb35225',1,'lib8tion.h']]],
['chsv_20and_20crgb_20type_20definitions',['CHSV and CRGB type definitions',['../group___pixeltypes.html',1,'']]]
];
diff --git a/docs/3.1/search/all_4.js b/docs/3.1/search/all_4.js
index 9808a486..2d3225d6 100644
--- a/docs/3.1/search/all_4.js
+++ b/docs/3.1/search/all_4.js
@@ -11,5 +11,6 @@ var searchData=
['dmxserial',['DMXSERIAL',['../class_d_m_x_s_e_r_i_a_l.html',1,'']]],
['dmxserialcontroller',['DMXSerialController',['../class_d_m_x_serial_controller.html',1,'']]],
['dmxsimple',['DMXSIMPLE',['../class_d_m_x_s_i_m_p_l_e.html',1,'']]],
- ['dmxsimplecontroller',['DMXSimpleController',['../class_d_m_x_simple_controller.html',1,'']]]
+ ['dmxsimplecontroller',['DMXSimpleController',['../class_d_m_x_simple_controller.html',1,'']]],
+ ['dump',['dump',['../class_c_pixel_view.html#a1f32c60d83428f27d3ec899442b82410',1,'CPixelView']]]
];
diff --git a/docs/3.1/search/all_5.js b/docs/3.1/search/all_5.js
index 033f474e..0744b1ac 100644
--- a/docs/3.1/search/all_5.js
+++ b/docs/3.1/search/all_5.js
@@ -3,6 +3,5 @@ var searchData=
['ease8inoutapprox',['ease8InOutApprox',['../group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23',1,'lib8tion.h']]],
['ease8inoutcubic',['ease8InOutCubic',['../group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568',1,'lib8tion.h']]],
['ease8inoutquad',['ease8InOutQuad',['../group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0',1,'lib8tion.h']]],
- ['enable_5fdithering',['enable_dithering',['../struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3',1,'PixelController']]],
['espichipsets',['ESPIChipsets',['../_fast_l_e_d_8h.html#ac06549dc4a351e2c8f1dda8ae81f7926',1,'FastLED.h']]]
];
diff --git a/docs/3.1/search/all_6.js b/docs/3.1/search/all_6.js
index 3c476106..8e6996b3 100644
--- a/docs/3.1/search/all_6.js
+++ b/docs/3.1/search/all_6.js
@@ -18,7 +18,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_2e1_2e1pre',['FastLED3.1.1pre',['../md_release_notes.html',1,'']]],
+ ['fastled3_2e1_2e2pre',['FastLED3.1.2pre',['../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 334a429c..a2c9a614 100644
--- a/docs/3.1/search/all_9.js
+++ b/docs/3.1/search/all_9.js
@@ -2,7 +2,6 @@ var searchData=
[
['ieee754binary32_5ft',['IEEE754binary32_t',['../union_i_e_e_e754binary32__t.html',1,'']]],
['init',['init',['../class_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118',1,'PixieController::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_c.js b/docs/3.1/search/all_c.js
index 860206d7..c66250b4 100644
--- a/docs/3.1/search/all_c.js
+++ b/docs/3.1/search/all_c.js
@@ -3,6 +3,5 @@ var searchData=
['map8',['map8',['../group__lib8tion.html#gaf65357c7aeca9778e5a2f80a6bac2b5d',1,'lib8tion.h']]],
['minutes16',['minutes16',['../group__lib8tion.html#ga223820399921e32ddf018a90223ff336',1,'lib8tion.h']]],
['mod8',['mod8',['../group___math.html#gaa5e80daec10cc13bf1eca8b125ee0e88',1,'math8.h']]],
- ['mul8',['mul8',['../group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f',1,'math8.h']]],
- ['multipixelcontroller',['MultiPixelController',['../struct_multi_pixel_controller.html',1,'']]]
+ ['mul8',['mul8',['../group___math.html#ga10181a03cf8b8428fc524aa78e7fbf7f',1,'math8.h']]]
];
diff --git a/docs/3.1/search/all_f.js b/docs/3.1/search/all_f.js
index b4a737d7..df24656a 100644
--- a/docs/3.1/search/all_f.js
+++ b/docs/3.1/search/all_f.js
@@ -4,7 +4,7 @@ var searchData=
['porting',['PORTING',['../md__p_o_r_t_i_n_g.html',1,'']]],
['p9813controller',['P9813Controller',['../class_p9813_controller.html',1,'']]],
['pin',['Pin',['../class_pin.html',1,'']]],
- ['pixelcontroller',['PixelController',['../struct_pixel_controller.html',1,'PixelController&lt; RGB_ORDER &gt;'],['../struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71',1,'PixelController::PixelController(const PixelController &amp;other)'],['../struct_pixel_controller.html#a81403c8810658d3c41cb210703bbfc00',1,'PixelController::PixelController(const uint8_t *d, int len, CRGB &amp;s, EDitherMode dither=BINARY_DITHER, bool advance=true, uint8_t skip=0)']]],
+ ['pixelcontroller',['PixelController',['../struct_pixel_controller.html',1,'']]],
['pixelset_5fiterator_5fbase',['pixelset_iterator_base',['../class_c_pixel_view_1_1pixelset__iterator__base.html',1,'CPixelView']]],
['pixie',['PIXIE',['../class_p_i_x_i_e.html',1,'']]],
['pixiecontroller',['PixieController',['../class_pixie_controller.html',1,'']]],
diff --git a/docs/3.1/search/classes_10.js b/docs/3.1/search/classes_10.js
index bf0b35e8..090df104 100644
--- a/docs/3.1/search/classes_10.js
+++ b/docs/3.1/search/classes_10.js
@@ -1,14 +1,11 @@
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,'']]],
- ['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,'']]]
+ ['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,'']]],
+ ['ucs2903',['UCS2903',['../class_u_c_s2903.html',1,'']]],
+ ['ucs2903controller',['UCS2903Controller',['../class_u_c_s2903_controller.html',1,'']]]
];
diff --git a/docs/3.1/search/classes_11.js b/docs/3.1/search/classes_11.js
index 090df104..a95343bb 100644
--- a/docs/3.1/search/classes_11.js
+++ b/docs/3.1/search/classes_11.js
@@ -1,11 +1,13 @@
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,'']]],
- ['ucs2903',['UCS2903',['../class_u_c_s2903.html',1,'']]],
- ['ucs2903controller',['UCS2903Controller',['../class_u_c_s2903_controller.html',1,'']]]
+ ['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,'']]]
];
diff --git a/docs/3.1/search/classes_2.js b/docs/3.1/search/classes_2.js
index 92156c02..636077d6 100644
--- a/docs/3.1/search/classes_2.js
+++ b/docs/3.1/search/classes_2.js
@@ -5,14 +5,18 @@ var searchData=
['chsv',['CHSV',['../struct_c_h_s_v.html',1,'']]],
['chsvpalette16',['CHSVPalette16',['../class_c_h_s_v_palette16.html',1,'']]],
['chsvpalette256',['CHSVPalette256',['../class_c_h_s_v_palette256.html',1,'']]],
+ ['chsvpalette32',['CHSVPalette32',['../class_c_h_s_v_palette32.html',1,'']]],
['cledcontroller',['CLEDController',['../class_c_l_e_d_controller.html',1,'']]],
['cminwait',['CMinWait',['../class_c_min_wait.html',1,'']]],
['cminwait_3c_201000_20_3e',['CMinWait&lt; 1000 &gt;',['../class_c_min_wait.html',1,'']]],
['cminwait_3c_202000_20_3e',['CMinWait&lt; 2000 &gt;',['../class_c_min_wait.html',1,'']]],
+ ['cpixelledcontroller',['CPixelLEDController',['../class_c_pixel_l_e_d_controller.html',1,'']]],
+ ['cpixelledcontroller_3c_20rgb_5forder_20_3e',['CPixelLEDController&lt; RGB_ORDER &gt;',['../class_c_pixel_l_e_d_controller.html',1,'']]],
['cpixelview',['CPixelView',['../class_c_pixel_view.html',1,'']]],
['cpixelview_3c_20crgb_20_3e',['CPixelView&lt; CRGB &gt;',['../class_c_pixel_view.html',1,'']]],
['crgb',['CRGB',['../struct_c_r_g_b.html',1,'']]],
['crgbarray',['CRGBArray',['../class_c_r_g_b_array.html',1,'']]],
['crgbpalette16',['CRGBPalette16',['../class_c_r_g_b_palette16.html',1,'']]],
- ['crgbpalette256',['CRGBPalette256',['../class_c_r_g_b_palette256.html',1,'']]]
+ ['crgbpalette256',['CRGBPalette256',['../class_c_r_g_b_palette256.html',1,'']]],
+ ['crgbpalette32',['CRGBPalette32',['../class_c_r_g_b_palette32.html',1,'']]]
];
diff --git a/docs/3.1/search/classes_9.js b/docs/3.1/search/classes_9.js
index 6cab743a..90998429 100644
--- a/docs/3.1/search/classes_9.js
+++ b/docs/3.1/search/classes_9.js
@@ -1,4 +1,5 @@
var searchData=
[
- ['multipixelcontroller',['MultiPixelController',['../struct_multi_pixel_controller.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_a.js b/docs/3.1/search/classes_a.js
index 90998429..f9e2113b 100644
--- a/docs/3.1/search/classes_a.js
+++ b/docs/3.1/search/classes_a.js
@@ -1,5 +1,4 @@
var searchData=
[
- ['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,'']]]
+ ['outputpin',['OutputPin',['../class_output_pin.html',1,'']]]
];
diff --git a/docs/3.1/search/classes_b.js b/docs/3.1/search/classes_b.js
index f9e2113b..9eedf840 100644
--- a/docs/3.1/search/classes_b.js
+++ b/docs/3.1/search/classes_b.js
@@ -1,4 +1,11 @@
var searchData=
[
- ['outputpin',['OutputPin',['../class_output_pin.html',1,'']]]
+ ['p9813controller',['P9813Controller',['../class_p9813_controller.html',1,'']]],
+ ['pin',['Pin',['../class_pin.html',1,'']]],
+ ['pixelcontroller',['PixelController',['../struct_pixel_controller.html',1,'']]],
+ ['pixelset_5fiterator_5fbase',['pixelset_iterator_base',['../class_c_pixel_view_1_1pixelset__iterator__base.html',1,'CPixelView']]],
+ ['pixie',['PIXIE',['../class_p_i_x_i_e.html',1,'']]],
+ ['pixiecontroller',['PixieController',['../class_pixie_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_c.js b/docs/3.1/search/classes_c.js
index 9eedf840..6feb8274 100644
--- a/docs/3.1/search/classes_c.js
+++ b/docs/3.1/search/classes_c.js
@@ -1,11 +1,4 @@
var searchData=
[
- ['p9813controller',['P9813Controller',['../class_p9813_controller.html',1,'']]],
- ['pin',['Pin',['../class_pin.html',1,'']]],
- ['pixelcontroller',['PixelController',['../struct_pixel_controller.html',1,'']]],
- ['pixelset_5fiterator_5fbase',['pixelset_iterator_base',['../class_c_pixel_view_1_1pixelset__iterator__base.html',1,'CPixelView']]],
- ['pixie',['PIXIE',['../class_p_i_x_i_e.html',1,'']]],
- ['pixiecontroller',['PixieController',['../class_pixie_controller.html',1,'']]],
- ['pl9823',['PL9823',['../class_p_l9823.html',1,'']]],
- ['pl9823controller',['PL9823Controller',['../class_p_l9823_controller.html',1,'']]]
+ ['q',['q',['../classq.html',1,'']]]
];
diff --git a/docs/3.1/search/classes_d.js b/docs/3.1/search/classes_d.js
index 6feb8274..acf6872e 100644
--- a/docs/3.1/search/classes_d.js
+++ b/docs/3.1/search/classes_d.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['q',['q',['../classq.html',1,'']]]
+ ['refhardwarespioutput',['REFHardwareSPIOutput',['../class_r_e_f_hardware_s_p_i_output.html',1,'']]]
];
diff --git a/docs/3.1/search/classes_e.js b/docs/3.1/search/classes_e.js
index acf6872e..af376921 100644
--- a/docs/3.1/search/classes_e.js
+++ b/docs/3.1/search/classes_e.js
@@ -1,4 +1,19 @@
var searchData=
[
- ['refhardwarespioutput',['REFHardwareSPIOutput',['../class_r_e_f_hardware_s_p_i_output.html',1,'']]]
+ ['selectable',['Selectable',['../class_selectable.html',1,'']]],
+ ['sk6812',['SK6812',['../class_s_k6812.html',1,'']]],
+ ['sk6812controller',['SK6812Controller',['../class_s_k6812_controller.html',1,'']]],
+ ['sk6822',['SK6822',['../class_s_k6822.html',1,'']]],
+ ['sk6822controller',['SK6822Controller',['../class_s_k6822_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/classes_f.js b/docs/3.1/search/classes_f.js
index c106254f..bf0b35e8 100644
--- a/docs/3.1/search/classes_f.js
+++ b/docs/3.1/search/classes_f.js
@@ -1,17 +1,14 @@
var searchData=
[
- ['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,'']]]
+ ['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/functions_0.js b/docs/3.1/search/functions_0.js
index 54b37936..24d0ef0b 100644
--- a/docs/3.1/search/functions_0.js
+++ b/docs/3.1/search/functions_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['_5f_5fattribute_5f_5f',['__attribute__',['../struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b',1,'PixelController::__attribute__((always_inline)) inline bool has(int n)'],['../struct_pixel_controller.html#afbe76a814e6bec02854dd4df167567b4',1,'PixelController::__attribute__((always_inline)) inline int advanceBy()'],['../struct_pixel_controller.html#a404558c7da7f3f6fae768bc45af9dc03',1,'PixelController::__attribute__((always_inline)) inline void advanceData()'],['../struct_pixel_controller.html#a900493d7e9e345d0cb6e602186151e73',1,'PixelController::__attribute__((always_inline)) inline void stepDithering()'],['../struct_pixel_controller.html#a9b0bc80097821046dbda7bbbf38dd7df',1,'PixelController::__attribute__((always_inline)) inline void preStepFirstByteDithering()'],['../group___bitswap.html#ga01396a2e40133293c3badab349ac99f0',1,'__attribute__((always_inline)) inline void swapbits8(bitswap_type in:&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) inline void delaycycles():&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) inline void delaycycles&lt;-6 &gt;():&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) bool operator:&#160;fastled_delay.h']]]
+ ['_5f_5fattribute_5f_5f',['__attribute__',['../group___bitswap.html#ga01396a2e40133293c3badab349ac99f0',1,'__attribute__((always_inline)) inline void swapbits8(bitswap_type in:&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) inline void delaycycles():&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) inline void delaycycles&lt;-10 &gt;():&#160;fastled_delay.h'],['../group___pixeltypes.html#gad47d9c821aeaaa0123d125a18ff961d5',1,'__attribute__((always_inline)) bool operator:&#160;fastled_delay.h']]]
];
diff --git a/docs/3.1/search/functions_1.js b/docs/3.1/search/functions_1.js
index 56911da8..1a4663ce 100644
--- a/docs/3.1/search/functions_1.js
+++ b/docs/3.1/search/functions_1.js
@@ -5,6 +5,8 @@ var searchData=
['addleds',['addLeds',['../class_c_fast_l_e_d.html#afd7928d822589740af6e23b2d510cf3f',1,'CFastLED::addLeds(CLEDController *pLed, struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)'],['../class_c_fast_l_e_d.html#a79df28eb68fc2062b995f9000aed274c',1,'CFastLED::addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)'],['../class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9',1,'CFastLED::addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)'],['../class_c_fast_l_e_d.html#ac4dff92f45048399edb0812a02ab9d96',1,'CFastLED::addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)'],['../class_c_fast_l_e_d.html#aa8ec7c8ab7c8aed4d85b9c3d6d5feaa9',1,'CFastLED::addLeds(struct CRGB *data, int nLedsOrOffset, int nLedsIfOffset=0)']]],
['addmod8',['addmod8',['../group___math.html#ga2bcd51c47538dbc933999382e272a7a7',1,'math8.h']]],
['addtorgb',['addToRGB',['../class_c_pixel_view.html#a87abde19e76dfb9ae42971aa3384a50d',1,'CPixelView']]],
+ ['avg15',['avg15',['../group___math.html#ga5873ff4e986c61d72cb291709190ed25',1,'math8.h']]],
+ ['avg16',['avg16',['../group___math.html#gac09b1bbea319b879bded54d129eb5358',1,'math8.h']]],
['avg7',['avg7',['../group___math.html#ga30558a835c484b418165909118e702b1',1,'math8.h']]],
['avg8',['avg8',['../group___math.html#ga6bfedf0473d4c3705e8feeb6a25b9ea5',1,'math8.h']]]
];
diff --git a/docs/3.1/search/functions_10.js b/docs/3.1/search/functions_10.js
index 7bb12c0f..6e57df92 100644
--- a/docs/3.1/search/functions_10.js
+++ b/docs/3.1/search/functions_10.js
@@ -1,10 +1,33 @@
var searchData=
[
- ['random16',['random16',['../group___random.html#ga17034d936ef716efe820e11c1df043b0',1,'random16():&#160;random8.h'],['../group___random.html#ga7236600fa1c01fc63665a9b8db508359',1,'random16(uint16_t lim):&#160;random8.h'],['../group___random.html#ga69d2cf7b8d730a0c36eec8711dbb134f',1,'random16(uint16_t min, uint16_t lim):&#160;random8.h']]],
- ['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']]],
- ['release',['release',['../class_n_o_p_s_p_i_output.html#a0599fbdf5e04a633d24ff17033443237',1,'NOPSPIOutput']]],
- ['reversed',['reversed',['../class_c_pixel_view.html#a384417cfef1e38aa24fde4673fd8eaac',1,'CPixelView']]]
+ ['scale16',['scale16',['../group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145',1,'scale8.h']]],
+ ['scale16by8',['scale16by8',['../group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e',1,'scale8.h']]],
+ ['scale8',['scale8',['../group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af',1,'scale8.h']]],
+ ['scale8_5fleaving_5fr1_5fdirty',['scale8_LEAVING_R1_DIRTY',['../group___scaling.html#ga39579fcf09743f15545fe0b831ca313c',1,'scale8.h']]],
+ ['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_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_c_pixel_l_e_d_controller.html#a36cc2a15671bae0db53df1e26b4a813c',1,'CPixelLEDController::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()']]],
+ ['showcolor',['showColor',['../class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92',1,'CLEDController::showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)=0'],['../class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b',1,'CLEDController::showColor(const struct CRGB &amp;data, int nLeds, uint8_t brightness)'],['../class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4',1,'CLEDController::showColor(const struct CRGB &amp;data, uint8_t brightness=255)'],['../class_c_pixel_l_e_d_controller.html#af5569b9e92f75410e03c75bf5764e016',1,'CPixelLEDController::showColor()'],['../class_c_fast_l_e_d.html#a7315b060d295bad5fbd32e50eaaf02b0',1,'CFastLED::showColor(const struct CRGB &amp;color, uint8_t scale)'],['../class_c_fast_l_e_d.html#a570df74cf09e6215c3647333d2b479a9',1,'CFastLED::showColor(const struct CRGB &amp;color)']]],
+ ['showleds',['showLeds',['../class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076',1,'CLEDController']]],
+ ['sin16_5favr',['sin16_avr',['../group___trig.html#ga660ff60bfc5116525e50187de72009fc',1,'trig8.h']]],
+ ['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#a63f75cf7e55cf8da46db5fd27110bb3e',1,'CLEDController::size()'],['../class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0',1,'CFastLED::size()'],['../class_c_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e',1,'CPixelView::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']]],
+ ['subfromrgb',['subFromRGB',['../class_c_pixel_view.html#afb57aeebbd762d7ead044a12fd51f639',1,'CPixelView']]]
];
diff --git a/docs/3.1/search/functions_11.js b/docs/3.1/search/functions_11.js
index b0081187..13df08d0 100644
--- a/docs/3.1/search/functions_11.js
+++ b/docs/3.1/search/functions_11.js
@@ -1,33 +1,4 @@
var searchData=
[
- ['scale16',['scale16',['../group___scaling.html#ga1ff8ac00ad78e22acc7bb7445bfdb145',1,'scale8.h']]],
- ['scale16by8',['scale16by8',['../group___scaling.html#gaf34fde0746c9c2e5ed44f9c437a2267e',1,'scale8.h']]],
- ['scale8',['scale8',['../group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af',1,'scale8.h']]],
- ['scale8_5fleaving_5fr1_5fdirty',['scale8_LEAVING_R1_DIRTY',['../group___scaling.html#ga39579fcf09743f15545fe0b831ca313c',1,'scale8.h']]],
- ['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_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583',1,'PixieController::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../class_pixie_controller.html#a1ce5b1a38b79d2659d2610ec65f3d583',1,'PixieController::show(const struct CRGB *data, int nLeds, CRGB scale)'],['../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()']]],
- ['showcolor',['showColor',['../class_pixie_controller.html#a9da14e8683ef6588d795d33eaba6da3f',1,'PixieController::showColor()'],['../class_l_p_d8806_controller.html#a4f6471eddcfe5445502b02f1f3179259',1,'LPD8806Controller::showColor()'],['../class_w_s2801_controller.html#a615609bf16dd4c8fcc9ccf286ca52501',1,'WS2801Controller::showColor()'],['../class_a_p_a102_controller.html#a0aa9f2896fe8b23554623fd3de0d5428',1,'APA102Controller::showColor()'],['../class_p9813_controller.html#ae60dbfc4d27c62448032c61e7730ec8a',1,'P9813Controller::showColor()'],['../class_s_m16716_controller.html#a7df8b8a34e0dc067c69aa056deca9677',1,'SM16716Controller::showColor()'],['../class_c_l_e_d_controller.html#a068fa50d8c7d31bd8537b731eea84c92',1,'CLEDController::showColor(const struct CRGB &amp;data, int nLeds, CRGB scale)=0'],['../class_c_l_e_d_controller.html#a253069a734075b298da65d59d6efbb3b',1,'CLEDController::showColor(const struct CRGB &amp;data, int nLeds, uint8_t brightness)'],['../class_c_l_e_d_controller.html#a4ccd149ab7282817041a1ae4e586a9d4',1,'CLEDController::showColor(const struct CRGB &amp;data, uint8_t brightness=255)'],['../class_d_m_x_simple_controller.html#a3fb3a0501aae1d7a6aefb89f77168bd1',1,'DMXSimpleController::showColor()'],['../class_d_m_x_serial_controller.html#a3d6285e65af8862eb4b0d36d6d3df22b',1,'DMXSerialController::showColor()'],['../class_c_fast_l_e_d.html#a7315b060d295bad5fbd32e50eaaf02b0',1,'CFastLED::showColor(const struct CRGB &amp;color, uint8_t scale)'],['../class_c_fast_l_e_d.html#a570df74cf09e6215c3647333d2b479a9',1,'CFastLED::showColor(const struct CRGB &amp;color)']]],
- ['showleds',['showLeds',['../class_c_l_e_d_controller.html#aa4124b1cf5546ad028166e7884276076',1,'CLEDController']]],
- ['sin16_5favr',['sin16_avr',['../group___trig.html#ga660ff60bfc5116525e50187de72009fc',1,'trig8.h']]],
- ['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#a63f75cf7e55cf8da46db5fd27110bb3e',1,'CLEDController::size()'],['../class_c_fast_l_e_d.html#a18fba22754d2a1a206fc5db8d24a92d0',1,'CFastLED::size()'],['../class_c_pixel_view.html#afe3500651fc4eb5770aeb01728aa0a1e',1,'CPixelView::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']]],
- ['subfromrgb',['subFromRGB',['../class_c_pixel_view.html#afb57aeebbd762d7ead044a12fd51f639',1,'CPixelView']]]
+ ['triwave8',['triwave8',['../group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac',1,'lib8tion.h']]]
];
diff --git a/docs/3.1/search/functions_12.js b/docs/3.1/search/functions_12.js
index 13df08d0..f3ff0f5c 100644
--- a/docs/3.1/search/functions_12.js
+++ b/docs/3.1/search/functions_12.js
@@ -1,4 +1,11 @@
var searchData=
[
- ['triwave8',['triwave8',['../group__lib8tion.html#gae9e011ff745ade1164ae77b0ef62bfac',1,'lib8tion.h']]]
+ ['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_3.js b/docs/3.1/search/functions_3.js
index 50d7d52f..d2de6461 100644
--- a/docs/3.1/search/functions_3.js
+++ b/docs/3.1/search/functions_3.js
@@ -4,7 +4,7 @@ var searchData=
['clear',['clear',['../class_c_fast_l_e_d.html#a042989511cbc42390620bedc196ea956',1,'CFastLED']]],
['cleardata',['clearData',['../class_c_fast_l_e_d.html#ac4f613f1b3e618528dca3189df88ce80',1,'CFastLED']]],
['clearleddata',['clearLedData',['../class_c_l_e_d_controller.html#a7b61c81e004c96ff670a2742057a5a52',1,'CLEDController']]],
- ['clearleds',['clearLeds',['../class_pixie_controller.html#af56e4137870a8f2721f16afcc76db01c',1,'PixieController::clearLeds()'],['../class_l_p_d8806_controller.html#a7da0ecf67004256c83131406b2f4889e',1,'LPD8806Controller::clearLeds()'],['../class_w_s2801_controller.html#a867d4249b5921e0d717c6c21038bb11c',1,'WS2801Controller::clearLeds()'],['../class_a_p_a102_controller.html#aadcdde1b8fc6c680504fe9455ceff0fb',1,'APA102Controller::clearLeds()'],['../class_p9813_controller.html#ac2fddaa8ac8860649da9865b58dca13c',1,'P9813Controller::clearLeds()'],['../class_s_m16716_controller.html#a89d3d5ef2239a9d452bc2478b0549ad8',1,'SM16716Controller::clearLeds()'],['../class_c_l_e_d_controller.html#adfa6601c84fefd733904b32ac98b6dae',1,'CLEDController::clearLeds()'],['../class_d_m_x_simple_controller.html#a66deae70caf1d43a8692fff6540d1f1e',1,'DMXSimpleController::clearLeds()'],['../class_d_m_x_serial_controller.html#a04689efea1c1daf74905f87692caa129',1,'DMXSerialController::clearLeds()']]],
+ ['clearleds',['clearLeds',['../class_c_l_e_d_controller.html#abd0f6ce4701e76ebc4b916e0a04134f2',1,'CLEDController']]],
['cledcontroller',['CLEDController',['../class_c_l_e_d_controller.html#a8c560c6d171f117dfd19c0f2ec780a32',1,'CLEDController']]],
['cos16',['cos16',['../group___trig.html#ga056952ebed39f55880bb353857b47075',1,'trig8.h']]],
['cos8',['cos8',['../group___trig.html#ga4432f985c94f5bff715db402d767b0e8',1,'trig8.h']]],
diff --git a/docs/3.1/search/functions_4.js b/docs/3.1/search/functions_4.js
index e9fa4ed5..7547a82b 100644
--- a/docs/3.1/search/functions_4.js
+++ b/docs/3.1/search/functions_4.js
@@ -4,5 +4,6 @@ var searchData=
['dim8_5flin',['dim8_lin',['../group___dimming.html#ga3f94d2455e0aa92133f77af8747b5914',1,'scale8.h']]],
['dim8_5fraw',['dim8_raw',['../group___dimming.html#gae51352a3522bb8eae5e17dbee97aa1aa',1,'scale8.h']]],
['dim8_5fvideo',['dim8_video',['../group___dimming.html#ga40a13446a2022dc489be8b2a8f2fa494',1,'scale8.h']]],
- ['div1024_5f32_5f16',['div1024_32_16',['../group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e',1,'lib8tion.h']]]
+ ['div1024_5f32_5f16',['div1024_32_16',['../group__lib8tion.html#ga5f95d6e55b4986bd88f662528cef717e',1,'lib8tion.h']]],
+ ['dump',['dump',['../class_c_pixel_view.html#a1f32c60d83428f27d3ec899442b82410',1,'CPixelView']]]
];
diff --git a/docs/3.1/search/functions_5.js b/docs/3.1/search/functions_5.js
index 3194818e..2334ec17 100644
--- a/docs/3.1/search/functions_5.js
+++ b/docs/3.1/search/functions_5.js
@@ -2,6 +2,5 @@ var searchData=
[
['ease8inoutapprox',['ease8InOutApprox',['../group__lib8tion.html#gaa041cdbb17f073dbd352fcae6962dc23',1,'lib8tion.h']]],
['ease8inoutcubic',['ease8InOutCubic',['../group__lib8tion.html#ga3fa6d71702477e71d7c0dd864eb1d568',1,'lib8tion.h']]],
- ['ease8inoutquad',['ease8InOutQuad',['../group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0',1,'lib8tion.h']]],
- ['enable_5fdithering',['enable_dithering',['../struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3',1,'PixelController']]]
+ ['ease8inoutquad',['ease8InOutQuad',['../group__lib8tion.html#ga381449070b2d6bfba356f87881ab28c0',1,'lib8tion.h']]]
];
diff --git a/docs/3.1/search/functions_9.js b/docs/3.1/search/functions_9.js
index 22d04414..d4ace918 100644
--- a/docs/3.1/search/functions_9.js
+++ b/docs/3.1/search/functions_9.js
@@ -1,6 +1,5 @@
var searchData=
[
['init',['init',['../class_pixie_controller.html#a7a5495b64c479dbb5963f894e5a27118',1,'PixieController::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/functions_e.js b/docs/3.1/search/functions_e.js
index 042ab40b..aef9ecd0 100644
--- a/docs/3.1/search/functions_e.js
+++ b/docs/3.1/search/functions_e.js
@@ -1,4 +1,8 @@
var searchData=
[
- ['pixelcontroller',['PixelController',['../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)']]]
+ ['qadd7',['qadd7',['../group___math.html#gadf60ccff727f52078aecdd5873b6f0bc',1,'math8.h']]],
+ ['qadd8',['qadd8',['../group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f',1,'math8.h']]],
+ ['qmul8',['qmul8',['../group___math.html#ga9d113e85065df7c9006704ea6b6dcda4',1,'math8.h']]],
+ ['qsub8',['qsub8',['../group___math.html#gaaaa16f47aca46653d51793b1af177587',1,'math8.h']]],
+ ['quadwave8',['quadwave8',['../group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f',1,'lib8tion.h']]]
];
diff --git a/docs/3.1/search/functions_f.js b/docs/3.1/search/functions_f.js
index aef9ecd0..7bb12c0f 100644
--- a/docs/3.1/search/functions_f.js
+++ b/docs/3.1/search/functions_f.js
@@ -1,8 +1,10 @@
var searchData=
[
- ['qadd7',['qadd7',['../group___math.html#gadf60ccff727f52078aecdd5873b6f0bc',1,'math8.h']]],
- ['qadd8',['qadd8',['../group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f',1,'math8.h']]],
- ['qmul8',['qmul8',['../group___math.html#ga9d113e85065df7c9006704ea6b6dcda4',1,'math8.h']]],
- ['qsub8',['qsub8',['../group___math.html#gaaaa16f47aca46653d51793b1af177587',1,'math8.h']]],
- ['quadwave8',['quadwave8',['../group__lib8tion.html#ga209d6cbdb109cc3139e7bb1e46c6228f',1,'lib8tion.h']]]
+ ['random16',['random16',['../group___random.html#ga17034d936ef716efe820e11c1df043b0',1,'random16():&#160;random8.h'],['../group___random.html#ga7236600fa1c01fc63665a9b8db508359',1,'random16(uint16_t lim):&#160;random8.h'],['../group___random.html#ga69d2cf7b8d730a0c36eec8711dbb134f',1,'random16(uint16_t min, uint16_t lim):&#160;random8.h']]],
+ ['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']]],
+ ['release',['release',['../class_n_o_p_s_p_i_output.html#a0599fbdf5e04a633d24ff17033443237',1,'NOPSPIOutput']]],
+ ['reversed',['reversed',['../class_c_pixel_view.html#a384417cfef1e38aa24fde4673fd8eaac',1,'CPixelView']]]
];
diff --git a/docs/3.1/search/pages_0.js b/docs/3.1/search/pages_0.js
index 4ff498e3..2d6d63b7 100644
--- a/docs/3.1/search/pages_0.js
+++ b/docs/3.1/search/pages_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['fastled3_2e1_2e1pre',['FastLED3.1.1pre',['../md_release_notes.html',1,'']]]
+ ['fastled3_2e1_2e2pre',['FastLED3.1.2pre',['../md_release_notes.html',1,'']]]
];
diff --git a/docs/3.1/search/searchdata.js b/docs/3.1/search/searchdata.js
index 854e70e9..c45779e4 100644
--- a/docs/3.1/search/searchdata.js
+++ b/docs/3.1/search/searchdata.js
@@ -1,9 +1,9 @@
var indexSectionsWithContent =
{
0: "_abcdefghijlmnopqrstuw",
- 1: "abcdfgijlmnopqrstuw",
+ 1: "abcdfgijlnopqrstuw",
2: "bcfn",
- 3: "_abcdefghilmnopqrstw",
+ 3: "_abcdefghilmnoqrstw",
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 5a7b4d17..d9f81d7e 100644
--- a/docs/3.1/struct_c_h_s_v-members.html
+++ b/docs/3.1/struct_c_h_s_v-members.html
@@ -133,7 +133,7 @@ $(document).ready(function(){initNavTree('struct_c_h_s_v.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/struct_c_h_s_v.html b/docs/3.1/struct_c_h_s_v.html
index 335dfe41..21ae658a 100644
--- a/docs/3.1/struct_c_h_s_v.html
+++ b/docs/3.1/struct_c_h_s_v.html
@@ -189,7 +189,7 @@ union {</td></tr>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Representation of an HSV pixel (hue, saturation, value (aka brightness)). </p>
-<p>Definition at line <a class="el" href="pixeltypes_8h_source.html#l00021">21</a> of file <a class="el" href="pixeltypes_8h_source.html">pixeltypes.h</a>.</p>
+<p>Definition at line <a class="el" href="pixeltypes_8h_source.html#l00023">23</a> of file <a class="el" href="pixeltypes_8h_source.html">pixeltypes.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="pixeltypes_8h_source.html">pixeltypes.h</a></li>
</ul>
@@ -199,7 +199,7 @@ union {</td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="struct_c_h_s_v.html">CHSV</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 d4fa3ccc..6f2befd7 100644
--- a/docs/3.1/struct_c_r_g_b-members.html
+++ b/docs/3.1/struct_c_r_g_b-members.html
@@ -325,7 +325,7 @@ $(document).ready(function(){initNavTree('struct_c_r_g_b.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/struct_c_r_g_b.html b/docs/3.1/struct_c_r_g_b.html
index 4ad97fe5..f31165e4 100644
--- a/docs/3.1/struct_c_r_g_b.html
+++ b/docs/3.1/struct_c_r_g_b.html
@@ -508,7 +508,7 @@ union {</td></tr>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Representation of an RGB pixel (Red, Green, Blue) </p>
-<p>Definition at line <a class="el" href="pixeltypes_8h_source.html#l00088">88</a> of file <a class="el" href="pixeltypes_8h_source.html">pixeltypes.h</a>.</p>
+<p>Definition at line <a class="el" href="pixeltypes_8h_source.html#l00090">90</a> of file <a class="el" href="pixeltypes_8h_source.html">pixeltypes.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="pixeltypes_8h_source.html">pixeltypes.h</a></li>
</ul>
@@ -518,7 +518,7 @@ union {</td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="struct_c_r_g_b.html">CRGB</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/struct_pixel_controller-members.html b/docs/3.1/struct_pixel_controller-members.html
index f3a899d4..4a3c7869 100644
--- a/docs/3.1/struct_pixel_controller-members.html
+++ b/docs/3.1/struct_pixel_controller-members.html
@@ -108,48 +108,71 @@ $(document).ready(function(){initNavTree('struct_pixel_controller.html','');});
<div class="header">
<div class="headertitle">
-<div class="title">PixelController&lt; RGB_ORDER &gt; Member List</div> </div>
+<div class="title">PixelController&lt; RGB_ORDER, LANES, MASK &gt; Member List</div> </div>
</div><!--header-->
<div class="contents">
-<p>This is the complete list of members for <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>, including all inherited members.</p>
+<p>This is the complete list of members for <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>, including all inherited members.</p>
<table class="directory">
- <tr class="even"><td class="entry"><a class="el" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a>((always_inline)) inline bool has(int n)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="struct_pixel_controller.html#afbe76a814e6bec02854dd4df167567b4">__attribute__</a>((always_inline)) inline int advanceBy()</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="struct_pixel_controller.html#a404558c7da7f3f6fae768bc45af9dc03">__attribute__</a>((always_inline)) inline void advanceData()</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="struct_pixel_controller.html#a900493d7e9e345d0cb6e602186151e73">__attribute__</a>((always_inline)) inline void stepDithering()</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="struct_pixel_controller.html#a9b0bc80097821046dbda7bbbf38dd7df">__attribute__</a>((always_inline)) inline void preStepFirstByteDithering()</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t loadByte(PixelController &amp;pc) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t dither(PixelController &amp;pc (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t scale(PixelController &amp;pc (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t loadAndScale(PixelController &amp;pc) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t advanceAndLoadAndScale(PixelController &amp;pc) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t loadAndScale0() (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t loadAndScale1() (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t loadAndScale2() (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t advanceAndLoadAndScale0() (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t stepAdvanceAndLoadAndScale0() (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>b</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>d</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>e</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">enable_dithering</a>(EDitherMode dither)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="struct_pixel_controller.html#accb48b27c47c742a8b13f97ae1d82d32">init_binary_dithering</a>()</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>mAdvance</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>mData</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>mLen</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>mScale</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71">PixelController</a>(const PixelController &amp;other)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="struct_pixel_controller.html#a81403c8810658d3c41cb210703bbfc00">PixelController</a>(const uint8_t *d, int len, CRGB &amp;s, EDitherMode dither=BINARY_DITHER, bool advance=true, uint8_t skip=0)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>PixelController</b>(const CRGB *d, int len, CRGB &amp;s, EDitherMode dither=BINARY_DITHER) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>PixelController</b>(const CRGB &amp;d, int len, CRGB &amp;s, EDitherMode dither=BINARY_DITHER) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>PixelController</b>(const CARGB &amp;d, int len, CRGB &amp;s, EDitherMode dither=BINARY_DITHER) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>PixelController</b>(const CARGB *d, int len, CRGB &amp;s, EDitherMode dither=BINARY_DITHER) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline bool has(int n) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline int size() (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline int advanceBy() (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline void advanceData() (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline void stepDithering() (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline void preStepFirstByteDithering() (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t loadByte(PixelController &amp;pc) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t loadByte(PixelController &amp;pc (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t dither(PixelController &amp;pc (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t dither(PixelController &amp; (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t scale(PixelController &amp;pc (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t scale(PixelController &amp; (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t loadAndScale(PixelController &amp;pc) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t loadAndScale(PixelController &amp;pc (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t loadAndScale(PixelController &amp;pc (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t loadAndScale(PixelController &amp;pc (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t advanceAndLoadAndScale(PixelController &amp;pc) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t advanceAndLoadAndScale(PixelController &amp;pc (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t getd(PixelController &amp;pc) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline static uint8_t getscale(PixelController &amp;pc) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t loadAndScale0(int lane) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t loadAndScale1(int lane) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t loadAndScale2(int lane) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t advanceAndLoadAndScale0(int lane) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t stepAdvanceAndLoadAndScale0(int lane) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t loadAndScale0() (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t loadAndScale1() (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t loadAndScale2() (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t advanceAndLoadAndScale0() (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>__attribute__</b>((always_inline)) inline uint8_t stepAdvanceAndLoadAndScale0() (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>b</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>d</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>d</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>d</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>e</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>enable_dithering</b>(EDitherMode dither) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>init_binary_dithering</b>() (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>initOffsets</b>(int len) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>lane</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>loadAndScale</b>(pc, lane) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>mAdvance</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>mData</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>mLen</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>mLenRemaining</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>mOffsets</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>mScale</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>PixelController</b>(const PixelController &amp;other) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>PixelController</b>(const uint8_t *d, int len, CRGB &amp;s, EDitherMode dither=BINARY_DITHER, bool advance=true, uint8_t skip=0) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>PixelController</b>(const CRGB *d, int len, CRGB &amp;s, EDitherMode dither=BINARY_DITHER) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>PixelController</b>(const CRGB &amp;d, int len, CRGB &amp;s, EDitherMode dither=BINARY_DITHER) (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>scale</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>scale</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>scale</b> (defined in <a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a>)</td><td class="entry"><a class="el" href="struct_pixel_controller.html">PixelController&lt; RGB_ORDER, LANES, MASK &gt;</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/struct_pixel_controller.html b/docs/3.1/struct_pixel_controller.html
index a844ddde..99fb470e 100644
--- a/docs/3.1/struct_pixel_controller.html
+++ b/docs/3.1/struct_pixel_controller.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: PixelController&lt; RGB_ORDER &gt; Struct Template Reference</title>
+<title>FastLED: PixelController&lt; RGB_ORDER, LANES, MASK &gt; Struct 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>
@@ -112,219 +112,205 @@ $(document).ready(function(){initNavTree('struct_pixel_controller.html','');});
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="struct_pixel_controller-members.html">List of all members</a> </div>
<div class="headertitle">
-<div class="title">PixelController&lt; RGB_ORDER &gt; Struct Template Reference</div> </div>
+<div class="title">PixelController&lt; RGB_ORDER, LANES, MASK &gt; Struct Template Reference</div> </div>
</div><!--header-->
<div class="contents">
-
-<p>Pixel controller class.
- <a href="struct_pixel_controller.html#details">More...</a></p>
-
-<p><code>#include &lt;<a class="el" href="controller_8h_source.html">controller.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
- <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Collaboration diagram for PixelController&lt; RGB_ORDER &gt;:</div>
+ <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Collaboration diagram for PixelController&lt; RGB_ORDER, LANES, MASK &gt;:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
-<div class="center"><img src="struct_pixel_controller__coll__graph.png" border="0" usemap="#_pixel_controller_3_01_r_g_b___o_r_d_e_r_01_4_coll__map" alt="Collaboration graph"/></div>
-<map name="_pixel_controller_3_01_r_g_b___o_r_d_e_r_01_4_coll__map" id="_pixel_controller_3_01_r_g_b___o_r_d_e_r_01_4_coll__map">
-<area shape="rect" id="node2" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="50,5,109,32"/></map>
+<div class="center"><img src="struct_pixel_controller__coll__graph.png" border="0" usemap="#_pixel_controller_3_01_r_g_b___o_r_d_e_r_00_01_l_a_n_e_s_00_01_m_a_s_k_01_4_coll__map" alt="Collaboration graph"/></div>
+<map name="_pixel_controller_3_01_r_g_b___o_r_d_e_r_00_01_l_a_n_e_s_00_01_m_a_s_k_01_4_coll__map" id="_pixel_controller_3_01_r_g_b___o_r_d_e_r_00_01_l_a_n_e_s_00_01_m_a_s_k_01_4_coll__map">
+<area shape="rect" id="node2" href="struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="67,5,127,32"/></map>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
-<tr class="memitem:aec44f7bfc391ebf4874f678a994eff71"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aec44f7bfc391ebf4874f678a994eff71"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71">PixelController</a> (const <a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;other)</td></tr>
-<tr class="memdesc:aec44f7bfc391ebf4874f678a994eff71"><td class="mdescLeft">&#160;</td><td class="mdescRight">copy constructor for the pixel controller object <br /></td></tr>
-<tr class="separator:aec44f7bfc391ebf4874f678a994eff71"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:accb48b27c47c742a8b13f97ae1d82d32"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="accb48b27c47c742a8b13f97ae1d82d32"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_pixel_controller.html#accb48b27c47c742a8b13f97ae1d82d32">init_binary_dithering</a> ()</td></tr>
-<tr class="memdesc:accb48b27c47c742a8b13f97ae1d82d32"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize the binary dithering for this controller <br /></td></tr>
-<tr class="separator:accb48b27c47c742a8b13f97ae1d82d32"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a11aef85a0ef8a9276cd2e729d57aa49b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a11aef85a0ef8a9276cd2e729d57aa49b"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b">__attribute__</a> ((always_inline)) inline bool has(int n)</td></tr>
-<tr class="memdesc:a11aef85a0ef8a9276cd2e729d57aa49b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Do we have n pixels left to process? <br /></td></tr>
-<tr class="separator:a11aef85a0ef8a9276cd2e729d57aa49b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3e923be6212346c5ae98f7731d74c2e3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3e923be6212346c5ae98f7731d74c2e3"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3">enable_dithering</a> (EDitherMode dither)</td></tr>
-<tr class="memdesc:a3e923be6212346c5ae98f7731d74c2e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">toggle dithering enable <br /></td></tr>
-<tr class="separator:a3e923be6212346c5ae98f7731d74c2e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:afbe76a814e6bec02854dd4df167567b4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afbe76a814e6bec02854dd4df167567b4"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_pixel_controller.html#afbe76a814e6bec02854dd4df167567b4">__attribute__</a> ((always_inline)) inline int advanceBy()</td></tr>
-<tr class="memdesc:afbe76a814e6bec02854dd4df167567b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">get the amount to advance the pointer by <br /></td></tr>
-<tr class="separator:afbe76a814e6bec02854dd4df167567b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a404558c7da7f3f6fae768bc45af9dc03"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a404558c7da7f3f6fae768bc45af9dc03"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_pixel_controller.html#a404558c7da7f3f6fae768bc45af9dc03">__attribute__</a> ((always_inline)) inline void advanceData()</td></tr>
-<tr class="memdesc:a404558c7da7f3f6fae768bc45af9dc03"><td class="mdescLeft">&#160;</td><td class="mdescRight">advance the data pointer forward, adjust position counter <br /></td></tr>
-<tr class="separator:a404558c7da7f3f6fae768bc45af9dc03"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a900493d7e9e345d0cb6e602186151e73"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a900493d7e9e345d0cb6e602186151e73"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_pixel_controller.html#a900493d7e9e345d0cb6e602186151e73">__attribute__</a> ((always_inline)) inline void stepDithering()</td></tr>
-<tr class="memdesc:a900493d7e9e345d0cb6e602186151e73"><td class="mdescLeft">&#160;</td><td class="mdescRight">step the dithering forward <br /></td></tr>
-<tr class="separator:a900493d7e9e345d0cb6e602186151e73"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9b0bc80097821046dbda7bbbf38dd7df"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9b0bc80097821046dbda7bbbf38dd7df"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_pixel_controller.html#a9b0bc80097821046dbda7bbbf38dd7df">__attribute__</a> ((always_inline)) inline void preStepFirstByteDithering()</td></tr>
-<tr class="memdesc:a9b0bc80097821046dbda7bbbf38dd7df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Some chipsets pre-cycle the first byte, which means we want to cycle byte 0's dithering separately. <br /></td></tr>
-<tr class="separator:a9b0bc80097821046dbda7bbbf38dd7df"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a33c4de106c80a9a3933811b557d5dee5"><td class="memTemplParams" colspan="2"><a class="anchor" id="a33c4de106c80a9a3933811b557d5dee5"></a>
+<tr class="memitem:ae44229e20fb4ba4473b057dcda87122e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae44229e20fb4ba4473b057dcda87122e"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>PixelController</b> (const <a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;other)</td></tr>
+<tr class="separator:ae44229e20fb4ba4473b057dcda87122e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a358944f031ee8b8536d2f48ca670de77"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a358944f031ee8b8536d2f48ca670de77"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>initOffsets</b> (int len)</td></tr>
+<tr class="separator:a358944f031ee8b8536d2f48ca670de77"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a85acf3ef47eaeaa6723b7cf5ea4f071d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a85acf3ef47eaeaa6723b7cf5ea4f071d"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>PixelController</b> (const uint8_t *d, int len, <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;s, EDitherMode dither=BINARY_DITHER, bool advance=true, uint8_t skip=0)</td></tr>
+<tr class="separator:a85acf3ef47eaeaa6723b7cf5ea4f071d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5631b8132087ca68008d85a891c82d2b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5631b8132087ca68008d85a891c82d2b"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>PixelController</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> *d, int len, <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;s, EDitherMode dither=BINARY_DITHER)</td></tr>
+<tr class="separator:a5631b8132087ca68008d85a891c82d2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a802a3dadccd652a9f1db490f7ba64655"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a802a3dadccd652a9f1db490f7ba64655"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>PixelController</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;d, int len, <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;s, EDitherMode dither=BINARY_DITHER)</td></tr>
+<tr class="separator:a802a3dadccd652a9f1db490f7ba64655"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a8441da873d3a094c15c337b34d3e43"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2a8441da873d3a094c15c337b34d3e43"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>init_binary_dithering</b> ()</td></tr>
+<tr class="separator:a2a8441da873d3a094c15c337b34d3e43"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a16d32039be01c47dc83bc3445d5d6b27"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a16d32039be01c47dc83bc3445d5d6b27"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline bool has(int n)</td></tr>
+<tr class="separator:a16d32039be01c47dc83bc3445d5d6b27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa86847022436988b28343a76bab0db4c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa86847022436988b28343a76bab0db4c"></a>
+void&#160;</td><td class="memItemRight" valign="bottom"><b>enable_dithering</b> (EDitherMode dither)</td></tr>
+<tr class="separator:aa86847022436988b28343a76bab0db4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab8c6cc3afd672eb983f0e450412c41ab"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab8c6cc3afd672eb983f0e450412c41ab"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline int size()</td></tr>
+<tr class="separator:ab8c6cc3afd672eb983f0e450412c41ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93ca22b517d8773e8cf2c134e037656e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a93ca22b517d8773e8cf2c134e037656e"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline int advanceBy()</td></tr>
+<tr class="separator:a93ca22b517d8773e8cf2c134e037656e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e2edbee638944aacc0c330700259fc2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7e2edbee638944aacc0c330700259fc2"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline void advanceData()</td></tr>
+<tr class="separator:a7e2edbee638944aacc0c330700259fc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22d6434dc71ac5129f4e0fd43c0f12ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a22d6434dc71ac5129f4e0fd43c0f12ee"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline void stepDithering()</td></tr>
+<tr class="separator:a22d6434dc71ac5129f4e0fd43c0f12ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aed9847b7a8e1b9c220995c33fdac8be1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aed9847b7a8e1b9c220995c33fdac8be1"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline void preStepFirstByteDithering()</td></tr>
+<tr class="separator:aed9847b7a8e1b9c220995c33fdac8be1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a952aea61541fe652dd88701f34623d86"><td class="memTemplParams" colspan="2"><a class="anchor" id="a952aea61541fe652dd88701f34623d86"></a>
+template&lt;int SLOT&gt; </td></tr>
+<tr class="memitem:a952aea61541fe652dd88701f34623d86"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t loadByte(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc)</td></tr>
+<tr class="separator:a952aea61541fe652dd88701f34623d86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aabaf168a65316323011e850b52aaf5d1"><td class="memTemplParams" colspan="2"><a class="anchor" id="aabaf168a65316323011e850b52aaf5d1"></a>
+template&lt;int SLOT&gt; </td></tr>
+<tr class="memitem:aabaf168a65316323011e850b52aaf5d1"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t loadByte(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc</td></tr>
+<tr class="separator:aabaf168a65316323011e850b52aaf5d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29beeff954233b9cf8a7f8df951d4dac"><td class="memTemplParams" colspan="2"><a class="anchor" id="a29beeff954233b9cf8a7f8df951d4dac"></a>
+template&lt;int SLOT&gt; </td></tr>
+<tr class="memitem:a29beeff954233b9cf8a7f8df951d4dac"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t dither(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc</td></tr>
+<tr class="separator:a29beeff954233b9cf8a7f8df951d4dac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae8b82f2b0304f423b5954f71f7fe70da"><td class="memTemplParams" colspan="2"><a class="anchor" id="ae8b82f2b0304f423b5954f71f7fe70da"></a>
+template&lt;int SLOT&gt; </td></tr>
+<tr class="memitem:ae8b82f2b0304f423b5954f71f7fe70da"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t dither(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;</td></tr>
+<tr class="separator:ae8b82f2b0304f423b5954f71f7fe70da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a21e8c0ac9427f1b1e6e5517581ef86b6"><td class="memTemplParams" colspan="2"><a class="anchor" id="a21e8c0ac9427f1b1e6e5517581ef86b6"></a>
+template&lt;int SLOT&gt; </td></tr>
+<tr class="memitem:a21e8c0ac9427f1b1e6e5517581ef86b6"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t scale(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc</td></tr>
+<tr class="separator:a21e8c0ac9427f1b1e6e5517581ef86b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a66ddba664c4b6b4bfc6968a5fa332981"><td class="memTemplParams" colspan="2"><a class="anchor" id="a66ddba664c4b6b4bfc6968a5fa332981"></a>
+template&lt;int SLOT&gt; </td></tr>
+<tr class="memitem:a66ddba664c4b6b4bfc6968a5fa332981"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t scale(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;</td></tr>
+<tr class="separator:a66ddba664c4b6b4bfc6968a5fa332981"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b9ed10c5cb92344f482ec9cb5291bb5"><td class="memTemplParams" colspan="2"><a class="anchor" id="a4b9ed10c5cb92344f482ec9cb5291bb5"></a>
+template&lt;int SLOT&gt; </td></tr>
+<tr class="memitem:a4b9ed10c5cb92344f482ec9cb5291bb5"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t loadAndScale(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc)</td></tr>
+<tr class="separator:a4b9ed10c5cb92344f482ec9cb5291bb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ba4ffda92340e8af5b5c14917e82e38"><td class="memTemplParams" colspan="2"><a class="anchor" id="a0ba4ffda92340e8af5b5c14917e82e38"></a>
template&lt;int SLOT&gt; </td></tr>
-<tr class="memitem:a33c4de106c80a9a3933811b557d5dee5"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t loadByte(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc)</td></tr>
-<tr class="separator:a33c4de106c80a9a3933811b557d5dee5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5faf76b184df3d0093fec384bf37df1b"><td class="memTemplParams" colspan="2"><a class="anchor" id="a5faf76b184df3d0093fec384bf37df1b"></a>
+<tr class="memitem:a0ba4ffda92340e8af5b5c14917e82e38"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t loadAndScale(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc</td></tr>
+<tr class="separator:a0ba4ffda92340e8af5b5c14917e82e38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ba4ffda92340e8af5b5c14917e82e38"><td class="memTemplParams" colspan="2"><a class="anchor" id="a0ba4ffda92340e8af5b5c14917e82e38"></a>
template&lt;int SLOT&gt; </td></tr>
-<tr class="memitem:a5faf76b184df3d0093fec384bf37df1b"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t dither(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc</td></tr>
-<tr class="separator:a5faf76b184df3d0093fec384bf37df1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aacbf92a326415e94748f1e1f053e565c"><td class="memTemplParams" colspan="2"><a class="anchor" id="aacbf92a326415e94748f1e1f053e565c"></a>
+<tr class="memitem:a0ba4ffda92340e8af5b5c14917e82e38"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t loadAndScale(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc</td></tr>
+<tr class="separator:a0ba4ffda92340e8af5b5c14917e82e38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ba4ffda92340e8af5b5c14917e82e38"><td class="memTemplParams" colspan="2"><a class="anchor" id="a0ba4ffda92340e8af5b5c14917e82e38"></a>
template&lt;int SLOT&gt; </td></tr>
-<tr class="memitem:aacbf92a326415e94748f1e1f053e565c"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t scale(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc</td></tr>
-<tr class="separator:aacbf92a326415e94748f1e1f053e565c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:af96ec8426561793f6f95ccbeef68767d"><td class="memTemplParams" colspan="2"><a class="anchor" id="af96ec8426561793f6f95ccbeef68767d"></a>
+<tr class="memitem:a0ba4ffda92340e8af5b5c14917e82e38"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t loadAndScale(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc</td></tr>
+<tr class="separator:a0ba4ffda92340e8af5b5c14917e82e38"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a147cb63da3c1b6d53d90858db39b9bc4"><td class="memTemplParams" colspan="2"><a class="anchor" id="a147cb63da3c1b6d53d90858db39b9bc4"></a>
template&lt;int SLOT&gt; </td></tr>
-<tr class="memitem:af96ec8426561793f6f95ccbeef68767d"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t loadAndScale(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc)</td></tr>
-<tr class="separator:af96ec8426561793f6f95ccbeef68767d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a7f1aec11829806f13924a36827a41736"><td class="memTemplParams" colspan="2"><a class="anchor" id="a7f1aec11829806f13924a36827a41736"></a>
+<tr class="memitem:a147cb63da3c1b6d53d90858db39b9bc4"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t advanceAndLoadAndScale(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc)</td></tr>
+<tr class="separator:a147cb63da3c1b6d53d90858db39b9bc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a564bd9ea03fd6247e02d0c847f89082c"><td class="memTemplParams" colspan="2"><a class="anchor" id="a564bd9ea03fd6247e02d0c847f89082c"></a>
template&lt;int SLOT&gt; </td></tr>
-<tr class="memitem:a7f1aec11829806f13924a36827a41736"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t advanceAndLoadAndScale(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc)</td></tr>
-<tr class="separator:a7f1aec11829806f13924a36827a41736"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aa4b13583d00a99418f6088638c542100"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa4b13583d00a99418f6088638c542100"></a>
+<tr class="memitem:a564bd9ea03fd6247e02d0c847f89082c"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t advanceAndLoadAndScale(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc</td></tr>
+<tr class="separator:a564bd9ea03fd6247e02d0c847f89082c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac43a466314a3aeb4ec78582b1d61c3a2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac43a466314a3aeb4ec78582b1d61c3a2"></a>
+return pc&#160;</td><td class="memItemRight" valign="bottom"><b>loadAndScale</b> (pc, lane)</td></tr>
+<tr class="separator:ac43a466314a3aeb4ec78582b1d61c3a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad24fcf47a4e75f105990ffb1b663b694"><td class="memTemplParams" colspan="2"><a class="anchor" id="ad24fcf47a4e75f105990ffb1b663b694"></a>
+template&lt;int SLOT&gt; </td></tr>
+<tr class="memitem:ad24fcf47a4e75f105990ffb1b663b694"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t getd(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc)</td></tr>
+<tr class="separator:ad24fcf47a4e75f105990ffb1b663b694"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2a787a13655480d5c363f17147a09929"><td class="memTemplParams" colspan="2"><a class="anchor" id="a2a787a13655480d5c363f17147a09929"></a>
+template&lt;int SLOT&gt; </td></tr>
+<tr class="memitem:a2a787a13655480d5c363f17147a09929"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline static uint8_t getscale(<a class="el" href="struct_pixel_controller.html">PixelController</a> &amp;pc)</td></tr>
+<tr class="separator:a2a787a13655480d5c363f17147a09929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0dc0b7dea6953d9b183831d0b82557c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af0dc0b7dea6953d9b183831d0b82557c"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint8_t loadAndScale0(int lane)</td></tr>
+<tr class="separator:af0dc0b7dea6953d9b183831d0b82557c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1eb4eccf2c92e7a818a756abe62e745e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1eb4eccf2c92e7a818a756abe62e745e"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint8_t loadAndScale1(int lane)</td></tr>
+<tr class="separator:a1eb4eccf2c92e7a818a756abe62e745e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add4088b8193b526ee1f90cafba718cbb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add4088b8193b526ee1f90cafba718cbb"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint8_t loadAndScale2(int lane)</td></tr>
+<tr class="separator:add4088b8193b526ee1f90cafba718cbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe0ed605c37888899329dcf20f371a86"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afe0ed605c37888899329dcf20f371a86"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint8_t advanceAndLoadAndScale0(int lane)</td></tr>
+<tr class="separator:afe0ed605c37888899329dcf20f371a86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a12ada103e6a5ffb6eac939ea63e881e5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a12ada103e6a5ffb6eac939ea63e881e5"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint8_t stepAdvanceAndLoadAndScale0(int lane)</td></tr>
+<tr class="separator:a12ada103e6a5ffb6eac939ea63e881e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a53537a46cfbb83f10c9b26044ac96f5e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a53537a46cfbb83f10c9b26044ac96f5e"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint8_t loadAndScale0()</td></tr>
-<tr class="separator:aa4b13583d00a99418f6088638c542100"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4b413825c12904d3f04d812ad960d037"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4b413825c12904d3f04d812ad960d037"></a>
+<tr class="separator:a53537a46cfbb83f10c9b26044ac96f5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaefb6aa81ccbec86a682c6c9ee233d73"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaefb6aa81ccbec86a682c6c9ee233d73"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint8_t loadAndScale1()</td></tr>
-<tr class="separator:a4b413825c12904d3f04d812ad960d037"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a3f97ce4b173c2f17d9bf9702d6dec7fe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f97ce4b173c2f17d9bf9702d6dec7fe"></a>
+<tr class="separator:aaefb6aa81ccbec86a682c6c9ee233d73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4a8f661276ae24be964cacc9ff7fb9cf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a8f661276ae24be964cacc9ff7fb9cf"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint8_t loadAndScale2()</td></tr>
-<tr class="separator:a3f97ce4b173c2f17d9bf9702d6dec7fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a880a808e9b20cf6e4dd8c09e7b33cdbb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a880a808e9b20cf6e4dd8c09e7b33cdbb"></a>
+<tr class="separator:a4a8f661276ae24be964cacc9ff7fb9cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae39136bd50c7747ae29b986da1b11646"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae39136bd50c7747ae29b986da1b11646"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint8_t advanceAndLoadAndScale0()</td></tr>
-<tr class="separator:a880a808e9b20cf6e4dd8c09e7b33cdbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a649f80d1b1aff0eaa5915434262075b7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a649f80d1b1aff0eaa5915434262075b7"></a>
+<tr class="separator:ae39136bd50c7747ae29b986da1b11646"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a261471135b391617f6470eaea8681139"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a261471135b391617f6470eaea8681139"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>__attribute__</b> ((always_inline)) inline uint8_t stepAdvanceAndLoadAndScale0()</td></tr>
-<tr class="separator:a649f80d1b1aff0eaa5915434262075b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
-<tr class="memitem:a81403c8810658d3c41cb210703bbfc00"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_pixel_controller.html#a81403c8810658d3c41cb210703bbfc00">PixelController</a> (const uint8_t *d, int len, <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;s, EDitherMode dither=BINARY_DITHER, bool advance=true, uint8_t skip=0)</td></tr>
-<tr class="memdesc:a81403c8810658d3c41cb210703bbfc00"><td class="mdescLeft">&#160;</td><td class="mdescRight">create a pixel controller for managing led data as it is being written out <a href="#a81403c8810658d3c41cb210703bbfc00">More...</a><br /></td></tr>
-<tr class="separator:a81403c8810658d3c41cb210703bbfc00"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a9cd0843d8305cbd78b4d9597ed9b2081"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9cd0843d8305cbd78b4d9597ed9b2081"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>PixelController</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> *d, int len, <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;s, EDitherMode dither=BINARY_DITHER)</td></tr>
-<tr class="separator:a9cd0843d8305cbd78b4d9597ed9b2081"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a22aa861b047d60d43c5937eda51c7ec8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a22aa861b047d60d43c5937eda51c7ec8"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>PixelController</b> (const <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;d, int len, <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;s, EDitherMode dither=BINARY_DITHER)</td></tr>
-<tr class="separator:a22aa861b047d60d43c5937eda51c7ec8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aae50dffd933b8e1505315b7d2797a219"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aae50dffd933b8e1505315b7d2797a219"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>PixelController</b> (const CARGB &amp;d, int len, <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;s, EDitherMode dither=BINARY_DITHER)</td></tr>
-<tr class="separator:aae50dffd933b8e1505315b7d2797a219"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab13ac71f27f83c847c836c3f9854a062"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab13ac71f27f83c847c836c3f9854a062"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>PixelController</b> (const CARGB *d, int len, <a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;s, EDitherMode dither=BINARY_DITHER)</td></tr>
-<tr class="separator:ab13ac71f27f83c847c836c3f9854a062"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a261471135b391617f6470eaea8681139"><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>
-<tr class="memitem:a40d956bed201260a641c11e935fdff42"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a40d956bed201260a641c11e935fdff42"></a>
+<tr class="memitem:a54bedae9117a19b242b73682c5d1a182"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a54bedae9117a19b242b73682c5d1a182"></a>
const uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><b>mData</b></td></tr>
-<tr class="separator:a40d956bed201260a641c11e935fdff42"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac0641ad95fffe0a165b9f2ba1953393b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac0641ad95fffe0a165b9f2ba1953393b"></a>
+<tr class="separator:a54bedae9117a19b242b73682c5d1a182"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e1491364f944af0eee408fc8dffef58"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6e1491364f944af0eee408fc8dffef58"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>mLen</b></td></tr>
-<tr class="separator:ac0641ad95fffe0a165b9f2ba1953393b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a265a7697099e35c4a4a548984eb84032"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a265a7697099e35c4a4a548984eb84032"></a>
+<tr class="separator:a6e1491364f944af0eee408fc8dffef58"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a329cebe498f2d119cf10e0e6a7b5f7c5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a329cebe498f2d119cf10e0e6a7b5f7c5"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>mLenRemaining</b></td></tr>
+<tr class="separator:a329cebe498f2d119cf10e0e6a7b5f7c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a576c3a3eac363fb83e475e142bbe586d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a576c3a3eac363fb83e475e142bbe586d"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>d</b> [3]</td></tr>
-<tr class="separator:a265a7697099e35c4a4a548984eb84032"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad4adb6e0bc116f2b25780afec889bd88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad4adb6e0bc116f2b25780afec889bd88"></a>
+<tr class="separator:a576c3a3eac363fb83e475e142bbe586d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ba367b1689ad3fc6c1cac3174faf341"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9ba367b1689ad3fc6c1cac3174faf341"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>e</b> [3]</td></tr>
-<tr class="separator:ad4adb6e0bc116f2b25780afec889bd88"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abc5438b06f84610a0fe20418c0f30290"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abc5438b06f84610a0fe20418c0f30290"></a>
+<tr class="separator:a9ba367b1689ad3fc6c1cac3174faf341"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c8fa28fd867a4048796b4f88146d332"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9c8fa28fd867a4048796b4f88146d332"></a>
<a class="el" href="struct_c_r_g_b.html">CRGB</a>&#160;</td><td class="memItemRight" valign="bottom"><b>mScale</b></td></tr>
-<tr class="separator:abc5438b06f84610a0fe20418c0f30290"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a0441a5caab1fd894613be45fc5cc74ad"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0441a5caab1fd894613be45fc5cc74ad"></a>
-uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>mAdvance</b></td></tr>
-<tr class="separator:a0441a5caab1fd894613be45fc5cc74ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a59c41a4f80039f205f172c275e3c508f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a59c41a4f80039f205f172c275e3c508f"></a>
+<tr class="separator:a9c8fa28fd867a4048796b4f88146d332"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f4eb594a337bc3a739e65b2a1e5c401"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0f4eb594a337bc3a739e65b2a1e5c401"></a>
+int8_t&#160;</td><td class="memItemRight" valign="bottom"><b>mAdvance</b></td></tr>
+<tr class="separator:a0f4eb594a337bc3a739e65b2a1e5c401"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5ea77404f9ea28134291af923a79c82f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5ea77404f9ea28134291af923a79c82f"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>mOffsets</b> [LANES]</td></tr>
+<tr class="separator:a5ea77404f9ea28134291af923a79c82f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a41bf3d91b9cf0269ae08b47eb86d5387"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a41bf3d91b9cf0269ae08b47eb86d5387"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><b>lane</b> { return pc.mData[pc.mOffsets[lane] + RO(SLOT)]</td></tr>
+<tr class="separator:a41bf3d91b9cf0269ae08b47eb86d5387"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a30f6c6e3dbb3d9ea1f148a4d77f221b5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a30f6c6e3dbb3d9ea1f148a4d77f221b5"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>b</b> { return b ? <a class="el" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>(b, pc.d[RO(SLOT)]) : 0</td></tr>
-<tr class="separator:a59c41a4f80039f205f172c275e3c508f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="separator:a30f6c6e3dbb3d9ea1f148a4d77f221b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad90b3914752258965fc1a18b3ffadebb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad90b3914752258965fc1a18b3ffadebb"></a>
+uint8_t uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>d</b> { return b ? <a class="el" href="group___math.html#ga38e9f9a8830353f9cbfecad7c8758b1f">qadd8</a>(b,d) : 0</td></tr>
+<tr class="separator:ad90b3914752258965fc1a18b3ffadebb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b5452230608de2816669c6e2e6772d9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7b5452230608de2816669c6e2e6772d9"></a>
+uint8_t uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>scale</b> { return <a class="el" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(b, scale)</td></tr>
+<tr class="separator:a7b5452230608de2816669c6e2e6772d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa685641133594892cad325ccc0bd031c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa685641133594892cad325ccc0bd031c"></a>
+int uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>d</b></td></tr>
+<tr class="separator:aa685641133594892cad325ccc0bd031c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a92d6838d1c476c583302276b4d30dc0f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a92d6838d1c476c583302276b4d30dc0f"></a>
+int uint8_t uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>scale</b> { return <a class="el" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(pc.dither&lt;SLOT&gt;(pc, pc.loadByte&lt;SLOT&gt;(pc, lane), d), scale)</td></tr>
+<tr class="separator:a92d6838d1c476c583302276b4d30dc0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a981df5be1edbd7caca3fc061f975e5a7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a981df5be1edbd7caca3fc061f975e5a7"></a>
+int uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>scale</b> { return <a class="el" href="group___scaling.html#ga6c160f8c36ce9b3c5eda68e4992010af">scale8</a>(pc.loadByte&lt;SLOT&gt;(pc, lane), scale)</td></tr>
+<tr class="separator:a981df5be1edbd7caca3fc061f975e5a7"><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;EOrder RGB_ORDER&gt;<br />
-struct PixelController&lt; RGB_ORDER &gt;</h3>
+<div class="textblock"><h3>template&lt;EOrder RGB_ORDER, int LANES = 1, uint32_t MASK = 0xFFFFFFFF&gt;<br />
+struct PixelController&lt; RGB_ORDER, LANES, MASK &gt;</h3>
-<p>Pixel controller class. </p>
-<p>This is the class that we use to centralize pixel access in a block of data, including support for things like RGB reordering, scaling, dithering, skipping (for ARGB data), and eventually, we will centralize 8/12/16 conversions here as well. </p>
-<p>Definition at line <a class="el" href="controller_8h_source.html#l00187">187</a> of file <a class="el" href="controller_8h_source.html">controller.h</a>.</p>
-</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a class="anchor" id="a81403c8810658d3c41cb210703bbfc00"></a>
-<div class="memitem">
-<div class="memproto">
-<div class="memtemplate">
-template&lt;EOrder RGB_ORDER&gt; </div>
-<table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname"><a class="el" href="struct_pixel_controller.html">PixelController</a>&lt; RGB_ORDER &gt;::<a class="el" href="struct_pixel_controller.html">PixelController</a> </td>
- <td>(</td>
- <td class="paramtype">const uint8_t *&#160;</td>
- <td class="paramname"><em>d</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&#160;</td>
- <td class="paramname"><em>len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="struct_c_r_g_b.html">CRGB</a> &amp;&#160;</td>
- <td class="paramname"><em>s</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">EDitherMode&#160;</td>
- <td class="paramname"><em>dither</em> = <code>BINARY_DITHER</code>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">bool&#160;</td>
- <td class="paramname"><em>advance</em> = <code>true</code>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t&#160;</td>
- <td class="paramname"><em>skip</em> = <code>0</code>&#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>create a pixel controller for managing led data as it is being written out </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">d</td><td>the led data this controller is managing </td></tr>
- <tr><td class="paramname">len</td><td>the number of leds this controller is managing </td></tr>
- <tr><td class="paramname">s</td><td>the combined rgb scaling adjustment for the leds </td></tr>
- <tr><td class="paramname">dither</td><td>the dither mode for these pixels </td></tr>
- <tr><td class="paramname">advance</td><td>whether or not to walk through the array of data for each pixel, or just write out the first pixel len times </td></tr>
- <tr><td class="paramname">skip</td><td>whether or not there is extra data to skip when writing out led data, e.g. if passed in argb data </td></tr>
- </table>
- </dd>
-</dl>
-
-<p>Definition at line <a class="el" href="controller_8h_source.html#l00218">218</a> of file <a class="el" href="controller_8h_source.html">controller.h</a>.</p>
-
-</div>
-</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
+<p>Definition at line <a class="el" href="controller_8h_source.html#l00177">177</a> of file <a class="el" href="controller_8h_source.html">controller.h</a>.</p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="controller_8h_source.html">controller.h</a></li>
</ul>
</div><!-- contents -->
@@ -333,7 +319,7 @@ template&lt;EOrder RGB_ORDER&gt; </div>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="struct_pixel_controller.html">PixelController</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/struct_pixel_controller.js b/docs/3.1/struct_pixel_controller.js
index a3707074..2c57b937 100644
--- a/docs/3.1/struct_pixel_controller.js
+++ b/docs/3.1/struct_pixel_controller.js
@@ -1,33 +1,56 @@
var struct_pixel_controller =
[
- [ "PixelController", "struct_pixel_controller.html#aec44f7bfc391ebf4874f678a994eff71", null ],
- [ "PixelController", "struct_pixel_controller.html#a81403c8810658d3c41cb210703bbfc00", null ],
- [ "PixelController", "struct_pixel_controller.html#a9cd0843d8305cbd78b4d9597ed9b2081", null ],
- [ "PixelController", "struct_pixel_controller.html#a22aa861b047d60d43c5937eda51c7ec8", null ],
- [ "PixelController", "struct_pixel_controller.html#aae50dffd933b8e1505315b7d2797a219", null ],
- [ "PixelController", "struct_pixel_controller.html#ab13ac71f27f83c847c836c3f9854a062", null ],
- [ "__attribute__", "struct_pixel_controller.html#a11aef85a0ef8a9276cd2e729d57aa49b", null ],
- [ "__attribute__", "struct_pixel_controller.html#afbe76a814e6bec02854dd4df167567b4", null ],
- [ "__attribute__", "struct_pixel_controller.html#a404558c7da7f3f6fae768bc45af9dc03", null ],
- [ "__attribute__", "struct_pixel_controller.html#a900493d7e9e345d0cb6e602186151e73", null ],
- [ "__attribute__", "struct_pixel_controller.html#a9b0bc80097821046dbda7bbbf38dd7df", null ],
- [ "__attribute__", "struct_pixel_controller.html#a33c4de106c80a9a3933811b557d5dee5", null ],
- [ "__attribute__", "struct_pixel_controller.html#a5faf76b184df3d0093fec384bf37df1b", null ],
- [ "__attribute__", "struct_pixel_controller.html#aacbf92a326415e94748f1e1f053e565c", null ],
- [ "__attribute__", "struct_pixel_controller.html#af96ec8426561793f6f95ccbeef68767d", null ],
- [ "__attribute__", "struct_pixel_controller.html#a7f1aec11829806f13924a36827a41736", null ],
- [ "__attribute__", "struct_pixel_controller.html#aa4b13583d00a99418f6088638c542100", null ],
- [ "__attribute__", "struct_pixel_controller.html#a4b413825c12904d3f04d812ad960d037", null ],
- [ "__attribute__", "struct_pixel_controller.html#a3f97ce4b173c2f17d9bf9702d6dec7fe", null ],
- [ "__attribute__", "struct_pixel_controller.html#a880a808e9b20cf6e4dd8c09e7b33cdbb", null ],
- [ "__attribute__", "struct_pixel_controller.html#a649f80d1b1aff0eaa5915434262075b7", null ],
- [ "enable_dithering", "struct_pixel_controller.html#a3e923be6212346c5ae98f7731d74c2e3", null ],
- [ "init_binary_dithering", "struct_pixel_controller.html#accb48b27c47c742a8b13f97ae1d82d32", null ],
- [ "b", "struct_pixel_controller.html#a59c41a4f80039f205f172c275e3c508f", null ],
- [ "d", "struct_pixel_controller.html#a265a7697099e35c4a4a548984eb84032", null ],
- [ "e", "struct_pixel_controller.html#ad4adb6e0bc116f2b25780afec889bd88", null ],
- [ "mAdvance", "struct_pixel_controller.html#a0441a5caab1fd894613be45fc5cc74ad", null ],
- [ "mData", "struct_pixel_controller.html#a40d956bed201260a641c11e935fdff42", null ],
- [ "mLen", "struct_pixel_controller.html#ac0641ad95fffe0a165b9f2ba1953393b", null ],
- [ "mScale", "struct_pixel_controller.html#abc5438b06f84610a0fe20418c0f30290", null ]
+ [ "PixelController", "struct_pixel_controller.html#ae44229e20fb4ba4473b057dcda87122e", null ],
+ [ "PixelController", "struct_pixel_controller.html#a85acf3ef47eaeaa6723b7cf5ea4f071d", null ],
+ [ "PixelController", "struct_pixel_controller.html#a5631b8132087ca68008d85a891c82d2b", null ],
+ [ "PixelController", "struct_pixel_controller.html#a802a3dadccd652a9f1db490f7ba64655", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a16d32039be01c47dc83bc3445d5d6b27", null ],
+ [ "__attribute__", "struct_pixel_controller.html#ab8c6cc3afd672eb983f0e450412c41ab", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a93ca22b517d8773e8cf2c134e037656e", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a7e2edbee638944aacc0c330700259fc2", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a22d6434dc71ac5129f4e0fd43c0f12ee", null ],
+ [ "__attribute__", "struct_pixel_controller.html#aed9847b7a8e1b9c220995c33fdac8be1", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a952aea61541fe652dd88701f34623d86", null ],
+ [ "__attribute__", "struct_pixel_controller.html#aabaf168a65316323011e850b52aaf5d1", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a29beeff954233b9cf8a7f8df951d4dac", null ],
+ [ "__attribute__", "struct_pixel_controller.html#ae8b82f2b0304f423b5954f71f7fe70da", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a21e8c0ac9427f1b1e6e5517581ef86b6", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a66ddba664c4b6b4bfc6968a5fa332981", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a4b9ed10c5cb92344f482ec9cb5291bb5", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a0ba4ffda92340e8af5b5c14917e82e38", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a0ba4ffda92340e8af5b5c14917e82e38", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a0ba4ffda92340e8af5b5c14917e82e38", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a147cb63da3c1b6d53d90858db39b9bc4", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a564bd9ea03fd6247e02d0c847f89082c", null ],
+ [ "__attribute__", "struct_pixel_controller.html#ad24fcf47a4e75f105990ffb1b663b694", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a2a787a13655480d5c363f17147a09929", null ],
+ [ "__attribute__", "struct_pixel_controller.html#af0dc0b7dea6953d9b183831d0b82557c", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a1eb4eccf2c92e7a818a756abe62e745e", null ],
+ [ "__attribute__", "struct_pixel_controller.html#add4088b8193b526ee1f90cafba718cbb", null ],
+ [ "__attribute__", "struct_pixel_controller.html#afe0ed605c37888899329dcf20f371a86", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a12ada103e6a5ffb6eac939ea63e881e5", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a53537a46cfbb83f10c9b26044ac96f5e", null ],
+ [ "__attribute__", "struct_pixel_controller.html#aaefb6aa81ccbec86a682c6c9ee233d73", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a4a8f661276ae24be964cacc9ff7fb9cf", null ],
+ [ "__attribute__", "struct_pixel_controller.html#ae39136bd50c7747ae29b986da1b11646", null ],
+ [ "__attribute__", "struct_pixel_controller.html#a261471135b391617f6470eaea8681139", null ],
+ [ "enable_dithering", "struct_pixel_controller.html#aa86847022436988b28343a76bab0db4c", null ],
+ [ "init_binary_dithering", "struct_pixel_controller.html#a2a8441da873d3a094c15c337b34d3e43", null ],
+ [ "initOffsets", "struct_pixel_controller.html#a358944f031ee8b8536d2f48ca670de77", null ],
+ [ "loadAndScale", "struct_pixel_controller.html#ac43a466314a3aeb4ec78582b1d61c3a2", null ],
+ [ "b", "struct_pixel_controller.html#a30f6c6e3dbb3d9ea1f148a4d77f221b5", null ],
+ [ "d", "struct_pixel_controller.html#a576c3a3eac363fb83e475e142bbe586d", null ],
+ [ "d", "struct_pixel_controller.html#ad90b3914752258965fc1a18b3ffadebb", null ],
+ [ "d", "struct_pixel_controller.html#aa685641133594892cad325ccc0bd031c", null ],
+ [ "e", "struct_pixel_controller.html#a9ba367b1689ad3fc6c1cac3174faf341", null ],
+ [ "lane", "struct_pixel_controller.html#a41bf3d91b9cf0269ae08b47eb86d5387", null ],
+ [ "mAdvance", "struct_pixel_controller.html#a0f4eb594a337bc3a739e65b2a1e5c401", null ],
+ [ "mData", "struct_pixel_controller.html#a54bedae9117a19b242b73682c5d1a182", null ],
+ [ "mLen", "struct_pixel_controller.html#a6e1491364f944af0eee408fc8dffef58", null ],
+ [ "mLenRemaining", "struct_pixel_controller.html#a329cebe498f2d119cf10e0e6a7b5f7c5", null ],
+ [ "mOffsets", "struct_pixel_controller.html#a5ea77404f9ea28134291af923a79c82f", null ],
+ [ "mScale", "struct_pixel_controller.html#a9c8fa28fd867a4048796b4f88146d332", null ],
+ [ "scale", "struct_pixel_controller.html#a7b5452230608de2816669c6e2e6772d9", null ],
+ [ "scale", "struct_pixel_controller.html#a92d6838d1c476c583302276b4d30dc0f", null ],
+ [ "scale", "struct_pixel_controller.html#a981df5be1edbd7caca3fc061f975e5a7", null ]
]; \ No newline at end of file
diff --git a/docs/3.1/struct_pixel_controller__coll__graph.map b/docs/3.1/struct_pixel_controller__coll__graph.map
index 4fcc503a..930224c1 100644
--- a/docs/3.1/struct_pixel_controller__coll__graph.map
+++ b/docs/3.1/struct_pixel_controller__coll__graph.map
@@ -1,3 +1,3 @@
-<map id="PixelController&lt; RGB_ORDER &gt;" name="PixelController&lt; RGB_ORDER &gt;">
-<area shape="rect" id="node2" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="50,5,109,32"/>
+<map id="PixelController&lt; RGB_ORDER, LANES, MASK &gt;" name="PixelController&lt; RGB_ORDER, LANES, MASK &gt;">
+<area shape="rect" id="node2" href="$struct_c_r_g_b.html" title="Representation of an RGB pixel (Red, Green, Blue) " alt="" coords="67,5,127,32"/>
</map>
diff --git a/docs/3.1/struct_pixel_controller__coll__graph.md5 b/docs/3.1/struct_pixel_controller__coll__graph.md5
index 171bff77..a9556c0c 100644
--- a/docs/3.1/struct_pixel_controller__coll__graph.md5
+++ b/docs/3.1/struct_pixel_controller__coll__graph.md5
@@ -1 +1 @@
-0f02aaba6831ab2d8c77a90d7f085f32 \ No newline at end of file
+de8ba7a42685ccbbfe76da1d170e9726 \ No newline at end of file
diff --git a/docs/3.1/struct_pixel_controller__coll__graph.png b/docs/3.1/struct_pixel_controller__coll__graph.png
index b283c772..4d8d98a6 100644
--- a/docs/3.1/struct_pixel_controller__coll__graph.png
+++ b/docs/3.1/struct_pixel_controller__coll__graph.png
Binary files differ
diff --git a/docs/3.1/structsub4-members.html b/docs/3.1/structsub4-members.html
index 411d20f7..e7f83520 100644
--- a/docs/3.1/structsub4-members.html
+++ b/docs/3.1/structsub4-members.html
@@ -151,7 +151,7 @@ $(document).ready(function(){initNavTree('structsub4.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/structsub4.html b/docs/3.1/structsub4.html
index 600d9a8a..6316d804 100644
--- a/docs/3.1/structsub4.html
+++ b/docs/3.1/structsub4.html
@@ -222,7 +222,7 @@ uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>d7</b>:1</td></tr
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>structure representing 32 bits of access </p>
-<p>Definition at line <a class="el" href="bitswap_8h_source.html#l00029">29</a> of file <a class="el" href="bitswap_8h_source.html">bitswap.h</a>.</p>
+<p>Definition at line <a class="el" href="bitswap_8h_source.html#l00031">31</a> of file <a class="el" href="bitswap_8h_source.html">bitswap.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="bitswap_8h_source.html">bitswap.h</a></li>
</ul>
@@ -232,7 +232,7 @@ uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>d7</b>:1</td></tr
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="structsub4.html">sub4</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/todo.html b/docs/3.1/todo.html
index dc69de23..81ff3d97 100644
--- a/docs/3.1/todo.html
+++ b/docs/3.1/todo.html
@@ -118,7 +118,7 @@ $(document).ready(function(){initNavTree('todo.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/trig8_8h_source.html b/docs/3.1/trig8_8h_source.html
index 1bd0db57..ec6f65b4 100644
--- a/docs/3.1/trig8_8h_source.html
+++ b/docs/3.1/trig8_8h_source.html
@@ -325,7 +325,7 @@ $(document).ready(function(){initNavTree('trig8_8h_source.html','');});
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_fbb9e787cf27434374136273d35a9c17.html">lib8tion</a></li><li class="navelem"><b>trig8.h</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 0b1cdc35..6abe8928 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
@@ -131,7 +131,7 @@ $(document).ready(function(){initNavTree('union_i_e_e_e754binary32__t.html','');
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 87b87b84..12a34140 100644
--- a/docs/3.1/union_i_e_e_e754binary32__t.html
+++ b/docs/3.1/union_i_e_e_e754binary32__t.html
@@ -174,7 +174,7 @@ struct {</td></tr>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>typedef for IEEE754 "binary32" float type internals </p>
-<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00352">352</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
+<p>Definition at line <a class="el" href="lib8tion_8h_source.html#l00362">362</a> of file <a class="el" href="lib8tion_8h_source.html">lib8tion.h</a>.</p>
</div><hr/>The documentation for this union was generated from the following file:<ul>
<li><a class="el" href="lib8tion_8h_source.html">lib8tion.h</a></li>
</ul>
@@ -184,7 +184,7 @@ struct {</td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="union_i_e_e_e754binary32__t.html">IEEE754binary32_t</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 b5d4a449..b49a4335 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
@@ -125,7 +125,7 @@ $(document).ready(function(){initNavTree('union_t_r_g_b_gradient_palette_entry_u
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
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 e40aa00e..eec73a87 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
@@ -142,7 +142,7 @@ uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>bytes</b> [4]</td>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p>Definition at line <a class="el" href="colorutils_8h_source.html#l00404">404</a> of file <a class="el" href="colorutils_8h_source.html">colorutils.h</a>.</p>
+<p>Definition at line <a class="el" href="colorutils_8h_source.html#l00410">410</a> of file <a class="el" href="colorutils_8h_source.html">colorutils.h</a>.</p>
</div><hr/>The documentation for this union was generated from the following file:<ul>
<li><a class="el" href="colorutils_8h_source.html">colorutils.h</a></li>
</ul>
@@ -152,7 +152,7 @@ uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>bytes</b> [4]</td>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="union_t_r_g_b_gradient_palette_entry_union.html">TRGBGradientPaletteEntryUnion</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:38 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/unionbitswap__type-members.html b/docs/3.1/unionbitswap__type-members.html
index 023334fa..2de1c646 100644
--- a/docs/3.1/unionbitswap__type-members.html
+++ b/docs/3.1/unionbitswap__type-members.html
@@ -123,7 +123,7 @@ $(document).ready(function(){initNavTree('unionbitswap__type.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/unionbitswap__type.html b/docs/3.1/unionbitswap__type.html
index 6842b142..2bc86702 100644
--- a/docs/3.1/unionbitswap__type.html
+++ b/docs/3.1/unionbitswap__type.html
@@ -151,7 +151,7 @@ struct {</td></tr>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>union containing a full 8 bytes to swap the bit orientation on </p>
-<p>Definition at line <a class="el" href="bitswap_8h_source.html#l00065">65</a> of file <a class="el" href="bitswap_8h_source.html">bitswap.h</a>.</p>
+<p>Definition at line <a class="el" href="bitswap_8h_source.html#l00067">67</a> of file <a class="el" href="bitswap_8h_source.html">bitswap.h</a>.</p>
</div><hr/>The documentation for this union was generated from the following file:<ul>
<li><a class="el" href="bitswap_8h_source.html">bitswap.h</a></li>
</ul>
@@ -161,7 +161,7 @@ struct {</td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="unionbitswap__type.html">bitswap_type</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:35 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/unionjust8bits-members.html b/docs/3.1/unionjust8bits-members.html
index d9cbcf6c..651348f4 100644
--- a/docs/3.1/unionjust8bits-members.html
+++ b/docs/3.1/unionjust8bits-members.html
@@ -128,7 +128,7 @@ $(document).ready(function(){initNavTree('unionjust8bits.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/unionjust8bits.html b/docs/3.1/unionjust8bits.html
index 52827f6a..1b8456de 100644
--- a/docs/3.1/unionjust8bits.html
+++ b/docs/3.1/unionjust8bits.html
@@ -157,7 +157,7 @@ struct {</td></tr>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>structure representing 8 bits of access </p>
-<p>Definition at line <a class="el" href="bitswap_8h_source.html#l00014">14</a> of file <a class="el" href="bitswap_8h_source.html">bitswap.h</a>.</p>
+<p>Definition at line <a class="el" href="bitswap_8h_source.html#l00016">16</a> of file <a class="el" href="bitswap_8h_source.html">bitswap.h</a>.</p>
</div><hr/>The documentation for this union was generated from the following file:<ul>
<li><a class="el" href="bitswap_8h_source.html">bitswap.h</a></li>
</ul>
@@ -167,7 +167,7 @@ struct {</td></tr>
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="unionjust8bits.html">just8bits</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:36 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/uniont_bytes_for_long-members.html b/docs/3.1/uniont_bytes_for_long-members.html
index 4726f19d..02619ce5 100644
--- a/docs/3.1/uniont_bytes_for_long-members.html
+++ b/docs/3.1/uniont_bytes_for_long-members.html
@@ -121,7 +121,7 @@ $(document).ready(function(){initNavTree('uniont_bytes_for_long.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/uniont_bytes_for_long.html b/docs/3.1/uniont_bytes_for_long.html
index fee39a35..7bf7bcb1 100644
--- a/docs/3.1/uniont_bytes_for_long.html
+++ b/docs/3.1/uniont_bytes_for_long.html
@@ -136,7 +136,7 @@ uint8_t&#160;</td><td class="memItemRight" valign="bottom"><b>raw</b> [4]</td></
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="uniont_bytes_for_long.html">tBytesForLong</a></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:37 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:37 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>
diff --git a/docs/3.1/wiring_8cpp_source.html b/docs/3.1/wiring_8cpp_source.html
index b7dee544..c79bf8f9 100644
--- a/docs/3.1/wiring_8cpp_source.html
+++ b/docs/3.1/wiring_8cpp_source.html
@@ -349,14 +349,14 @@ $(document).ready(function(){initNavTree('wiring_8cpp_source.html','');});
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
<div class="ttc" id="_fast_l_e_d_8h_html"><div class="ttname"><a href="_fast_l_e_d_8h.html">FastLED.h</a></div><div class="ttdoc">central include file for FastLED, defines the CFastLED class/object </div></div>
<div class="ttc" id="uniont_bytes_for_long_html"><div class="ttname"><a href="uniont_bytes_for_long.html">tBytesForLong</a></div><div class="ttdef"><b>Definition:</b> <a href="wiring_8cpp_source.html#l00014">wiring.cpp:14</a></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> <a href="fastled__delay_8h_source.html#l00085">fastled_delay.h:85</a></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> <a href="fastled__delay_8h_source.html#l00092">fastled_delay.h:92</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><b>wiring.cpp</b></li>
- <li class="footer">Generated on Thu Dec 10 2015 14:02:36 for FastLED by
+ <li class="footer">Generated on Sat Feb 13 2016 13:28:34 for FastLED by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.9.1 </li>
</ul>